diff --git a/src/components/project/UploadDialog.vue b/src/components/project/UploadDialog.vue
index 233899eb..5b8297bf 100644
--- a/src/components/project/UploadDialog.vue
+++ b/src/components/project/UploadDialog.vue
@@ -50,18 +50,66 @@
-
-
+
+
+
+ {{ $t('uploadSample.userIdConfig') }}
+
+
+
+
+
+
+
+
+ {{ $t('uploadSample.userIdOptions[0]') }}
+
+
+
+
+
+
+
+
+
+ {{ $t('uploadSample.userIdOptions[1]') }}
+
+
+
+
+
+
+
+
+
+ {{ $t('uploadSample.userIdOptions[2]') }}
+
+
+
+
+
+
+
+
+
+ {{ $t('uploadSample.userIdOptions[3]') }}
+
+
+
+
+
+
@@ -82,7 +130,7 @@
icon="cloud_upload"
label="Upload sample"
:loading="uploadSample.submitting"
- :disable="disableUploadBtn || customUserId === ''"
+ :disable="disableUploadBtn"
@click="uploadSamples()"
>
@@ -167,12 +215,12 @@ export default defineComponent({
generateNewSentIds: false,
samplesWithoutSentIds,
rtl: false,
+ userId: 'username',
};
},
computed: {
- ...mapState(useUserStore, { userid: 'id' }),
- ...mapState(useUserStore, ['username', 'reservedUserId']),
+ ...mapState(useUserStore, ['username', 'reservedUserIds']),
...mapState(useProjectStore, ['blindAnnotationMode']),
disableTokenizeBtn() {
if (this.option.value == 'plainText') {
@@ -185,15 +233,15 @@ export default defineComponent({
let disable = true;
if (this.samplesWithoutSentIds.length > 0) {
disable = !this.generateNewSentIds;
- } else if (this.uploadSample.attachment.file.length > 0) {
+ } else if (this.uploadSample.attachment.file.length > 0 && this.userId !== 'other') {
+ disable = false;
+ }
+ else if (this.uploadSample.attachment.file.length > 0 && this.userId === 'other' && this.customUserId !== '') {
disable = false;
}
return disable;
},
},
- mounted() {
- this.customUserId = this.username;
- },
methods: {
async preprocess() {
this.warningMessage = '';
@@ -265,7 +313,7 @@ export default defineComponent({
for (const file of this.uploadSample.attachment.file) {
form.append('files', file);
}
- form.append('userId', this.customUserId);
+ form.append('userId', this.selectedUserId());
form.append('rtl', JSON.stringify(this.rtl))
if (this.generateNewSentIds) {
form.append('samplesWithoutSentIds', JSON.stringify(this.samplesWithoutSentIds));
@@ -291,7 +339,7 @@ export default defineComponent({
},
tokenizeSample() {
const data = {
- username: this.customUserId,
+ username: this.selectedUserId(),
text: this.text.normalize('NFC'),
option: this.option.value,
lang: this.lang.value,
@@ -309,6 +357,17 @@ export default defineComponent({
notifyError({ error: 'Invalid request' });
});
},
+ selectedUserId() {
+ if (this.userId === 'username') {
+ return this.username;
+ }
+ else if (this.userId === 'other') {
+ return this.customUserId;
+ }
+ else {
+ return this.userId;
+ }
+ },
closeDialog() {
this.uploadDialModel = false;
this.uploadSample.attachment.file = [];
diff --git a/src/i18n/en-us/index.ts b/src/i18n/en-us/index.ts
index a1eef033..831f40de 100644
--- a/src/i18n/en-us/index.ts
+++ b/src/i18n/en-us/index.ts
@@ -430,7 +430,7 @@ export default {
sampleName: 'Sample Name',
horizontalHint: 'Each sentence on a separate line, the tokens are separated by spaces.',
verticalHint: 'Each token on a separate line, with an empty line indicating the end of sentence.',
- customUsername: "Custom UserId By default it's your username",
+ customUsername: "Custom UserId",
text: 'text',
tokenizeBtn: 'Tokenize',
selectFiles: 'Select one or multiple conll files',
@@ -438,6 +438,13 @@ export default {
uploadFileTooltip: 'Select file to upload',
reservedUsernameError: 'is reserved username for ArboratorGrew',
emptyUsernameError: 'You can not upload file without userId please type something',
+ userIdConfig: 'User Id configuration',
+ userIdOptions: [
+ 'Import your trees under your username',
+ 'Import your trees as validated trees',
+ 'Import your trees as base_tree',
+ 'Import your trees using custom username'
+ ],
},
advancedFilter: {
textFilter: 'Text filter',
diff --git a/src/i18n/fr-fra/index.ts b/src/i18n/fr-fra/index.ts
index 69373b23..e16d9794 100644
--- a/src/i18n/fr-fra/index.ts
+++ b/src/i18n/fr-fra/index.ts
@@ -427,7 +427,7 @@ export default {
sampleName: "Le nom d'échantillon",
horizontalHint: 'Chaque phrase se trouve sur une ligne séparée, les tokens sont séparés par des espaces..',
verticalHint: 'Chaque token est écrit sur une ligne séparée, une ligne vide indiquant la fin de la phrase.',
- customUsername: "UserId personnalisé par défaut il s'agit de votre username",
+ customUsername: "UserId personnalisé",
text: 'texte',
tokenizeBtn: 'Tokéniser',
selectFiles: 'Sélectionnez un ou plusieurs fichiers CONLL',
@@ -435,6 +435,13 @@ export default {
uploadFileTooltip: 'sélectionnez un fichier',
reservedUsernameError: 'est un nom réservé pour ArboratorGrew',
emptyUsernameError: 'Vous ne pouvez pas télécharger de fichier sans userId, veuillez saisir quelque chose.',
+ userIdConfig: 'Configuration du UserId',
+ userIdOptions: [
+ "Importez vos arbres sous votre nom d'utilisateurs",
+ 'Importez vos arbres comme des arbres validated',
+ 'Importez vos arbres comme des arbres base_tree',
+ "Importez vos arbres en utilisant un nom d'utilisateur personalisé",
+ ],
},
advancedFilter: {
textFilter: 'Filtre du texte',
diff --git a/src/pinia/modules/user/defaultState.ts b/src/pinia/modules/user/defaultState.ts
index 463ddba8..468440d3 100644
--- a/src/pinia/modules/user/defaultState.ts
+++ b/src/pinia/modules/user/defaultState.ts
@@ -24,7 +24,7 @@ export interface UserStateInterface {
query_class: string | null;
super_admin: boolean;
username: string;
- reservedUserId: string;
+ reservedUserIds: string[];
}
// default user state
@@ -55,6 +55,6 @@ export default function defaultState(): UserStateInterface {
query_class: null,
super_admin: false,
username: '',
- reservedUserId: 'base_tree',
+ reservedUserIds: ['base_tree', 'validated'],
};
}