From a0c51eae45f950a9fc811569e737f87c7f5a00db Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Tue, 10 Oct 2023 11:28:41 +0200 Subject: [PATCH 1/2] =?UTF-8?q?r=C3=A9paration=20fermeture=20modal=20mots?= =?UTF-8?q?=20de=20passe=20oublier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/components/login/PasswordLostModal.vue | 238 ++++++++---------- ui/src/components/login/Signin.vue | 118 +++++---- 2 files changed, 171 insertions(+), 185 deletions(-) diff --git a/ui/src/components/login/PasswordLostModal.vue b/ui/src/components/login/PasswordLostModal.vue index b2bf162cc..f1fabde30 100644 --- a/ui/src/components/login/PasswordLostModal.vue +++ b/ui/src/components/login/PasswordLostModal.vue @@ -1,5 +1,5 @@ <script> -import { computed, inject } from "vue"; +import { inject } from "vue"; import useNumber from "@/composable/components/number"; import useText from "@/composable/components/text"; import services from "@/composable/services"; @@ -10,10 +10,6 @@ import TextField from "@/components/forms/TextField.vue"; export default { emit: ["changeState"], props: { - isComponentModalActive: { - required: true, - type: Boolean, - }, signIn: { required: true, type: Function, @@ -28,14 +24,6 @@ export default { const email = inject("email"); const password = inject("password"); const verificationKey = inject("verificationKey"); - const isActive = computed({ - get() { - return props.isComponentModalActive; - }, - set(bool) { - this.$emit("changeState", bool); - }, - }); const testLostPassword = async function ( login, @@ -76,9 +64,6 @@ export default { email, password, activeStep, - - isActive, - testLostPassword, }; }, @@ -86,124 +71,111 @@ export default { </script> <template> - <b-modal - v-model="isActive" - :destroy-on-hide="false" - aria-label="Example Modal" - aria-modal - aria-role="dialog" - close-button-aria-label="Close" - has-modal-card - trap-focus - > - <template> - <div class="card"> - <div class="card-content"> - <ValidationObserver ref="observer"> - <b-steps - v-model="activeStep" - :animated="true" - :has-navigation="true" - :rounded="true" - label-position="bottom" - > - <b-step-item :clickable="false" :label="$t('login.profil')" step="1"> - <h1 class="titleModal has-text-centered"> - {{ $t("login.lost-pwd.title-step-1") }} - </h1> - <TextField - v-model="login" - rules="min:4" - label="login.login" - name="missing-password.login" - place-holder="login.login-placeholder" - :mandatory="true" - @update:value="login = $event" - /> - <TextField - v-model="email" - rules="email" - label="login.email" - name="missing-password.email" - place-holder="login.email-placeholder" - :mandatory="true" - @update:value="email = $event" - /> - </b-step-item> + <div class="card"> + <div class="card-content"> + <ValidationObserver ref="observer"> + <b-steps + v-model="activeStep" + :animated="true" + :has-navigation="true" + :rounded="true" + label-position="bottom" + > + <b-step-item :clickable="false" :label="$t('login.profil')" step="1"> + <h1 class="titleModal has-text-centered"> + {{ $t("login.lost-pwd.title-step-1") }} + </h1> + <TextField + v-model="login" + rules="min:4" + label="login.login" + name="missing-password.login" + place-holder="login.login-placeholder" + :mandatory="true" + @update:value="login = $event" + /> + <TextField + v-model="email" + rules="email" + label="login.email" + name="missing-password.email" + place-holder="login.email-placeholder" + :mandatory="true" + @update:value="email = $event" + /> + </b-step-item> - <b-step-item :clickable="false" :label="$t('login.pwd')" step="2"> - <h1 class="titleModal has-text-centered"> - {{ $t("login.lost-pwd.title-step-2") }} - </h1> - <b-notification - v-if="email" - :aria-close-label="$t('message.close')" - type="is-info is-light" - > - <span v-html="$t('login.info-mail-validate-key', { email })" class="column" /> - </b-notification> - <TextField - v-model="verificationKey" - rules="length:10" - label="login.lost-pwd.temporary-pwd" - name="missing-password.verificationKey" - place-holder="login.verificationKey-placeholder" - :mandatory="true" - @update:value="verificationKey = $event" - /> - <TextField - v-model="newPassword" - type="password" - label="login.lost-pwd.new-pwd" - name="missing-password.new-pwd" - place-holder="login.pwd-placeholder" - :mandatory="true" - @update:value="newPassword = $event" - /> - <TextField - :disabled="newPassword === null" - v-model="newPasswordConfirm" - rules="confirmed:missing-password.new-pwd" - type="password" - label="login.lost-pwd.new-pwd-confirm" - name="missing-password.new-pwd-confirm" - place-holder="login.pwd-placeholder" - :mandatory="true" - @update:value="newPasswordConfirm = $event" - /> - </b-step-item> - <template #navigation="{ previous, next }"> - <b-button - aria-description="missing-password.toSecondStep" - :disabled="previous.disabled" - icon-right="chevron-left" - outlined - @click.prevent="previous.action" - > - </b-button> - <b-button - :disabled=" - activeStep === 1 - ? verificationKey === '' && newPassword === '' && newPasswordConfirm === '' - : login === '' || email === '' - " - icon-right="chevron-right" - outlined - type="is-primary" - @click=" - testLostPassword(login, email, verificationKey, newPassword, newPasswordConfirm) - " - @click.prevent="next.action" - > - {{ activeStep === 1 ? $t("login.finish-step") : $t("login.next-step") }} - </b-button> - </template> - </b-steps> - </ValidationObserver> - </div> - </div> - </template> - </b-modal> + <b-step-item :clickable="false" :label="$t('login.pwd')" step="2"> + <h1 class="titleModal has-text-centered"> + {{ $t("login.lost-pwd.title-step-2") }} + </h1> + <b-notification + v-if="email" + :aria-close-label="$t('message.close')" + type="is-info is-light" + > + <span v-html="$t('login.info-mail-validate-key', { email })" class="column" /> + </b-notification> + <TextField + v-model="verificationKey" + rules="length:10" + label="login.lost-pwd.temporary-pwd" + name="missing-password.verificationKey" + place-holder="login.verificationKey-placeholder" + :mandatory="true" + @update:value="verificationKey = $event" + /> + <TextField + v-model="newPassword" + type="password" + label="login.lost-pwd.new-pwd" + name="missing-password.new-pwd" + place-holder="login.pwd-placeholder" + :mandatory="true" + @update:value="newPassword = $event" + /> + <TextField + :disabled="newPassword === null" + v-model="newPasswordConfirm" + rules="confirmed:missing-password.new-pwd" + type="password" + label="login.lost-pwd.new-pwd-confirm" + name="missing-password.new-pwd-confirm" + place-holder="login.pwd-placeholder" + :mandatory="true" + @update:value="newPasswordConfirm = $event" + /> + </b-step-item> + <template #navigation="{ previous, next }"> + <b-button + aria-description="missing-password.toSecondStep" + :disabled="previous.disabled" + icon-right="chevron-left" + outlined + @click.prevent="previous.action" + > + </b-button> + <b-button + :disabled=" + activeStep === 1 + ? verificationKey === '' && newPassword === '' && newPasswordConfirm === '' + : login === '' || email === '' + " + icon-right="chevron-right" + outlined + type="is-primary" + @click=" + testLostPassword(login, email, verificationKey, newPassword, newPasswordConfirm) + " + @click.prevent="next.action" + > + {{ activeStep === 1 ? $t("login.finish-step") : $t("login.next-step") }} + </b-button> + </template> + </b-steps> + </ValidationObserver> + </div> + </div> </template> <style scoped lang="scss"></style> diff --git a/ui/src/components/login/Signin.vue b/ui/src/components/login/Signin.vue index 0080c3fef..5a421228a 100644 --- a/ui/src/components/login/Signin.vue +++ b/ui/src/components/login/Signin.vue @@ -4,55 +4,55 @@ <div v-if="errorsMessages.length" style="margin: 10px"> <div v-for="msg in errorsMessages" :key="msg"> <b-message - :aria-close-label="$t('message.close')" - :title="$t('message.login-warning')" - has-icon - type="is-danger" + :aria-close-label="$t('message.close')" + :title="$t('message.login-warning')" + has-icon + type="is-danger" > - <span v-html="msg" /> + <span v-html="msg"/> </b-message> </div> </div> <TextField - v-model:value="login" - rules="min:4" - label="login.login" - name="login.login" - place-holder="login.login-placeholder" - :mandatory="true" - @update:value="login = $event" + v-model:value="login" + :mandatory="true" + label="login.login" + name="login.login" + place-holder="login.login-placeholder" + rules="min:4" + @update:value="login = $event" /> <TextField - v-model:value="password" - type="password" - label="login.pwd" - name="password" - place-holder="login.pwd-placeholder" - :mandatory="true" - @update:value="password = $event" + v-model:value="password" + :mandatory="true" + label="login.pwd" + name="password" + place-holder="login.pwd-placeholder" + type="password" + @update:value="password = $event" /> <div v-if="warningMessages.length && password" style="margin: 10px"> <div v-for="msg in warningMessages" :key="msg"> <b-message - :aria-close-label="$t('message.close')" - :title="$t('message.login-warning')" - has-icon - icon="exclamation-triangle" - type="is-warning" + :aria-close-label="$t('message.close')" + :title="$t('message.login-warning')" + has-icon + icon="exclamation-triangle" + type="is-warning" > - <span class="column" v-html="msg" /> + <span class="column" v-html="msg"/> </b-message> </div> </div> <TextField - v-if="verificationKeyVisible" - rules="length:10" - v-model:value="verificationKey" - label="login.verificationKey" - name="verificationKey" - place-holder="login.verificationKey-placeholder" - :mandatory="true" - @update:value=" + v-if="verificationKeyVisible" + v-model:value="verificationKey" + :mandatory="true" + label="login.verificationKey" + name="verificationKey" + place-holder="login.verificationKey-placeholder" + rules="length:10" + @update:value=" verificationKey = $event; activateLogin(); " @@ -61,44 +61,58 @@ <div class="buttons"> <b-button - aria-description="login.signIn" - :aria-label="$t('login.aria-btn-login')" - icon-left="sign-in-alt" - type="is-primary" - @click="handleSubmit(signIn)" + :aria-label="$t('login.aria-btn-login')" + aria-description="login.signIn" + icon-left="sign-in-alt" + type="is-primary" + @click="handleSubmit(signIn)" > {{ $t("login.signin") }} </b-button> <b-button - aria-description="login.pwd-forgotten" - :label="$t('login.pwd-forgotten')" - outlined - type="is-warning" - @click="isComponentModalActive = true" + :label="$t('login.pwd-forgotten')" + aria-description="login.pwd-forgotten" + outlined + type="is-warning" + @click="isComponentModalActive = true" /> - <PasswordLostModal :isComponentModalActive="isComponentModalActive" :sign-in="signIn" /> + + <b-modal + v-model="isComponentModalActive" + :destroy-on-hide="false" + aria-label="Example Modal" + aria-modal + aria-role="dialog" + close-button-aria-label="Close" + has-modal-card + trap-focus + > + <template> + <PasswordLostModal :sign-in="signIn"/> + </template> + </b-modal> </div> </ValidationObserver> </template> <script> import services from "@/composable/services"; -import { HttpStatusCodes } from "@/utils/HttpUtils"; -import { inject, provide } from "vue"; +import {HttpStatusCodes} from "@/utils/HttpUtils"; +import {inject, provide} from "vue"; import useBoolean from "@/composable/components/boolean"; import useText from "@/composable/components/text"; import useArray from "@/composable/components/array"; -import { ValidationObserver } from "vee-validate"; +import {ValidationObserver} from "vee-validate"; import TextField from "@/components/forms/TextField.vue"; import PasswordLostModal from "@/components/login/PasswordLostModal.vue"; -import { i18n } from "@/main"; +import {i18n} from "@/main"; export default { name: "SigIn", - components: { PasswordLostModal, TextField, ValidationObserver }, + components: {PasswordLostModal, TextField, ValidationObserver}, setup() { - const { refBoolean: verificationKeyVisible } = useBoolean(); - const { refBoolean: isComponentModalActive } = useBoolean(); + const {refBoolean: verificationKeyVisible} = useBoolean(); + const {refBoolean: isComponentModalActive} = useBoolean(); const login = inject("login"); const verificationKey = useText().refText; @@ -110,7 +124,7 @@ export default { provide("verificationKey", verificationKey); const paymentRequired = function (m) { warningMessages.value.push( - services.errorsService.getErrorsLoginMessages(m.message, m.params) + services.errorsService.getErrorsLoginMessages(m.message, m.params) ); //services.loginService.modifAcount(m.params); }; -- GitLab From bd80b286ecd53450c0cf3286873a12cf75a9cbdf Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Tue, 10 Oct 2023 11:29:05 +0200 Subject: [PATCH 2/2] =?UTF-8?q?r=C3=A9parations=20de=20changement=20de=20p?= =?UTF-8?q?age=20oubli=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/src/composable/applications/useFunction.js | 8 ++++---- ui/src/views/references/ReferencesManagementView.vue | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/src/composable/applications/useFunction.js b/ui/src/composable/applications/useFunction.js index 86b5a2c92..7e6943992 100644 --- a/ui/src/composable/applications/useFunction.js +++ b/ui/src/composable/applications/useFunction.js @@ -86,9 +86,9 @@ export function useRedirections(application = { authorizations: [] }) { /* restricted */ - function showReferenceRights() { + function showReferenceRights(applicationName) { if (isCharteSigned(application)) { - app.$router.push("/applications/" + application.name + "/references/authorizations"); + app.$router.push("/applications/" + applicationName + "/references/authorizations"); return false; } else { return downloadCharteApplication(application.id); @@ -105,9 +105,9 @@ export function useRedirections(application = { authorizations: [] }) { } } - function showDataRights() { + function showDataRights(applicationName) { if (isCharteSigned(application)) { - app.$router.push("/applications/" + application.name + "/authorizations"); + app.$router.push("/applications/" + applicationName + "/authorizations"); return false; } else { return downloadCharteApplication(application.id); diff --git a/ui/src/views/references/ReferencesManagementView.vue b/ui/src/views/references/ReferencesManagementView.vue index 3e1b41289..d82819210 100644 --- a/ui/src/views/references/ReferencesManagementView.vue +++ b/ui/src/views/references/ReferencesManagementView.vue @@ -55,7 +55,7 @@ > </CollapsibleTree> <DetailsPanel - :application-name="application.name" + :application-name="applicationName" :close-cb="(newVal) => (openPanel = newVal)" :left-align="false" :open="openPanel" -- GitLab