From 5bbee489169215c61d19d44912f8a8451be31052 Mon Sep 17 00:00:00 2001 From: TCHERNIATINSKY <philippe.tcherniatinsky@inrae.fr> Date: Thu, 21 Apr 2022 16:09:19 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Ajout=20du=20document=20aide=20=C3=A0=20la?= =?UTF-8?q?=20page=20applicationCreation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/.gitignore | 3 +- ui/package.json | 4 +- ui/src/locales/en.json | 1 + ui/src/locales/fr.json | 1 + ui/src/main.js | 4 +- ui/src/router/index.js | 8 +- .../application/ApplicationCreationView.vue | 6 +- ui/src/views/common/MenuView.vue | 2 +- ui/src/views/documentation/HelpView.vue | 88 +++++++++++++++++++ 9 files changed, 110 insertions(+), 7 deletions(-) create mode 100644 ui/src/views/documentation/HelpView.vue diff --git a/ui/.gitignore b/ui/.gitignore index 8e9c8df82..7bf753e0a 100644 --- a/ui/.gitignore +++ b/ui/.gitignore @@ -25,4 +25,5 @@ pnpm-debug.log* ui/cypress/integration/examples ui/cypress/videos ui/cypress/screenshots -ui/cypress/downloads \ No newline at end of file +ui/cypress/downloads +/public/files/ diff --git a/ui/package.json b/ui/package.json index bf80a685c..a4fecd19b 100644 --- a/ui/package.json +++ b/ui/package.json @@ -4,8 +4,8 @@ "private": true, "scripts": { "cypress:open": "cypress open", - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", + "serve": "mkdir -p public/files && cp ../Documentation_fichier_Yaml.pdf public/files/aide.pdf;vue-cli-service serve", + "build": "mkdir -p public/files && cp ../Documentation_fichier_Yaml.pdf public/files/aide.pdf;vue-cli-service build; ", "lint": "vue-cli-service lint", "i18n:report": "vue-cli-service i18n:report --src \"./src/**/*.?(js|vue)\" --locales \"./src/locales/**/*.json\"" }, diff --git a/ui/src/locales/en.json b/ui/src/locales/en.json index a108a680d..a9422e403 100644 --- a/ui/src/locales/en.json +++ b/ui/src/locales/en.json @@ -2,6 +2,7 @@ "titles":{ "login-page":"Welcome to SI-ORE", "applications-page":"My applications", + "aide":"Help writing an application's configuration file.", "references-page":"{applicationName} references", "references-data":"{refName} data", "application-creation":"Application creation", diff --git a/ui/src/locales/fr.json b/ui/src/locales/fr.json index 91942acb2..8def8733f 100644 --- a/ui/src/locales/fr.json +++ b/ui/src/locales/fr.json @@ -2,6 +2,7 @@ "titles": { "login-page": "Bienvenue sur SI-ORE", "applications-page": "Mes applications", + "aide": "Aide à l'écriture du fichier de configuration d'une application.", "references-page": "Référentiels de {applicationName}", "references-data": "Données de {refName}", "application-creation": "Créer une application", diff --git a/ui/src/main.js b/ui/src/main.js index 7bf9d25f8..084caee3a 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -8,6 +8,7 @@ import { faCircle, faCheck, faCheckCircle, + faQuestionCircle, faSquare, faMinusSquare, faCheckSquare, @@ -63,6 +64,7 @@ library.add( faEyeSlash, faPlus, faExclamationCircle, + faQuestionCircle, faCheck, faCheckCircle, faSquare, @@ -182,4 +184,4 @@ const app = new Vue({ i18n, render: (h) => h(App), }).$mount("#app"); -export default app; +export default app; \ No newline at end of file diff --git a/ui/src/router/index.js b/ui/src/router/index.js index aa40956e5..8d428d296 100644 --- a/ui/src/router/index.js +++ b/ui/src/router/index.js @@ -1,6 +1,7 @@ import Vue from "vue"; import VueRouter from "vue-router"; import LoginView from "@/views/LoginView.vue"; +import HelpView from "@/views/documentation/HelpView.vue"; import ApplicationsView from "@/views/application/ApplicationsView.vue"; import ApplicationCreationView from "@/views/application/ApplicationCreationView.vue"; import ReferencesManagementView from "@/views/references/ReferencesManagementView.vue"; @@ -18,6 +19,11 @@ const routes = [ path: "/", redirect: "/login", }, + { + path: "/help", + name: "help", + component: HelpView, + }, { path: "/login", name: "Login", @@ -77,4 +83,4 @@ const router = new VueRouter({ routes, }); -export default router; +export default router; \ No newline at end of file diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 00581b88d..560910578 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -70,6 +70,7 @@ <b-button type="is-primary" @click="handleSubmit(createApplication)" icon-left="plus"> {{ $t("applications.create") }} </b-button> + <b-button type="is-primary" @click="showHelp" icon-left="question-circle" /> </div> </ValidationObserver> <div v-if="errorsMessages.length"> @@ -133,6 +134,9 @@ export default class ApplicationCreationView extends Vue { this.checkMessageErrors(error); } } + showHelp(){ + this.$router.push("/help"); + } async testApplication() { this.errorsMessages = []; @@ -158,4 +162,4 @@ export default class ApplicationCreationView extends Vue { } } } -</script> +</script> \ No newline at end of file diff --git a/ui/src/views/common/MenuView.vue b/ui/src/views/common/MenuView.vue index a341304d4..500cb50bf 100644 --- a/ui/src/views/common/MenuView.vue +++ b/ui/src/views/common/MenuView.vue @@ -195,4 +195,4 @@ export default class MenuView extends Vue { fill: white; } } -</style> +</style> \ No newline at end of file diff --git a/ui/src/views/documentation/HelpView.vue b/ui/src/views/documentation/HelpView.vue new file mode 100644 index 000000000..b38cc2b9d --- /dev/null +++ b/ui/src/views/documentation/HelpView.vue @@ -0,0 +1,88 @@ +><template> + <PageView> + <h1 class="title main-title">{{ $t("titles.aide") }}</h1> + + <div class="columns columnPrincipale"> + <embed src="files/aide.pdf" width=800 height=500 type='application/pdf'/> + </div> + </PageView> +</template> + +<script> +import { Component, Vue } from "vue-property-decorator"; +import PageView from "@/views/common/PageView.vue"; + +@Component({ + components: { PageView }, +}) +export default class HelpView extends Vue { +} +</script> + +<style lang="scss" scoped> +// card & modal style +.columns { + flex-wrap: wrap; + margin: 0px; + width: 100%; + height: 100%; + + &.columnPrincipale { + margin-left: 50px; + margin-top: 50px; + } +} +.columns embed { + width: 100%; + height: 100%; +} + +.column { + display: grid; + + .comment { + display: flex; + align-items: center; + align-content: start; + } + .card { + &.applicationCard { + width: 300px; + + .card-footer { + border: none; + } + } + + .btnModal { + margin: 5px; + opacity: 50%; + color: $primary; + background-color: transparent; + } + + .card-footer-item { + border-right: none; + } + } +} + +.createApplication { + background-color: $dark; + color: white; +} + +.card-header-title { + &.title { + margin-top: 0; + text-transform: uppercase; + margin-bottom: 0px; + } +} + +.control.has-icons-left .icon, +.control.has-icons-right .icon { + top: 5px; + left: 5px; +} +</style> \ No newline at end of file -- GitLab From 880bb6b2d7c2e63406cba25a0e73a93801613536 Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 21 Apr 2022 17:50:49 +0200 Subject: [PATCH 2/3] bouton info --- ui/src/main.js | 4 +- .../application/ApplicationCreationView.vue | 92 ++++++++++--------- ui/src/views/documentation/HelpView.vue | 7 +- 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/ui/src/main.js b/ui/src/main.js index 084caee3a..5ac942815 100644 --- a/ui/src/main.js +++ b/ui/src/main.js @@ -56,6 +56,7 @@ import { faTimesCircle, faEdit, faInfo, + faQuestion, } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; library.add( @@ -110,7 +111,8 @@ library.add( faArchive, faTimesCircle, faEdit, - faInfo + faInfo, + faQuestion ); Vue.component("vue-fontawesome", FontAwesomeIcon); diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 560910578..979cc75b7 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -4,57 +4,64 @@ <h1 class="title main-title">{{ $t("titles.application-creation") }}</h1> <div> <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> - <ValidationProvider - rules="required|validApplicationName|validApplicationNameLength" - name="applicationsName" - v-slot="{ errors, valid }" - vid="applicationsName" - > - <b-field - class="input-field" - :type="{ - 'is-danger': errors && errors.length > 0, - 'is-success': valid, - }" - :message="errors[0]" + <div class="columns"> + <ValidationProvider + class="column" + rules="required" + name="applicationCreation" + v-slot="{ errors, valid }" + vid="applicationCreation" > - <template slot="label"> - {{ $t("applications.name") }} - <span class="mandatory"> - {{ $t("validation.obligatoire") }} - </span> - </template> - <b-input - v-model="applicationConfig.name" - :placeholder="$t('applications.name-placeholder')" - > - </b-input> - </b-field> - </ValidationProvider> - <ValidationProvider - rules="required" - name="applicationCreation" - v-slot="{ errors, valid }" - vid="applicationCreation" - > - <b-field - class="file is-primary" - :type="{ + <b-field + class="file is-primary" + :type="{ 'is-danger': errors && errors.length > 0, 'is-success': valid, }" - > - <b-upload v-model="applicationConfig.file" class="file-label" accept=".yaml, .zip"> - <span class="file-cta"> + > + <b-upload v-model="applicationConfig.file" class="file-label" accept=".yaml, .zip"> + <span> + <b-button size="is-small" type="is-primary" @click="showHelp" icon-left="question" outlined rounded/> + </span> + <span class="file-cta"> <b-icon class="file-icon" icon="upload"></b-icon> <span class="file-label">{{ $t("applications.chose-config") }}</span> </span> - <span class="file-name" v-if="applicationConfig.file"> + <span class="file-name" v-if="applicationConfig.file"> {{ applicationConfig.file.name }} </span> - </b-upload> - </b-field> - </ValidationProvider> + </b-upload> + </b-field> + </ValidationProvider> + <ValidationProvider + class="column" + rules="required|validApplicationName|validApplicationNameLength" + name="applicationsName" + v-slot="{ errors, valid }" + vid="applicationsName" + > + <b-field + class="input-field" + :type="{ + 'is-danger': errors && errors.length > 0, + 'is-success': valid, + }" + :message="errors[0]" + > + <template slot="label"> + {{ $t("applications.name") }} + <span class="mandatory"> + {{ $t("validation.obligatoire") }} + </span> + </template> + <b-input + v-model="applicationConfig.name" + :placeholder="$t('applications.name-placeholder')" + > + </b-input> + </b-field> + </ValidationProvider> + </div> <div class="columns"> <b-field class="column" :label="$t('dataTypesRepository.comment')" expanded> <b-input v-model="comment" maxlength="200" type="textarea"></b-input> @@ -70,7 +77,6 @@ <b-button type="is-primary" @click="handleSubmit(createApplication)" icon-left="plus"> {{ $t("applications.create") }} </b-button> - <b-button type="is-primary" @click="showHelp" icon-left="question-circle" /> </div> </ValidationObserver> <div v-if="errorsMessages.length"> diff --git a/ui/src/views/documentation/HelpView.vue b/ui/src/views/documentation/HelpView.vue index b38cc2b9d..739217be9 100644 --- a/ui/src/views/documentation/HelpView.vue +++ b/ui/src/views/documentation/HelpView.vue @@ -3,7 +3,7 @@ <h1 class="title main-title">{{ $t("titles.aide") }}</h1> <div class="columns columnPrincipale"> - <embed src="files/aide.pdf" width=800 height=500 type='application/pdf'/> + <embed class="column" src="files/aide.pdf" width=800 height=500 type='application/pdf'/> </div> </PageView> </template> @@ -26,11 +26,6 @@ export default class HelpView extends Vue { margin: 0px; width: 100%; height: 100%; - - &.columnPrincipale { - margin-left: 50px; - margin-top: 50px; - } } .columns embed { width: 100%; -- GitLab From 7f23d4594ff467ad787675b20a383f5e751c054a Mon Sep 17 00:00:00 2001 From: lucile varloteaux <lucile.varloteaux@inrae.fr> Date: Thu, 21 Apr 2022 18:09:44 +0200 Subject: [PATCH 3/3] en attente de la refonte du formulaire --- ui/src/views/application/ApplicationCreationView.vue | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ui/src/views/application/ApplicationCreationView.vue b/ui/src/views/application/ApplicationCreationView.vue index 979cc75b7..03e910b93 100644 --- a/ui/src/views/application/ApplicationCreationView.vue +++ b/ui/src/views/application/ApplicationCreationView.vue @@ -6,7 +6,7 @@ <ValidationObserver ref="observer" v-slot="{ handleSubmit }"> <div class="columns"> <ValidationProvider - class="column" + class="column is-3" rules="required" name="applicationCreation" v-slot="{ errors, valid }" @@ -20,9 +20,6 @@ }" > <b-upload v-model="applicationConfig.file" class="file-label" accept=".yaml, .zip"> - <span> - <b-button size="is-small" type="is-primary" @click="showHelp" icon-left="question" outlined rounded/> - </span> <span class="file-cta"> <b-icon class="file-icon" icon="upload"></b-icon> <span class="file-label">{{ $t("applications.chose-config") }}</span> @@ -33,6 +30,9 @@ </b-upload> </b-field> </ValidationProvider> + <div style="margin: 5px" class="column is-1"> + <b-button size="is-small" type="is-primary" @click="showHelp" icon-left="question" outlined rounded/> + </div> <ValidationProvider class="column" rules="required|validApplicationName|validApplicationNameLength" @@ -141,6 +141,7 @@ export default class ApplicationCreationView extends Vue { } } showHelp(){ + //window.open(this.$router.push("/help")); this.$router.push("/help"); } -- GitLab