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