From 2ee450727df2fc2e02c2e747ae8d973aef399eec Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Wed, 20 Sep 2023 12:37:07 +0200
Subject: [PATCH 1/8] modif visuel modal info application avant de faire la
 page intermediaire

---
 .../application/CharteValidator.vue           |   2 +-
 .../DetailApplicationModalCard.vue            | 308 +++++++++---------
 ui/src/components/charts/ModalCard.vue        |   6 +-
 ui/src/style/_common.scss                     |   4 +
 4 files changed, 167 insertions(+), 153 deletions(-)

diff --git a/ui/src/components/application/CharteValidator.vue b/ui/src/components/application/CharteValidator.vue
index aff9cd61b..e7372adbb 100644
--- a/ui/src/components/application/CharteValidator.vue
+++ b/ui/src/components/application/CharteValidator.vue
@@ -10,7 +10,7 @@ export default {
 </script>
 
 <template>
-  <object :data="href" type="application/pdf" height="900" width="100%" form="validateForm">
+  <object :data="href" type="application/pdf" height="600px" width="100%" form="validateForm">
     <param name="”view”" value="”600px”" />
   </object>
 </template>
diff --git a/ui/src/components/application/DetailApplicationModalCard.vue b/ui/src/components/application/DetailApplicationModalCard.vue
index c0cd97341..67c583bef 100644
--- a/ui/src/components/application/DetailApplicationModalCard.vue
+++ b/ui/src/components/application/DetailApplicationModalCard.vue
@@ -1,166 +1,178 @@
 <template>
   <ModalCard
-    v-show="open || url"
-    :open="open || !!url"
-    :title="application && (application.localName || application.name)"
-    :close-cb="closeCb"
+      v-show="open || url"
+      :close-cb="closeCb"
+      :open="open || !!url"
+      :title="application && (application.localName || application.name)"
   >
-    <div v-if="getUrl" class="modal-card" id="charteValidate">
-      <div class="card-header-title">
-        {{ $t("applications.charte_header", application) }}
+    <div v-if="getUrl" id="charteValidate" class="modal-card" style="width: auto">
+      <header class="modal-card-head">
+        <p class="modal-card-title">
+          {{ $t("applications.charte_header", application) }}</p>
+      </header>
+      <div class="modal-card-body">
+        <CharteValidator :href="getUrl"/>
       </div>
-      <CharteValidator :href="getUrl" />
-      <form id="validateForm">
-        <b-checkbox v-model="validated" type="primary" class="validatesCheckbox" required>
-          {{ $t("applications.charte_message") }}
-        </b-checkbox>
-      </form>
+      <footer class="modal-card-foot">
+        <form id="validateForm">
+          <b-checkbox v-model="validated" class="validatesCheckbox" required type="primary">
+            {{ $t("applications.charte_message") }}
+          </b-checkbox>
+        </form>
+      </footer>
     </div>
     <div v-else class="modal-card">
       <div class="card">
-        <div class="card-header-title">
-          <div class="infos card-content">
-            <span
-              class="description"
-              v-html="
+        <div class="infos card-content">
+          <p class="columns"
+             v-html="
                 $t('applications.version', {
                   applicationName: application.localName,
                   version: application.version,
                 })
               "
-            />
-            <span>
+          />
+        </div>
+        <div class="infos card-content">
+          <p class="columns">
               <span :class="application.comment ? 'has-text-primary' : 'has-text-warning'">
                 {{
                   application.comment ? $t("applications.comment") : $t("applications.no-comment")
                 }}
               </span>
-              <span class="comment">{{ application.comment }}</span>
-            </span>
-          </div>
+            <span class="comment">{{ application.comment }}</span>
+          </p>
         </div>
         <div class="buttonPanel">
-          <div class="buttonRubriquePanel" aria-description="application">
-            <div class="rubriqueTitle">{{ $t("applications.functions.application-manage") }}</div>
-            <div v-if="canCreateApplication" class="buttonWarper">
-              <b-button
-                icon-left="pen-square"
-                type="is-warning"
-                @click="updateApplication(application.id)"
-              >
-                {{ $t("applications.change") }}
-              </b-button>
-            </div>
-            <div v-if="canCreateApplication" class="buttonWarper">
-              <b-button
-                icon-left="download"
-                type="is-primary"
-                @click="downloadYamlApplication(application)"
-              >
-                {{ $t("referencesManagement.download") }}
-              </b-button>
-            </div>
-            <div class="buttonWarper">
-              <b-button
-                icon-left="download"
-                @click="charteHREF = downloadCharteApplication(application.id)"
-              >
-                {{ $t("applications.functions.charte-consult") }}
-              </b-button>
-            </div>
-            <div v-if="canCreateApplication" class="buttonWarper">
-              <b-upload
-                v-model="tmpCharte"
-                class="file-label"
-                @input="uploadCharteApplication(application)"
-                required
-                :validationMessage="$t('applications.functions.file-select')"
-              >
+          <b-tabs class="buttonRubriquePanel">
+            <b-tab-item aria-description="application">
+              <template #header>
+                <span class="rubriqueTitle">{{ $t("applications.functions.application-manage") }}</span>
+              </template>
+              <div v-if="canCreateApplication" class="buttonWarper">
+                <b-button
+                    icon-left="pen-square"
+                    type="is-warning"
+                    @click="updateApplication(application.id)"
+                >
+                  {{ $t("applications.change") }}
+                </b-button>
+              </div>
+              <div v-if="canCreateApplication" class="buttonWarper">
+                <b-button
+                    icon-left="download"
+                    type="is-primary"
+                    @click="downloadYamlApplication(application)"
+                >
+                  {{ $t("referencesManagement.download") }}
+                </b-button>
+              </div>
+              <div class="buttonWarper">
+                <b-button
+                    icon-left="download"
+                    @click="charteHREF = downloadCharteApplication(application.id)"
+                >
+                  {{ $t("applications.functions.charte-consult") }}
+                </b-button>
+              </div>
+              <div v-if="canCreateApplication" class="buttonWarper">
+                <b-upload
+                    v-model="tmpCharte"
+                    :validationMessage="$t('applications.functions.file-select')"
+                    class="file-label"
+                    required
+                    @input="uploadCharteApplication(application)"
+                >
                 <span class="file-cta">
                   <b-icon class="file-icon" icon="upload"></b-icon>
                   <span class="file-label">{{ $t("applications.functions.upload") }}</span>
                 </span>
-              </b-upload>
-            </div>
-          </div>
-          <div class="buttonRubriquePanel" aria-description="references">
-            <div class="rubriqueTitle">{{ $t("applications.functions.references-manage") }}</div>
-            <div class="buttonWarper">
-              <b-button
-                icon-left="drafting-compass"
-                @click="displayReferencesManagement(application.name)"
+                </b-upload>
+              </div>
+            </b-tab-item>
+            <b-tab-item aria-description="references">
+              <template #header>
+                <span class="rubriqueTitle">{{ $t("applications.functions.references-manage") }}</span>
+              </template>
+              <div class="buttonWarper">
+                <b-button
+                    icon-left="drafting-compass"
+                    @click="displayReferencesManagement(application.name)"
                 >{{ $t("applications.references") }}
-              </b-button>
-            </div>
-            <div class="buttonWarper">
-              <b-button icon-left="drafting-compass" @click="showReferenceRights(application.name)"
+                </b-button>
+              </div>
+              <div class="buttonWarper">
+                <b-button icon-left="drafting-compass" @click="showReferenceRights(application.name)"
                 >{{ $t("applications.functions.references-rights") }}
-              </b-button>
-            </div>
-          </div>
-          <div class="buttonRubriquePanel" aria-description="data">
-            <div class="rubriqueTitle">{{ $t("applications.functions.data-manage") }}</div>
-            <div class="buttonWarper">
-              <b-button icon-left="poll" @click="displayDataSetManagement(application.name)"
+                </b-button>
+              </div>
+            </b-tab-item>
+            <b-tab-item aria-description="data">
+              <template #header>
+                <span class="rubriqueTitle">{{ $t("applications.functions.data-manage") }}</span>
+              </template>
+              <div class="buttonWarper">
+                <b-button icon-left="poll" @click="displayDataSetManagement(application.name)"
                 >{{ $t("applications.dataset") }}
-              </b-button>
-            </div>
-            <div class="buttonWarper">
-              <b-button icon-left="drafting-compass" @click="showDataRights(application.name)"
+                </b-button>
+              </div>
+              <div class="buttonWarper">
+                <b-button icon-left="drafting-compass" @click="showDataRights(application.name)"
                 >{{ $t("applications.functions.data-rights") }}
-              </b-button>
-            </div>
-          </div>
-          <div class="buttonRubriquePanel" aria-description="authorization">
-            <div class="rubriqueTitle">
-              {{ $t("applications.functions.right-requests-manage") }}
-            </div>
-            <span v-if="!canCreateApplication" class="buttonWarper">
+                </b-button>
+              </div>
+            </b-tab-item>
+            <b-tab-item aria-description="authorization">
+              <template #header>
+                <span class="rubriqueTitle">{{ $t("applications.functions.right-requests-manage") }}</span>
+              </template>
+              <span v-if="!canCreateApplication" class="buttonWarper">
               <b-button
-                icon-left="users-cog"
-                type="is-primary"
-                @click="showRequestRights(application.name)"
+                  icon-left="users-cog"
+                  type="is-primary"
+                  @click="showRequestRights(application.name)"
               >
                 {{ $t("dataTypeAuthorizations.showRequests") }}
               </b-button>
             </span>
-            <div v-else class="buttonWarper">
-              <b-button
-                icon-left="users-cog"
-                type="is-primary"
-                @click="requestRights(application.name)"
+              <div v-else class="buttonWarper">
+                <b-button
+                    icon-left="users-cog"
+                    type="is-primary"
+                    @click="requestRights(application.name)"
+                >
+                  {{ $t("dataTypeAuthorizations.request") }}
+                </b-button>
+              </div>
+            </b-tab-item>
+            <b-tab-item aria-description="additional files">
+              <template #header>
+                <span class="rubriqueTitle">{{ $t("applications.functions.additional-files-manage") }}</span>
+              </template>
+              <div
+                  v-if="application.additionalFile && application.additionalFile.length !== 0"
+                  class="buttonWarper"
               >
-                {{ $t("dataTypeAuthorizations.request") }}
-              </b-button>
-            </div>
-          </div>
-          <div class="buttonRubriquePanel" aria-description="additional files">
-            <div class="rubriqueTitle">
-              {{ $t("applications.functions.additional-files-manage") }}
-            </div>
-            <div
-              v-if="application.additionalFile && application.additionalFile.length !== 0"
-              class="buttonWarper"
-            >
-              <b-button
-                icon-left="file"
-                @click="displayAdditionalFilesManagement(application.name)"
+                <b-button
+                    icon-left="file"
+                    @click="displayAdditionalFilesManagement(application.name)"
+                >
+                  {{ $t("applications.additionalFile") }}
+                </b-button>
+              </div>
+              <div
+                  v-if="application.additionalFile && application.additionalFile.length !== 0"
+                  class="buttonWarper"
               >
-                {{ $t("applications.additionalFile") }}
-              </b-button>
-            </div>
-            <div
-              v-if="application.additionalFile && application.additionalFile.length !== 0"
-              class="buttonWarper"
-            >
-              <b-button
-                icon-left="file"
-                @click="showAdditionalFilesManagementRights(application.name)"
-              >
-                {{ $t("applications.functions.additional-files-rights") }}
-              </b-button>
-            </div>
-          </div>
+                <b-button
+                    icon-left="file"
+                    @click="showAdditionalFilesManagementRights(application.name)"
+                >
+                  {{ $t("applications.functions.additional-files-rights") }}
+                </b-button>
+              </div>
+            </b-tab-item>
+          </b-tabs>
         </div>
       </div>
     </div>
@@ -169,15 +181,15 @@
 
 <script>
 import ModalCard from "@/components/charts/ModalCard";
-import { useRedirections } from "@/composable/applications/useFunction";
+import {useRedirections} from "@/composable/applications/useFunction";
 import useText from "@/composable/components/text";
 import CharteValidator from "@/components/application/CharteValidator.vue";
-import { computed } from "vue";
+import {computed} from "vue";
 import services from "@/composable/services";
 
 export default {
   name: "DetailApplicationModalCard",
-  components: { CharteValidator, ModalCard },
+  components: {CharteValidator, ModalCard},
   emits: ["setValidatedCharte"],
   props: {
     open: {
@@ -218,9 +230,9 @@ export default {
       get() {
         const authenticatedUser = () => services.loginService.getAuthenticatedUser();
         if (
-          authenticatedUser() &&
-          authenticatedUser().chartes &&
-          authenticatedUser().chartes[props.application.id]
+            authenticatedUser() &&
+            authenticatedUser().chartes &&
+            authenticatedUser().chartes[props.application.id]
         ) {
           return new Date().getTime() > authenticatedUser().chartes[props.application.id];
         }
@@ -229,16 +241,16 @@ export default {
       set(bool) {
         const authenticatedUser = () => services.loginService.getAuthenticatedUser();
         bool &&
-          services.loginService.modifAcount({
-            login: authenticatedUser().login,
-            email: authenticatedUser().email,
-            charte: props.application.id,
-          });
+        services.loginService.modifAcount({
+          login: authenticatedUser().login,
+          email: authenticatedUser().email,
+          charte: props.application.id,
+        });
         bool &&
-          ctx.emit("setValidatedCharte", {
-            applicationId: props.application.id,
-            validated: bool,
-          });
+        ctx.emit("setValidatedCharte", {
+          applicationId: props.application.id,
+          validated: bool,
+        });
       },
     });
     const {
@@ -320,7 +332,6 @@ div.buttonPanel {
 }
 
 div.buttonRubriquePanel {
-  border: rgba(219, 219, 219, 0.4) thick solid;
   flex-wrap: nowrap;
   display: flex;
   flex-direction: column;
@@ -331,9 +342,7 @@ div.buttonRubriquePanel {
 div.buttonRubriquePanel .rubriqueTitle {
   width: 100%;
   text-align: center;
-  color: #007f7f;
   font-size: 150%;
-  border-bottom: #007f7f solid thin;
 }
 
 div.buttonWarper {
@@ -357,14 +366,15 @@ div.buttonWarper button {
 
 .validatesCheckbox {
   padding: 5px;
-  color: white;
+  color: #007F7F;
   font-size: 2rem;
 }
 
 .validatesCheckbox:hover {
   background-color: white;
 }
-.card-header-title{
+
+.card-header-title {
   color: white;
   font-size: 200%;
   padding: 1em;
diff --git a/ui/src/components/charts/ModalCard.vue b/ui/src/components/charts/ModalCard.vue
index e785a4d62..4122b2ec3 100644
--- a/ui/src/components/charts/ModalCard.vue
+++ b/ui/src/components/charts/ModalCard.vue
@@ -36,13 +36,13 @@ export default {
     watch(
       () => props.open,
       (newVal) => {
-        this.innerOpen.value = newVal;
+        innerOpen.value = newVal;
       }
     );
     watch(
-      () => this.innerOpen,
+      () => innerOpen,
       (newVal) => {
-        this.closeCb(newVal);
+        props.closeCb(newVal);
       }
     );
     return {};
diff --git a/ui/src/style/_common.scss b/ui/src/style/_common.scss
index 0e9358276..f9a6a2d31 100644
--- a/ui/src/style/_common.scss
+++ b/ui/src/style/_common.scss
@@ -13,6 +13,10 @@ body {
   align-items: center;
   justify-content: center;
 }
+
+.is-large.modal-close{
+  background-color: $primary;
+}
 .title {
   color: $primary;
   margin-top: $title-margin-top;
-- 
GitLab


From 5550ef4efbae37eb60739550a72314568a49df2d Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Tue, 3 Oct 2023 16:40:23 +0200
Subject: [PATCH 2/8] avec un full-screen c'est mieux

---
 ui/src/components/application/ApplicationCard.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/src/components/application/ApplicationCard.vue b/ui/src/components/application/ApplicationCard.vue
index 545df0e83..35e62082b 100644
--- a/ui/src/components/application/ApplicationCard.vue
+++ b/ui/src/components/application/ApplicationCard.vue
@@ -80,7 +80,7 @@ export default {
             type="is-primary"
             @click="isCardModalActive = true"
           />
-          <b-modal v-model="isCardModalActive" class="modalByAgrégation" width="90%" height="90%">
+          <b-modal v-model="isCardModalActive" class="modalByAgrégation" full-screen>
             <DetailApplicationModalCard
               :application="application"
               :open="isCardModalActive"
-- 
GitLab


From d5d2c517d4c353c5dd6e5db6368fcc2bb57d041a Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Wed, 4 Oct 2023 15:03:37 +0200
Subject: [PATCH 3/8] buttonPanel dans le cadre (fin du hors ecrant)

---
 ui/src/components/application/DetailApplicationModalCard.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/src/components/application/DetailApplicationModalCard.vue b/ui/src/components/application/DetailApplicationModalCard.vue
index 67c583bef..0f1b3d56d 100644
--- a/ui/src/components/application/DetailApplicationModalCard.vue
+++ b/ui/src/components/application/DetailApplicationModalCard.vue
@@ -43,7 +43,7 @@
             <span class="comment">{{ application.comment }}</span>
           </p>
         </div>
-        <div class="buttonPanel">
+        <div class="buttonPanel columns" style="display: contents">
           <b-tabs class="buttonRubriquePanel">
             <b-tab-item aria-description="application">
               <template #header>
-- 
GitLab


From eee4c0dd47e4552fec33cecbb57ae44ace738d0d Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Thu, 12 Oct 2023 17:28:45 +0200
Subject: [PATCH 4/8] =?UTF-8?q?modification=20de=20update=20application=20?=
 =?UTF-8?q?avec=20v=C3=A9rification=20de=20la=20version=20pr=C3=A9c=C3=A9d?=
 =?UTF-8?q?ente=20et=20du=20nom=20de=20l'application?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../application/DetailApplicationModalCard.vue      |  2 +-
 ui/src/composable/applications/useFunction.js       |  4 ++--
 ui/src/locales/fr.json                              |  2 +-
 ui/src/router/index.js                              |  3 ++-
 .../views/application/ApplicationCreationView.vue   | 13 +++++++++----
 5 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/ui/src/components/application/DetailApplicationModalCard.vue b/ui/src/components/application/DetailApplicationModalCard.vue
index 0f1b3d56d..1df47770b 100644
--- a/ui/src/components/application/DetailApplicationModalCard.vue
+++ b/ui/src/components/application/DetailApplicationModalCard.vue
@@ -53,7 +53,7 @@
                 <b-button
                     icon-left="pen-square"
                     type="is-warning"
-                    @click="updateApplication(application.id)"
+                    @click="updateApplication(application.name, application.version)"
                 >
                   {{ $t("applications.change") }}
                 </b-button>
diff --git a/ui/src/composable/applications/useFunction.js b/ui/src/composable/applications/useFunction.js
index 7e6943992..1e6927f67 100644
--- a/ui/src/composable/applications/useFunction.js
+++ b/ui/src/composable/applications/useFunction.js
@@ -20,8 +20,8 @@ export function useRedirections(application = { authorizations: [] }) {
   /*
     limited to applicationCreator
      */
-  function updateApplication() {
-    return canCreateApplication() && app.$router.push(`/applicationCreation`);
+  function updateApplication(applicationName, applicationVersion) {
+    return canCreateApplication() && app.$router.push(`/applicationCreation/${applicationName}/${applicationVersion}`);
   }
 
   /*
diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json
index 14b5ea70a..07df39e26 100644
--- a/ui/src/locales/fr.json
+++ b/ui/src/locales/fr.json
@@ -103,7 +103,7 @@
     "registered-user": "Compte utilisateur créé",
     "revoke-authorization": "Autorisation révoquée",
     "server-error": "Une erreur serveur est survenue",
-    "server-error-appli-exist": "Ce nom d'application existe déjà",
+    "server-error-appli-exist": "L'application {name} existe déjà en version : {version}",
     "user-email-updated": "Votre email vient d'être mis à jours avec succès. ",
     "user-pwd-updated": "Votre mot de passe vient d'être mis à jours avec succès. ",
     "user-unknown": "message : {message} ",
diff --git a/ui/src/router/index.js b/ui/src/router/index.js
index dc51744b6..1dbe4f223 100644
--- a/ui/src/router/index.js
+++ b/ui/src/router/index.js
@@ -52,9 +52,10 @@ const routes = [
     component: ApplicationsView,
   },
   {
-    path: "/applicationCreation",
+    path: "/applicationCreation/:applicationName/:applicationVersion",
     name: "Application creation",
     component: ApplicationCreationView,
+    props: true,
   },
   {
     path: "/authorizationsManagementForApplicationCreator",
diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue
index 9c9e0315f..760c52ae7 100644
--- a/ui/src/views/application/ApplicationCreationView.vue
+++ b/ui/src/views/application/ApplicationCreationView.vue
@@ -104,7 +104,7 @@
               {{ $t("applications.change") }}
             </b-button>
             <b-button
-              v-if="applicationConfig.name !== '' && !btnUpdateConfig"
+              v-if="applicationConfig.name !== '' && !btnUpdateConfig && applicationVersion === null"
               icon-left="plus"
               type="is-primary"
               @click="handleSubmit(createApplication)"
@@ -141,7 +141,7 @@
 </template>
 
 <script>
-import { Component, Vue } from "vue-property-decorator";
+import { Component, Prop, Vue } from "vue-property-decorator";
 import PageView from "@/views/common/PageView.vue";
 import { ValidationObserver, ValidationProvider } from "vee-validate";
 import { ApplicationConfig } from "@/model/ApplicationConfig";
@@ -155,6 +155,8 @@ import LoadingAnimate from "@/components/common/LoadingAnimate.vue";
   components: { LoadingAnimate, PageView, ValidationObserver, ValidationProvider },
 })
 export default class ApplicationCreationView extends Vue {
+  @Prop() applicationName;
+  @Prop() applicationVersion;
   applicationService = ApplicationService.INSTANCE;
   errorsService = ErrorsService.INSTANCE;
   alertService = AlertService.INSTANCE;
@@ -206,10 +208,13 @@ export default class ApplicationCreationView extends Vue {
       if (response.valid === true) {
         this.applicationConfig.name = response.result.application.name.toLowerCase();
         this.applicationConfig.version = response.result.application.version;
-        if (response.result.application.version !== 1) {
+        if (response.result.application.version !== this.applicationVersion && response.result.application.name === this.applicationName) {
           this.btnUpdateConfig = true;
+        } else if(this.applicationConfig.version.toString() === this.applicationVersion && this.applicationConfig.name === this.applicationName) {
+          this.alertService.toastError(this.$t("alert.server-error-appli-exist", this.applicationName, this.applicationVersion));
+        } else {
+          this.alertService.toastSuccess(this.$t("alert.application-validate-success"));
         }
-        this.alertService.toastSuccess(this.$t("alert.application-validate-success"));
       } else {
         for (let i = 0; i < response.validationCheckResults.length; i++) {
           if (
-- 
GitLab


From 70ac8a432b7d9f3d4b38b09aba9af899c6195351 Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Fri, 13 Oct 2023 10:33:47 +0200
Subject: [PATCH 5/8] =?UTF-8?q?mise=20=C3=A0=20jours=20du=20message=20sur?=
 =?UTF-8?q?=20la=20version=20de=20l'application=20lors=20du=20update?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ui/src/locales/en.json                               |  3 ++-
 ui/src/locales/fr.json                               |  3 ++-
 ui/src/views/application/ApplicationCreationView.vue | 10 ++++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json
index 83795c4df..b64a1f3e3 100644
--- a/ui/src/locales/en.json
+++ b/ui/src/locales/en.json
@@ -115,7 +115,8 @@
     "actions": "Actions",
     "additionalFile": "Additional files",
     "advancedFilter": "Advanced search",
-    "app_version": "Current app version :",
+    "app_version": "Current version of {name} is: {version}",
+    "app_update_version": "Version of {name} proposed is: {version}",
     "change": "Edit app",
     "charte_message": "I have read and accept the conditions of use of the data.",
     "charte_header": "To access the {localName} application, you must accept the conditions of use.",
diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json
index 07df39e26..678647cbe 100644
--- a/ui/src/locales/fr.json
+++ b/ui/src/locales/fr.json
@@ -115,7 +115,8 @@
     "actions": "Actions",
     "additionalFile": "Fichiers additionnels",
     "advancedFilter": "Recherche avancée",
-    "app_version": "Version actuelle de l'application :",
+    "app_version": "Version actuelle de {name} est : {version}",
+    "app_update_version": "Version de {name} proposé est : {version}",
     "change": "Modifier l'application",
     "charte_message": "J'ai lu et j'accepte les conditions d'utilisation des données.",
     "charte_header": "Pour accéder à l'application {localName}, vous devez accepter les conditions d'utilisation.",
diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue
index 760c52ae7..e0e34c451 100644
--- a/ui/src/views/application/ApplicationCreationView.vue
+++ b/ui/src/views/application/ApplicationCreationView.vue
@@ -55,7 +55,10 @@
             </div>
             <div class="column is-4">
               <b-tag v-if="btnUpdateConfig" size="is-large" style="margin: 5px" type="is-warning">
-                {{ $t("applications.app_version") }}{{ applicationConfig.version }}
+                {{ $t("applications.app_update_version", { version: applicationConfig.version, name: applicationConfig.name }) }}
+              </b-tag>
+              <b-tag v-else-if="applicationVersion" size="is-large" style="margin: 5px" type="is-primary">
+                {{ $t("applications.app_version", { version: applicationVersion, name: applicationName }) }}
               </b-tag>
             </div>
           </div>
@@ -211,7 +214,10 @@ export default class ApplicationCreationView extends Vue {
         if (response.result.application.version !== this.applicationVersion && response.result.application.name === this.applicationName) {
           this.btnUpdateConfig = true;
         } else if(this.applicationConfig.version.toString() === this.applicationVersion && this.applicationConfig.name === this.applicationName) {
-          this.alertService.toastError(this.$t("alert.server-error-appli-exist", this.applicationName, this.applicationVersion));
+          this.alertService.toastError(this.$t("alert.server-error-appli-exist", {
+            name: this.applicationName,
+            version: this.applicationVersion
+          }));
         } else {
           this.alertService.toastSuccess(this.$t("alert.application-validate-success"));
         }
-- 
GitLab


From 12c038a59f5f7954d8c768915df8876591f60879 Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Fri, 13 Oct 2023 10:39:52 +0200
Subject: [PATCH 6/8] avec le titre c'est mieux

---
 ui/src/locales/en.json                               | 1 +
 ui/src/locales/fr.json                               | 1 +
 ui/src/views/application/ApplicationCreationView.vue | 3 ++-
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json
index b64a1f3e3..5f1454655 100644
--- a/ui/src/locales/en.json
+++ b/ui/src/locales/en.json
@@ -591,6 +591,7 @@
     "additionalFiles-authorizations": "Permissions for additional files",
     "aide": "Help writing an application's configuration file.",
     "application-creation": "Application creation",
+    "application-update": "Application update {name}",
     "applications-page": "My applications",
     "authorizations-management": "Authorizations management of applications",
     "data-type-authorizations": "Authorizations on data types.",
diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json
index 678647cbe..03f458fd9 100644
--- a/ui/src/locales/fr.json
+++ b/ui/src/locales/fr.json
@@ -591,6 +591,7 @@
     "additionalFiles-authorizations": "Autorisations des fichiers additionnels",
     "aide": "Aide à l'écriture du fichier de configuration d'une application.",
     "application-creation": "Créer une application",
+    "application-update": "Mise à jours de l'application {name}",
     "applications-page": "Mes applications",
     "authorizations-management": "Gestion des autorisations sur les applications",
     "data-type-authorizations": "Autorisations de {dataType}",
diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue
index e0e34c451..28fc2d2fb 100644
--- a/ui/src/views/application/ApplicationCreationView.vue
+++ b/ui/src/views/application/ApplicationCreationView.vue
@@ -1,7 +1,8 @@
 <template>
   <div>
     <PageView>
-      <h1 class="title main-title">{{ $t("titles.application-creation") }}</h1>
+      <h1 class="title main-title" v-if="applicationVersion" >{{ $t("titles.application-update", {name: applicationName}) }}</h1>
+      <h1 class="title main-title" v-else>{{ $t("titles.application-creation") }}</h1>
       <div>
         <ValidationObserver ref="observer" v-slot="{ handleSubmit }">
           <div class="columns">
-- 
GitLab


From e701d03d7211aeeca8910a3ab04832877b18e3f1 Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Mon, 16 Oct 2023 11:23:49 +0200
Subject: [PATCH 7/8] oublie d'une route

---
 ui/src/router/index.js | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/ui/src/router/index.js b/ui/src/router/index.js
index 1dbe4f223..959996037 100644
--- a/ui/src/router/index.js
+++ b/ui/src/router/index.js
@@ -52,11 +52,17 @@ const routes = [
     component: ApplicationsView,
   },
   {
-    path: "/applicationCreation/:applicationName/:applicationVersion",
+    path: "/applicationCreation",
     name: "Application creation",
     component: ApplicationCreationView,
     props: true,
   },
+  {
+    path: "/applicationCreation/:applicationName/:applicationVersion",
+    name: "Application update",
+    component: ApplicationCreationView,
+    props: true,
+  },
   {
     path: "/authorizationsManagementForApplicationCreator",
     name: "Authorizations application creation",
-- 
GitLab


From 425cc01bbd956d0a3427afc18f2ea332d38e2edc Mon Sep 17 00:00:00 2001
From: lucile varloteaux <lucile.varloteaux@inrae.fr>
Date: Mon, 16 Oct 2023 12:23:56 +0200
Subject: [PATCH 8/8] test_distant

---
 ui/src/views/application/ApplicationCreationView.vue | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue
index 28fc2d2fb..057f70260 100644
--- a/ui/src/views/application/ApplicationCreationView.vue
+++ b/ui/src/views/application/ApplicationCreationView.vue
@@ -160,7 +160,7 @@ import LoadingAnimate from "@/components/common/LoadingAnimate.vue";
 })
 export default class ApplicationCreationView extends Vue {
   @Prop() applicationName;
-  @Prop() applicationVersion;
+  @Prop({default: null}) applicationVersion;
   applicationService = ApplicationService.INSTANCE;
   errorsService = ErrorsService.INSTANCE;
   alertService = AlertService.INSTANCE;
-- 
GitLab