From b16bec42661ff1b67ebdce6199004aa5942ca6d9 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 10:56:57 +0100 Subject: [PATCH 01/11] ajout loading de la page des applications --- ui/src/views/application/ApplicationsView.vue | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/ui/src/views/application/ApplicationsView.vue b/ui/src/views/application/ApplicationsView.vue index 2c5ffe74b..bb5521d59 100644 --- a/ui/src/views/application/ApplicationsView.vue +++ b/ui/src/views/application/ApplicationsView.vue @@ -94,6 +94,11 @@ </section> </div> <div class="column is-9-widescreen is-12-desktop"> + <caption class="columns" v-if="loading"> + <div class="column loader-wrapper"> + <div class="loader is-loading"></div> + </div> + </caption> <div class="columns"> <div v-for="(application, index) in selectedApplications" @@ -272,6 +277,7 @@ export default class ApplicationsView extends Vue { checkboxTrieA_z = "false"; checkboxTrieZ_a = "false"; checkboxDate = "true"; + loading = false; copyOfApplications(application) { return [...application]; @@ -318,6 +324,9 @@ export default class ApplicationsView extends Vue { async init() { this.applications = await this.applicationService.getApplications(['DATATYPE', 'REFERENCETYPE']); this.selectedApplications = this.applications; + if(this.selectedApplications.length === 0) { + this.loading = true + } if (this.checkboxDate === "true") this.selectedApplications.sort((a, b) => b.creationDate - a.creationDate); } @@ -326,8 +335,8 @@ export default class ApplicationsView extends Vue { this.$router.push("/applicationCreation"); } - updateApplication(id) { - this.$router.push(`/applicationCreation/${id}`); + updateApplication() { + this.$router.push(`/applicationCreation`); } displayReferencesManagement(application) { @@ -413,4 +422,13 @@ export default class ApplicationsView extends Vue { top: 5px; left: 5px; } + +.loader-wrapper { + margin: 50px; + justify-content: center; + .loader { + height: 100px; + width: 100px; + } +} </style> \ No newline at end of file -- GitLab From f6eacbdab757ace55a141c0eb8d4602bd37b1224 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 10:57:53 +0100 Subject: [PATCH 02/11] ajout loading de la page de visualisation d'un dataType --- ui/src/views/datatype/DataTypeTableView.vue | 61 +++++++++------------ 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/ui/src/views/datatype/DataTypeTableView.vue b/ui/src/views/datatype/DataTypeTableView.vue index bbe6e8032..db228a7e8 100644 --- a/ui/src/views/datatype/DataTypeTableView.vue +++ b/ui/src/views/datatype/DataTypeTableView.vue @@ -298,18 +298,9 @@ passive-type="is-dark" type="is-primary" :true-value="$t('dataTypesManagement.accepted')" - :false-value="$t('dataTypesManagement.refuse')" - >{{ $t("ponctuation.regEx") }} {{ params.variableComponentFilters.isRegex }}</b-switch - > - <!-- <b-button - class="btnRegExp" - type="is-dark" - size="is-small" - @click="testChangeRegEx()" - outlined - > - {{ $t("ponctuation.regEx") }}</b-button - >--> + :false-value="$t('dataTypesManagement.refuse')"> + {{ $t("ponctuation.regEx") }} {{ params.variableComponentFilters.isRegex }} + </b-switch> </b-field> <div class="columns"> <div class="column is-8-widescreen is-6-desktop"> @@ -355,13 +346,18 @@ <div class="DataSetTableView-wrapper table-wrapper has-sticky-header" style="height: 690px"> <table class="table is-striped"> <caption v-if="variables.length === 0"> - <div class="columns"> - {{ $t("alert.dataTypeFiltreEmpty") }} + <div v-if="!displayDataTypes" class="loader-wrapper"> + <div class="loader is-loading"></div> </div> - <div class="columns"> - <b-button icon-left="redo" type="is-danger" @click="reInit">{{ - $t("dataTypesManagement.réinitialiser") - }}</b-button> + <div v-if="displayDataTypes" class="columns"> + <div class="column"> + {{ $t("alert.dataTypeFiltreEmpty") }} + </div> + <div class="column"> + <b-button icon-left="redo" type="is-danger" @click="reInit">{{ + $t("dataTypesManagement.réinitialiser") + }}</b-button> + </div> </div> </caption> <thead style="text-transform: capitalize; text-align: center"> @@ -535,23 +531,7 @@ export default class DataTypeTableView extends Vue { isOpen = 0; variableSearch = []; referenceLineCheckers = []; - isRegExp = false; - - /* testChangeRegEx() { - let checkboxes = document.querySelector('.btnRegExp'); - if (this.params.variableComponentFilters.isRegex === true) { - this.params.variableComponentFilters.isRegex = false; - checkboxes.classList.remove('active'); - } - else if (this.params.variableComponentFilters.isRegex === false) { - this.params.variableComponentFilters.isRegex = true; - checkboxes[i].classList.add('active'); - } else { - this.params.variableComponentFilters.isRegex = !this.isRegExp; - checkboxes[i].classList.add('active'); - } - console.log(this.params.variableComponentFilters.isRegex); - }*/ + displayDataTypes = false; async created() { await this.init(); @@ -605,6 +585,9 @@ export default class DataTypeTableView extends Vue { this.dataTypeId, this.params ); + if (dataTypes.rows.length === 0) { + this.displayDataTypes = true; + } this.referenceLineCheckers = dataTypes.checkedFormatVariableComponents.ReferenceLineChecker; this.translations = dataTypes.entitiesTranslations; @@ -1005,4 +988,12 @@ $row-variable-height: 60px; .icon.is-small { font-size: 5rem; } + +.loader-wrapper { + margin: 50px; + .loader { + height: 100px; + width: 100px; + } +} </style> \ No newline at end of file -- GitLab From f2fb4186029e0cda5d91ca9d22aac4fb216edefd Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 11:00:24 +0100 Subject: [PATCH 03/11] =?UTF-8?q?retr=C3=A9=20du=20bouton=20r=C3=A9inisial?= =?UTF-8?q?is=C3=A9=20du=20message=20d'erreur=20de=20la=20page=20visualisa?= =?UTF-8?q?tion=20des=20donn=C3=A9e=20pour=20un=20dataType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/views/datatype/DataTypeTableView.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ui/src/views/datatype/DataTypeTableView.vue b/ui/src/views/datatype/DataTypeTableView.vue index db228a7e8..fe17a77d1 100644 --- a/ui/src/views/datatype/DataTypeTableView.vue +++ b/ui/src/views/datatype/DataTypeTableView.vue @@ -353,11 +353,6 @@ <div class="column"> {{ $t("alert.dataTypeFiltreEmpty") }} </div> - <div class="column"> - <b-button icon-left="redo" type="is-danger" @click="reInit">{{ - $t("dataTypesManagement.réinitialiser") - }}</b-button> - </div> </div> </caption> <thead style="text-transform: capitalize; text-align: center"> -- GitLab From df4844a131b78bd83931402bc83b87bbed20324a Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 15:08:32 +0100 Subject: [PATCH 04/11] =?UTF-8?q?ajout=20loading=20tableau=20donn=C3=A9es?= =?UTF-8?q?=20r=C3=A9f=C3=A9rences?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/views/references/ReferenceTableView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src/views/references/ReferenceTableView.vue b/ui/src/views/references/ReferenceTableView.vue index 5a5b70bb9..8c900818a 100644 --- a/ui/src/views/references/ReferenceTableView.vue +++ b/ui/src/views/references/ReferenceTableView.vue @@ -13,6 +13,7 @@ <div v-if="reference && columns"> <b-table :data="tableValues" + :loading="isLoading" :striped="true" :is-focusable="true" :is-hoverable="true" @@ -137,7 +138,7 @@ export default class ReferenceTableView extends Vue { }); totalRows = -1; currentPage = 1; - + isLoading = false; application = new ApplicationResult(); subMenuPaths = []; reference = {}; @@ -246,6 +247,7 @@ export default class ReferenceTableView extends Vue { } async init() { + this.isLoading = true; try { this.application = await this.applicationService.getApplication(this.applicationName,['CONFIGURATION','REFERENCETYPE']); this.application = { @@ -276,6 +278,7 @@ export default class ReferenceTableView extends Vue { } catch (error) { this.alertService.toastServerError(); } + this.isLoading = false; } async setInitialVariables() { -- GitLab From ebe19aa257a3cc7b4cc2c5e0f7b2150086cebc0e Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 15:55:33 +0100 Subject: [PATCH 05/11] ajout loading sur page autorisation Info --- .../views/authorizations/DataTypeAuthorizationInfoView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index cd05f0d48..f65a82616 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -111,6 +111,7 @@ ></b-field> </div> </div> + <b-loading :is-full-page="null" v-model="isLoading"></b-loading> </AuthorizationTable> <div class="buttons"> @@ -185,7 +186,7 @@ export default class DataTypeAuthorizationInfoView extends Vue { selectedlabels = []; userLabels = []; isApplicationAdmin = false; - openOnFocus = true; + isLoading; periods = { FROM_DATE: this.$t("dataTypeAuthorizations.from-date"), @@ -304,6 +305,7 @@ export default class DataTypeAuthorizationInfoView extends Vue { } ), ]; + this.isLoading = false; } mounted() {} @@ -318,6 +320,7 @@ export default class DataTypeAuthorizationInfoView extends Vue { } async init() { + this.isLoading = true; try { this.application = await this.applicationService.getApplication(this.applicationName, [ "CONFIGURATION", -- GitLab From 00789faf589988de0800f64799e42862dba4adfc Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 16:05:03 +0100 Subject: [PATCH 06/11] ajout loading page repository --- ui/src/views/datatype/DataTypesRepositoryView.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ui/src/views/datatype/DataTypesRepositoryView.vue b/ui/src/views/datatype/DataTypesRepositoryView.vue index 26ff9b0d3..2caeb6afa 100644 --- a/ui/src/views/datatype/DataTypesRepositoryView.vue +++ b/ui/src/views/datatype/DataTypesRepositoryView.vue @@ -247,6 +247,7 @@ <td align> <b-field> <b-button + ref="element" :icon-right="dataset.params.published ? 'check-circle' : 'circle'" size="is-medium" type="is-primary is-light" @@ -605,6 +606,10 @@ export default class DataTypesRepositoryView extends Vue { } async publish(dataset, pusblished) { + // TODO : ajout loading en JS + const loadingComponent = this.$buefy.loading.open({ + container: this.isFullPage ? null : this.$refs.element.$el + }) this.errorsMessages = []; dataset.params.published = pusblished; let requiredAuthorizations = dataset.params.binaryFiledataset.requiredAuthorizations; @@ -628,6 +633,7 @@ export default class DataTypesRepositoryView extends Vue { } catch (error) { this.checkMessageErrors(error); } + loadingComponent.close(); } checkMessageErrors(error) { -- GitLab From 915497677a91faed297c2a6942a9492193509cf1 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 5 Jan 2023 17:18:24 +0100 Subject: [PATCH 07/11] loading au bonne endroit --- ui/src/views/datatype/DataTypesRepositoryView.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ui/src/views/datatype/DataTypesRepositoryView.vue b/ui/src/views/datatype/DataTypesRepositoryView.vue index 2caeb6afa..dd68a1fbb 100644 --- a/ui/src/views/datatype/DataTypesRepositoryView.vue +++ b/ui/src/views/datatype/DataTypesRepositoryView.vue @@ -158,7 +158,8 @@ </div> <div v-if="isAuthorisationsSelected()" class="columns"> <div class="card column"> - <div class="card-content"> + <div class="card-content" + id="element"> <table v-if="datasets && Object.keys(datasets).length" class="table is-striped is-fullwidth numberData" @@ -247,7 +248,6 @@ <td align> <b-field> <b-button - ref="element" :icon-right="dataset.params.published ? 'check-circle' : 'circle'" size="is-medium" type="is-primary is-light" @@ -342,6 +342,7 @@ export default class DataTypesRepositoryView extends Vue { currentDataset = null; repository = {}; errorsMessages = []; + isFullPage = false; mounted() { this.$on("authorizationChanged", this.updateDatasets); @@ -608,7 +609,7 @@ export default class DataTypesRepositoryView extends Vue { async publish(dataset, pusblished) { // TODO : ajout loading en JS const loadingComponent = this.$buefy.loading.open({ - container: this.isFullPage ? null : this.$refs.element.$el + container: document.getElementById("element") }) this.errorsMessages = []; dataset.params.published = pusblished; -- GitLab From 71fe76ecb9ff18d601c2b101db23dd8351bc2a5a Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Fri, 6 Jan 2023 15:30:33 +0100 Subject: [PATCH 08/11] loading lors du test du yaml --- ui/src/views/application/ApplicationCreationView.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 501d0423d..384e5774c 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -180,6 +180,7 @@ export default class ApplicationCreationView extends Vue { } async testApplication() { + const loadingComponent = this.$buefy.loading.open(); this.errorsMessages = []; try { let response = await this.applicationService.validateConfiguration(this.applicationConfig); @@ -212,6 +213,7 @@ export default class ApplicationCreationView extends Vue { } catch (error) { this.checkMessageErrors(error); } + loadingComponent.close(); } checkMessageErrors(error) { -- GitLab From 206f111641f52f6d6fd491a5fed27a15a8c3c365 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Fri, 6 Jan 2023 15:34:32 +0100 Subject: [PATCH 09/11] retirer des console.log de la page repository --- ui/src/views/datatype/DataTypesRepositoryView.vue | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ui/src/views/datatype/DataTypesRepositoryView.vue b/ui/src/views/datatype/DataTypesRepositoryView.vue index dd68a1fbb..b8056473e 100644 --- a/ui/src/views/datatype/DataTypesRepositoryView.vue +++ b/ui/src/views/datatype/DataTypesRepositoryView.vue @@ -373,7 +373,6 @@ export default class DataTypesRepositoryView extends Vue { } changeFile(file) { - console.log("repository", this.repository); let pattern = this.repository.filePattern; let split = []; if (pattern && pattern.length) { @@ -618,9 +617,7 @@ export default class DataTypesRepositoryView extends Vue { acc[key] = acc[key] ? acc[key].sql : ""; return acc; }, requiredAuthorizations); - console.log("requiredAuthorizations", requiredAuthorizations); dataset.params.binaryFiledataset.requiredAuthorizations = requiredAuthorizations; - console.log("binaryFiledataset", dataset.params.binaryFiledataset); var fileOrId = new FileOrUUID(dataset.id, dataset.params.binaryFiledataset, pusblished); try { var uuid = await this.dataService.addData( @@ -646,7 +643,6 @@ export default class DataTypesRepositoryView extends Vue { for (let i = 0; i < value.length; i++) { if (message.length > 0) { if (JSON.stringify(value[i]) !== JSON.stringify(value[i - message.length])) { - console.log(message); this.errorsList.push(value[i]); } for (let j = 0; j < message.length; j++) { @@ -659,7 +655,6 @@ export default class DataTypesRepositoryView extends Vue { this.errorsList.push(value[i]); } } - console.log(this.errorsList); if (this.errorsList.length !== 0) { this.errorsMessages = this.errorsService.getCsvErrorsMessages(this.errorsList); } else { -- GitLab From 2d1de4ec77d9afa8f9430fb881aef21a58945603 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Fri, 6 Jan 2023 16:21:40 +0100 Subject: [PATCH 10/11] loading page dataType pour les chart Drescription --- ui/src/components/common/CollapsibleTree.vue | 11 ++++++++--- ui/src/views/datatype/DataTypesManagementView.vue | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ui/src/components/common/CollapsibleTree.vue b/ui/src/components/common/CollapsibleTree.vue index 9f80b96eb..83c093024 100644 --- a/ui/src/components/common/CollapsibleTree.vue +++ b/ui/src/components/common/CollapsibleTree.vue @@ -57,9 +57,6 @@ <span class="file-name" v-else-if="lineCount > 0"> {{ $t("validation.count-line") }} {{ lineCount }} </span> - <span v-else-if="!option.synthesisMinMax" class="nodata has-text-danger"> - {{ $t("validation.data-empty") }} - </span> </div> <div :class=" @@ -82,7 +79,11 @@ new Date(option.synthesisMinMax[1]).toLocaleDateString("fr") }} </b-field> + <div v-if="isLoading" class="loader-wrapper"> + <div class="loader is-loading"></div> + </div> <availiblity-chart + v-else class="tile availiblity-chart" :show-dates="false" :minmax="option.synthesis.minmax" @@ -90,6 +91,9 @@ :id="option.label" /> </span> + <span v-else class="nodata has-text-danger" style="margin-left: 50px"> + {{ $t("validation.data-empty") }} + </span> </div> </div> <div class="CollapsibleTree-buttons column is-2"> @@ -176,6 +180,7 @@ export default { type: Number, default: 0, }, + isLoading: Boolean, applicationTitle: { type: String, }, diff --git a/ui/src/views/datatype/DataTypesManagementView.vue b/ui/src/views/datatype/DataTypesManagementView.vue index c1c01c0bc..363d4d657 100644 --- a/ui/src/views/datatype/DataTypesManagementView.vue +++ b/ui/src/views/datatype/DataTypesManagementView.vue @@ -41,6 +41,7 @@ withSynthesis: true, withTooltip: true, }" + :is-loading="isLoading" :level="0" :on-click-label-cb="(event, label) => openDataTypeCb(event, label)" :on-click-label-synthesis-detail-cb=" @@ -110,8 +111,8 @@ export default class DataTypesManagementView extends Vue { alertService = AlertService.INSTANCE; dataService = DataService.INSTANCE; errorsService = ErrorsService.INSTANCE; - application = new ApplicationResult(); + isLoading = false; subMenuPaths = []; buttons = [ new Button( @@ -167,6 +168,7 @@ export default class DataTypesManagementView extends Vue { } } async initSynthesis() { + this.isLoading = true; for (const datatype in this.application.dataTypes) { let minmaxByDatatypes = []; let synthesis = await this.synthesisService.getSynthesis(this.applicationName, datatype); @@ -233,6 +235,7 @@ export default class DataTypesManagementView extends Vue { } this.synthesis = { ...this.synthesis }; this.synthesisMinMax = { ...this.synthesisMinMax }; + this.isLoading = false; } consultDataType(label) { -- GitLab From 6e8f02342329a1b500b66620ff2cab218b2d1422 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Mon, 9 Jan 2023 10:06:42 +0100 Subject: [PATCH 11/11] retrait btn --- .../DataTypeAuthorizationInfoView.vue | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue index f65a82616..b670ec92a 100644 --- a/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue +++ b/ui/src/views/authorizations/DataTypeAuthorizationInfoView.vue @@ -43,22 +43,6 @@ @typing="getFilteredTags" > </b-taginput> - - <b-dropdown v-model="selectedlabels" multiple aria-role="list"> - <template #trigger="{ active }"> - <b-button type="is-primary" :icon-right="active ? 'chevron-up' : 'chevron-down'"> - </b-button> - </template> - - <b-dropdown-item - v-for="user of userLabels" - :value="user" - :key="user" - aria-role="listuser" - > - <span>{{ user }}</span> - </b-dropdown-item> - </b-dropdown> </b-field> </ValidationProvider> <ValidationProvider -- GitLab