fcad-core-dragon 2.1.1 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +7 -7
- package/.gitlab-ci.yml +124 -0
- package/.prettierrc +11 -11
- package/.vscode/extensions.json +8 -8
- package/.vscode/settings.json +46 -16
- package/CHANGELOG +520 -520
- package/README.md +57 -57
- package/documentation/.vitepress/config.js +114 -114
- package/documentation/api-examples.md +49 -49
- package/documentation/composants/app-base-button.md +58 -58
- package/documentation/composants/app-base-error-display.md +59 -59
- package/documentation/composants/app-base-popover.md +68 -68
- package/documentation/composants/app-comp-audio.md +75 -75
- package/documentation/composants/app-comp-branch-buttons.md +111 -111
- package/documentation/composants/app-comp-button-progress.md +53 -53
- package/documentation/composants/app-comp-carousel.md +53 -53
- package/documentation/composants/app-comp-container.md +53 -53
- package/documentation/composants/app-comp-input-checkbox-next.md +42 -42
- package/documentation/composants/app-comp-input-dropdown-next.md +34 -34
- package/documentation/composants/app-comp-input-radio-next.md +39 -39
- package/documentation/composants/app-comp-input-text-next.md +35 -35
- package/documentation/composants/app-comp-input-text-table-next.md +34 -34
- package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -53
- package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -31
- package/documentation/composants/app-comp-jauge.md +31 -31
- package/documentation/composants/app-comp-menu-item.md +55 -55
- package/documentation/composants/app-comp-menu.md +29 -29
- package/documentation/composants/app-comp-navigation.md +41 -41
- package/documentation/composants/app-comp-note-call.md +53 -53
- package/documentation/composants/app-comp-note-credit.md +53 -53
- package/documentation/composants/app-comp-play-bar-next.md +53 -53
- package/documentation/composants/app-comp-pop-up-next.md +93 -93
- package/documentation/composants/app-comp-quiz-next.md +235 -235
- package/documentation/composants/app-comp-quiz-recall.md +53 -53
- package/documentation/composants/app-comp-svg-next.md +53 -53
- package/documentation/composants/app-comp-table-of-content.md +50 -50
- package/documentation/composants/app-comp-video-player.md +82 -82
- package/documentation/composants.md +46 -46
- package/documentation/composants_critiques/ModelPageComposant.md +53 -53
- package/documentation/composants_critiques/app-base-module.md +43 -43
- package/documentation/composants_critiques/app-base-page.md +48 -48
- package/documentation/composants_critiques/app-base.md +311 -311
- package/documentation/composants_critiques/main.md +15 -15
- package/documentation/demarrage.md +50 -50
- package/documentation/deploiement.md +57 -57
- package/documentation/index.md +33 -33
- package/documentation/markdown-examples.md +85 -85
- package/documentation/public/vite.svg +14 -14
- package/documentation/public/vuejs.svg +1 -1
- package/documentation/public/vuetify.svg +5 -5
- package/eslint.config.js +60 -60
- package/junit-report.xml +182 -0
- package/package.json +66 -59
- package/playwright/index.html +12 -0
- package/playwright/index.js +21 -0
- package/playwright-ct.config.js +95 -0
- package/src/$locales/en.json +157 -157
- package/src/$locales/fr.json +120 -120
- package/src/assets/data/onboardingMessages.json +47 -47
- package/src/components/AppBase.vue +1171 -1169
- package/src/components/AppBaseButton.vue +90 -95
- package/src/components/AppBaseErrorDisplay.vue +438 -438
- package/src/components/AppBaseFlipCard.vue +84 -84
- package/src/components/AppBaseModule.vue +1639 -1634
- package/src/components/AppBasePage.vue +867 -866
- package/src/components/AppBasePopover.vue +41 -41
- package/src/components/AppBaseSkeleton.vue +66 -66
- package/src/components/AppCompAudio.vue +261 -256
- package/src/components/AppCompBranchButtons.vue +508 -508
- package/src/components/AppCompButtonProgress.vue +137 -132
- package/src/components/AppCompCarousel.vue +342 -336
- package/src/components/AppCompContainer.vue +29 -29
- package/src/components/AppCompInputCheckBoxNx.vue +325 -323
- package/src/components/AppCompInputDropdownNx.vue +302 -299
- package/src/components/AppCompInputRadioNx.vue +287 -284
- package/src/components/AppCompInputTextNx.vue +156 -153
- package/src/components/AppCompInputTextTableNx.vue +205 -202
- package/src/components/AppCompInputTextToFillDropdownNx.vue +343 -340
- package/src/components/AppCompInputTextToFillNx.vue +316 -313
- package/src/components/AppCompJauge.vue +81 -81
- package/src/components/AppCompMenu.vue +6 -1
- package/src/components/AppCompMenuItem.vue +246 -240
- package/src/components/AppCompNavigation.vue +977 -972
- package/src/components/AppCompNoteCall.vue +167 -161
- package/src/components/AppCompNoteCredit.vue +496 -491
- package/src/components/AppCompPlayBarNext.vue +2290 -2288
- package/src/components/AppCompPopUpNext.vue +508 -504
- package/src/components/AppCompQuizNext.vue +515 -510
- package/src/components/AppCompQuizRecall.vue +355 -350
- package/src/components/AppCompSVGNext.vue +346 -346
- package/src/components/AppCompSettingsMenu.vue +177 -172
- package/src/components/AppCompTableOfContent.vue +433 -427
- package/src/components/AppCompVideoPlayer.vue +377 -377
- package/src/components/AppCompViewDisplay.vue +6 -6
- package/src/components/BaseModule.vue +55 -55
- package/src/composables/useIdleDetector.js +56 -56
- package/src/composables/useQuiz.js +89 -89
- package/src/composables/useTimer.js +172 -172
- package/src/directives/nvdaFix.js +53 -53
- package/src/externalComps/ModuleView.vue +22 -22
- package/src/externalComps/SummaryView.vue +91 -91
- package/src/main.js +493 -476
- package/src/module/stores/appStore.js +960 -947
- package/src/module/xapi/ADL.js +520 -520
- package/src/module/xapi/Crypto/Hasher.js +241 -241
- package/src/module/xapi/Crypto/WordArray.js +278 -278
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +103 -103
- package/src/module/xapi/Crypto/algorithms/C_algo.js +315 -315
- package/src/module/xapi/Crypto/algorithms/HMAC.js +9 -9
- package/src/module/xapi/Crypto/algorithms/SHA1.js +9 -9
- package/src/module/xapi/Crypto/encoders/Base.js +105 -105
- package/src/module/xapi/Crypto/encoders/Base64.js +99 -99
- package/src/module/xapi/Crypto/encoders/Hex.js +61 -61
- package/src/module/xapi/Crypto/encoders/Latin1.js +61 -61
- package/src/module/xapi/Crypto/encoders/Utf8.js +45 -45
- package/src/module/xapi/Crypto/index.js +53 -53
- package/src/module/xapi/Statement/activity.js +47 -47
- package/src/module/xapi/Statement/agent.js +55 -55
- package/src/module/xapi/Statement/group.js +26 -26
- package/src/module/xapi/Statement/index.js +259 -259
- package/src/module/xapi/Statement/statement.js +253 -253
- package/src/module/xapi/Statement/statementRef.js +23 -23
- package/src/module/xapi/Statement/substatement.js +22 -22
- package/src/module/xapi/Statement/verb.js +36 -36
- package/src/module/xapi/activitytypes.js +17 -17
- package/src/module/xapi/launch.js +157 -157
- package/src/module/xapi/utils.js +167 -167
- package/src/module/xapi/verbs.js +294 -294
- package/src/module/xapi/wrapper.js +1895 -1895
- package/src/module/xapi/xapiStatement.js +444 -444
- package/src/plugins/analytics.js +34 -34
- package/src/plugins/bus.js +12 -8
- package/src/plugins/gsap.js +17 -17
- package/src/plugins/helper.js +355 -358
- package/src/plugins/i18n.js +27 -26
- package/src/plugins/idb.js +227 -227
- package/src/plugins/save.js +37 -37
- package/src/plugins/scorm.js +287 -287
- package/src/plugins/xapi.js +11 -11
- package/src/public/index.html +33 -33
- package/src/router/index.js +57 -57
- package/src/router/routes.js +312 -312
- package/src/shared/generalfuncs.js +344 -344
- package/src/shared/validators.js +1018 -1018
- package/tests/component/AppBaseButton.spec.js +53 -0
- package/tests/component/pinia.spec.js +24 -0
- package/{src/components/tests__ → tests/unit}/AppBaseButton.spec.js +53 -53
- package/tests/unit/AppCompInputCheckBoxNx.spec.js +59 -0
- package/tests/unit/AppCompInputDropdownNx.spec.js +51 -0
- package/tests/unit/AppCompInputRadioNx.spec.js +59 -0
- package/tests/unit/AppCompInputTextNx.spec.js +44 -0
- package/tests/unit/AppCompInputTextTableNx.spec.js +77 -0
- package/tests/unit/AppCompInputTextToFillDropdownNx.spec.js +60 -0
- package/tests/unit/AppCompInputTextToFillNx.spec.js +45 -0
- package/tests/unit/AppCompQuizNext.spec.js +114 -0
- package/tests/unit/AppCompVideoPlayer.spec.js +177 -0
- package/{src/components/tests__ → tests/unit}/useTimer.spec.js +91 -91
- package/vitest.config.js +28 -19
- package/vitest.setup.js +28 -0
- package/src/components/AppBaseButton.test.js +0 -21
|
@@ -1,438 +1,438 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@ Description: This component is used to display error message in the application
|
|
3
|
-
|
|
4
|
-
-->
|
|
5
|
-
|
|
6
|
-
<template>
|
|
7
|
-
<div>
|
|
8
|
-
<!------------------------ ERRORS APPLICATION ------------------->
|
|
9
|
-
<div v-if="errorGroup === 'application'" class="fd_Error-type">
|
|
10
|
-
<div class="box-error">
|
|
11
|
-
<!--------------------------- Module --------------------->
|
|
12
|
-
<template v-if="errorType === 'errorModule'">
|
|
13
|
-
<div class="red-box">
|
|
14
|
-
<div class="box">
|
|
15
|
-
<h2>
|
|
16
|
-
Cette page est affichée parce que le fichier ModuleView n'existe
|
|
17
|
-
pas où est mal configuré
|
|
18
|
-
</h2>
|
|
19
|
-
|
|
20
|
-
<p>Pour la vue du Module</p>
|
|
21
|
-
<ol type="number">
|
|
22
|
-
<li>
|
|
23
|
-
Créez un fichier
|
|
24
|
-
<i>.vue</i>
|
|
25
|
-
avec pour nom
|
|
26
|
-
<strong>ModuleView.vue</strong>
|
|
27
|
-
dans le dossier
|
|
28
|
-
<strong>views</strong>
|
|
29
|
-
</li>
|
|
30
|
-
|
|
31
|
-
<li>
|
|
32
|
-
Referez-vous wnauirw à la documentation pour la création et la
|
|
33
|
-
configuration de la vue du Module
|
|
34
|
-
</li>
|
|
35
|
-
</ol>
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
<div class="box">
|
|
39
|
-
<p class="doc">
|
|
40
|
-
Visitez
|
|
41
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
42
|
-
pour plus de details ...
|
|
43
|
-
</p>
|
|
44
|
-
</div>
|
|
45
|
-
</template>
|
|
46
|
-
<!---------------------------- Menu ---------------------->
|
|
47
|
-
<template v-if="errorType === 'errorMenu'">
|
|
48
|
-
<div class="red-box">
|
|
49
|
-
<div class="box">
|
|
50
|
-
<h2>
|
|
51
|
-
Cette page est affichée parce que le fichier SummaryView
|
|
52
|
-
n'existe pas où est mal configuré
|
|
53
|
-
</h2>
|
|
54
|
-
|
|
55
|
-
<p>Pour la vue du Sommaire (page de MENU)</p>
|
|
56
|
-
<ol type="number">
|
|
57
|
-
<li>
|
|
58
|
-
Créez un fichier
|
|
59
|
-
<i>.vue</i>
|
|
60
|
-
avec pour nom
|
|
61
|
-
<strong>SummaryView.vue</strong>
|
|
62
|
-
dans le dossier
|
|
63
|
-
<strong>views</strong>
|
|
64
|
-
</li>
|
|
65
|
-
<li>
|
|
66
|
-
Referez-vous ensuite à la documentation pour la création et la
|
|
67
|
-
configuration de la vue du sommaire
|
|
68
|
-
</li>
|
|
69
|
-
</ol>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
<div class="box">
|
|
73
|
-
<p class="doc">
|
|
74
|
-
Visitez
|
|
75
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
76
|
-
pour plus de details ...
|
|
77
|
-
</p>
|
|
78
|
-
</div>
|
|
79
|
-
</template>
|
|
80
|
-
<!---------------------------- Page ---------------------->
|
|
81
|
-
<template v-if="errorType === 'errorPage'">
|
|
82
|
-
<div class="red-box">
|
|
83
|
-
<div class="box">
|
|
84
|
-
<h2>
|
|
85
|
-
Cette page est affichée parce que vous n'avez pas encore de page
|
|
86
|
-
d'activité pour votre module.
|
|
87
|
-
</h2>
|
|
88
|
-
|
|
89
|
-
<p>Pour créer une page</p>
|
|
90
|
-
<ol type="number">
|
|
91
|
-
<li>
|
|
92
|
-
Ajoutez un dossier pour votre activité avec un nom de type
|
|
93
|
-
<strong>Axx</strong>
|
|
94
|
-
dans le dossier
|
|
95
|
-
<strong>module</strong>
|
|
96
|
-
<i>( exemple A00 )</i>
|
|
97
|
-
</li>
|
|
98
|
-
<li>
|
|
99
|
-
Ajoutez un fichier pour votre page avec un nom de type
|
|
100
|
-
<strong>Pxx.vue</strong>
|
|
101
|
-
dans le dossier
|
|
102
|
-
<strong>Axx</strong>
|
|
103
|
-
<i>( exemple P01.vue )</i>
|
|
104
|
-
</li>
|
|
105
|
-
<li>
|
|
106
|
-
Definissez le
|
|
107
|
-
<strong>$data</strong>
|
|
108
|
-
de la page
|
|
109
|
-
</li>
|
|
110
|
-
</ol>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="box">
|
|
114
|
-
<p class="doc">
|
|
115
|
-
Visitez
|
|
116
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
117
|
-
pour plus de details ...
|
|
118
|
-
</p>
|
|
119
|
-
</div>
|
|
120
|
-
</template>
|
|
121
|
-
<!----------------------- Branching ---------------------->
|
|
122
|
-
<template v-if="errorType === 'errorMenuBranching'">
|
|
123
|
-
<div class="red-box">
|
|
124
|
-
<div class="box">
|
|
125
|
-
<h2>Erreur d'embranchement.</h2>
|
|
126
|
-
|
|
127
|
-
<p>
|
|
128
|
-
Vous ne pouvez pas avoir de pages d'embranchement(s) dans le
|
|
129
|
-
dossier A00
|
|
130
|
-
</p>
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
<div class="box">
|
|
134
|
-
<p class="doc">
|
|
135
|
-
Visitez
|
|
136
|
-
<a
|
|
137
|
-
:href="`https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`"
|
|
138
|
-
target="blank"
|
|
139
|
-
>
|
|
140
|
-
la documentation
|
|
141
|
-
</a>
|
|
142
|
-
pour plus de details ...
|
|
143
|
-
</p>
|
|
144
|
-
</div>
|
|
145
|
-
</template>
|
|
146
|
-
<!------------------------- 404 -------------------------->
|
|
147
|
-
<template v-if="errorType === '404'">
|
|
148
|
-
<div class="red-box">
|
|
149
|
-
<div class="box">
|
|
150
|
-
<h2>404 OOPSSS!</h2>
|
|
151
|
-
<p>Il semble que la page que vous cherchez n'existe pas.</p>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
<div class="box">
|
|
155
|
-
<p class="doc">
|
|
156
|
-
Retrourner à la
|
|
157
|
-
<router-link :to="{ name: 'menu' }">page d'accueil</router-link>
|
|
158
|
-
</p>
|
|
159
|
-
</div>
|
|
160
|
-
</template>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
<!------------------- END ERRORS COMPONENTS -------------------->
|
|
164
|
-
<v-row v-if="errorGroup === 'component'" class="warning-error">
|
|
165
|
-
<v-col class="box-error">
|
|
166
|
-
<div class="yellow-box">
|
|
167
|
-
<h2>
|
|
168
|
-
{{ errorTitle || 'Attention erreur dans le composant' }}
|
|
169
|
-
</h2>
|
|
170
|
-
<p>{{ errorText }}</p>
|
|
171
|
-
<br />
|
|
172
|
-
<p>Veuillez corriger:</p>
|
|
173
|
-
<template
|
|
174
|
-
v-if="
|
|
175
|
-
errorsList.constructor == Array ||
|
|
176
|
-
errorsList.constructor == Object
|
|
177
|
-
"
|
|
178
|
-
>
|
|
179
|
-
<ul>
|
|
180
|
-
<li
|
|
181
|
-
v-for="err in errorsList"
|
|
182
|
-
:key="`error_type_${err}`"
|
|
183
|
-
v-html="err"
|
|
184
|
-
></li>
|
|
185
|
-
</ul>
|
|
186
|
-
</template>
|
|
187
|
-
<template v-if="errorsList.constructor == String">
|
|
188
|
-
<ul>
|
|
189
|
-
<li v-html="errorsList"></li>
|
|
190
|
-
</ul>
|
|
191
|
-
</template>
|
|
192
|
-
</div>
|
|
193
|
-
<div class="box">
|
|
194
|
-
<p class="doc">
|
|
195
|
-
Visitez
|
|
196
|
-
<a href="https://fcaddocumentation.netlify.app/" target="blank">
|
|
197
|
-
la documentation
|
|
198
|
-
</a>
|
|
199
|
-
pour plus de details
|
|
200
|
-
</p>
|
|
201
|
-
</div>
|
|
202
|
-
</v-col>
|
|
203
|
-
</v-row>
|
|
204
|
-
|
|
205
|
-
<!---------------------- END ERRORS COMPONENTS ------------------->
|
|
206
|
-
</div>
|
|
207
|
-
</template>
|
|
208
|
-
|
|
209
|
-
<script>
|
|
210
|
-
export default {
|
|
211
|
-
name: 'AppBaseErrorDisplay',
|
|
212
|
-
props: {
|
|
213
|
-
errorGroup: { type: String, default: 'application' }, //group can be: application or component
|
|
214
|
-
errorType: { type: String, note: 'Error Message', default: '' },
|
|
215
|
-
errorTitle: {
|
|
216
|
-
type: String,
|
|
217
|
-
note: 'Title to display for the error',
|
|
218
|
-
default: ''
|
|
219
|
-
},
|
|
220
|
-
errorText: {
|
|
221
|
-
type: String,
|
|
222
|
-
note: 'text to display for the error',
|
|
223
|
-
default:
|
|
224
|
-
'Vous avez une/des erreure(s) qui empêche(ent) le bon rendu du composant'
|
|
225
|
-
},
|
|
226
|
-
errorsList: { type: Array, default: () => [] },
|
|
227
|
-
docLink: {
|
|
228
|
-
type: String,
|
|
229
|
-
default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
|
|
230
|
-
note: 'Documentation link'
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
</script>
|
|
235
|
-
|
|
236
|
-
<style lang="scss">
|
|
237
|
-
//**** DO NOT TOUCHE ****/
|
|
238
|
-
//**** ERROR ****/
|
|
239
|
-
.fd_Error-type {
|
|
240
|
-
display: flex;
|
|
241
|
-
flex-direction: row;
|
|
242
|
-
flex-wrap: wrap;
|
|
243
|
-
justify-content: center;
|
|
244
|
-
margin-top: 20%;
|
|
245
|
-
padding-bottom: 30px;
|
|
246
|
-
background-color: white;
|
|
247
|
-
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
248
|
-
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
249
|
-
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
250
|
-
|
|
251
|
-
.box-error {
|
|
252
|
-
width: 100%;
|
|
253
|
-
|
|
254
|
-
.red-box {
|
|
255
|
-
background: #cd5356;
|
|
256
|
-
padding-top: 50px;
|
|
257
|
-
padding-bottom: 20px;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
.box {
|
|
261
|
-
width: 60%;
|
|
262
|
-
margin: 0 auto;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
h2 {
|
|
266
|
-
display: inline-block;
|
|
267
|
-
color: white;
|
|
268
|
-
margin-left: 10%;
|
|
269
|
-
padding-bottom: 20px;
|
|
270
|
-
border-bottom: 0.5px solid white;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
p {
|
|
274
|
-
color: white;
|
|
275
|
-
margin-left: 10%;
|
|
276
|
-
font-size: 1.5rem;
|
|
277
|
-
|
|
278
|
-
&.doc {
|
|
279
|
-
padding-top: 20px;
|
|
280
|
-
color: #404040;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
ol {
|
|
285
|
-
color: #fff;
|
|
286
|
-
margin-left: 10%;
|
|
287
|
-
font-size: 1.3rem;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
a {
|
|
291
|
-
color: #cd5357;
|
|
292
|
-
|
|
293
|
-
&:hover {
|
|
294
|
-
color: #404040;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
//**** WARNING ****/
|
|
301
|
-
.warning {
|
|
302
|
-
background: #f5d41b;
|
|
303
|
-
padding: 20px 15px;
|
|
304
|
-
|
|
305
|
-
.title {
|
|
306
|
-
font-weight: 900;
|
|
307
|
-
font-size: 1.25rem;
|
|
308
|
-
text-transform: uppercase;
|
|
309
|
-
color: #292929;
|
|
310
|
-
padding-bottom: 20px;
|
|
311
|
-
border-bottom: 0.5px solid #292929;
|
|
312
|
-
|
|
313
|
-
.iL {
|
|
314
|
-
margin-right: 15px;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
.iR {
|
|
318
|
-
margin-left: 10px;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
.info {
|
|
323
|
-
font-size: 1.04rem;
|
|
324
|
-
color: #292929;
|
|
325
|
-
font-weight: 500;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
.warning-error {
|
|
330
|
-
display: flex;
|
|
331
|
-
flex-direction: row;
|
|
332
|
-
flex-wrap: wrap;
|
|
333
|
-
justify-content: center;
|
|
334
|
-
margin-top: 10%;
|
|
335
|
-
padding-bottom: 30px;
|
|
336
|
-
background-color: white;
|
|
337
|
-
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
338
|
-
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
339
|
-
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
340
|
-
|
|
341
|
-
.box-error {
|
|
342
|
-
width: 100%;
|
|
343
|
-
padding-left: 0;
|
|
344
|
-
padding-right: 0;
|
|
345
|
-
|
|
346
|
-
.yellow-box {
|
|
347
|
-
background: #f5d41b;
|
|
348
|
-
padding-top: 50px;
|
|
349
|
-
padding-bottom: 20px;
|
|
350
|
-
padding-right: 10%;
|
|
351
|
-
padding-left: 10%;
|
|
352
|
-
|
|
353
|
-
h2 {
|
|
354
|
-
width: 100%;
|
|
355
|
-
display: inline-block;
|
|
356
|
-
color: #292929;
|
|
357
|
-
padding-bottom: 20px;
|
|
358
|
-
border-bottom: 0.5px solid #292929;
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
p {
|
|
362
|
-
color: #292929;
|
|
363
|
-
font-size: 1.3rem;
|
|
364
|
-
|
|
365
|
-
&.doc {
|
|
366
|
-
padding-top: 20px;
|
|
367
|
-
color: #404040;
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
ul {
|
|
372
|
-
color: #292929;
|
|
373
|
-
margin-left: 5%;
|
|
374
|
-
font-size: 1.3rem;
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
.box {
|
|
379
|
-
padding-right: 10%;
|
|
380
|
-
padding-left: 10%;
|
|
381
|
-
|
|
382
|
-
.doc {
|
|
383
|
-
color: #292929;
|
|
384
|
-
font-size: 1.3rem;
|
|
385
|
-
padding-top: 25px;
|
|
386
|
-
|
|
387
|
-
a {
|
|
388
|
-
color: #f5bc00;
|
|
389
|
-
|
|
390
|
-
&:hover {
|
|
391
|
-
color: #f5ac01;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
.pop-error {
|
|
400
|
-
//display: block!important;
|
|
401
|
-
position: fixed;
|
|
402
|
-
top: 0;
|
|
403
|
-
left: 0;
|
|
404
|
-
width: 100%;
|
|
405
|
-
height: 100%;
|
|
406
|
-
|
|
407
|
-
.fd_Error-type {
|
|
408
|
-
width: 100%;
|
|
409
|
-
padding-bottom: 30px;
|
|
410
|
-
background-color: white;
|
|
411
|
-
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
412
|
-
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
413
|
-
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
414
|
-
|
|
415
|
-
.box-error {
|
|
416
|
-
width: 100%;
|
|
417
|
-
|
|
418
|
-
h2 {
|
|
419
|
-
font-weight: 500;
|
|
420
|
-
width: 100%;
|
|
421
|
-
|
|
422
|
-
svg {
|
|
423
|
-
margin-right: 20px;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
ul {
|
|
428
|
-
color: #fff;
|
|
429
|
-
margin-left: 12%;
|
|
430
|
-
|
|
431
|
-
&.doc {
|
|
432
|
-
color: #292929;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
</style>
|
|
1
|
+
<!--
|
|
2
|
+
@ Description: This component is used to display error message in the application
|
|
3
|
+
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
<template>
|
|
7
|
+
<div>
|
|
8
|
+
<!------------------------ ERRORS APPLICATION ------------------->
|
|
9
|
+
<div v-if="errorGroup === 'application'" class="fd_Error-type">
|
|
10
|
+
<div class="box-error">
|
|
11
|
+
<!--------------------------- Module --------------------->
|
|
12
|
+
<template v-if="errorType === 'errorModule'">
|
|
13
|
+
<div class="red-box">
|
|
14
|
+
<div class="box">
|
|
15
|
+
<h2>
|
|
16
|
+
Cette page est affichée parce que le fichier ModuleView n'existe
|
|
17
|
+
pas où est mal configuré
|
|
18
|
+
</h2>
|
|
19
|
+
|
|
20
|
+
<p>Pour la vue du Module</p>
|
|
21
|
+
<ol type="number">
|
|
22
|
+
<li>
|
|
23
|
+
Créez un fichier
|
|
24
|
+
<i>.vue</i>
|
|
25
|
+
avec pour nom
|
|
26
|
+
<strong>ModuleView.vue</strong>
|
|
27
|
+
dans le dossier
|
|
28
|
+
<strong>views</strong>
|
|
29
|
+
</li>
|
|
30
|
+
|
|
31
|
+
<li>
|
|
32
|
+
Referez-vous wnauirw à la documentation pour la création et la
|
|
33
|
+
configuration de la vue du Module
|
|
34
|
+
</li>
|
|
35
|
+
</ol>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="box">
|
|
39
|
+
<p class="doc">
|
|
40
|
+
Visitez
|
|
41
|
+
<a :href="docLink" target="blank">la documentation</a>
|
|
42
|
+
pour plus de details ...
|
|
43
|
+
</p>
|
|
44
|
+
</div>
|
|
45
|
+
</template>
|
|
46
|
+
<!---------------------------- Menu ---------------------->
|
|
47
|
+
<template v-if="errorType === 'errorMenu'">
|
|
48
|
+
<div class="red-box">
|
|
49
|
+
<div class="box">
|
|
50
|
+
<h2>
|
|
51
|
+
Cette page est affichée parce que le fichier SummaryView
|
|
52
|
+
n'existe pas où est mal configuré
|
|
53
|
+
</h2>
|
|
54
|
+
|
|
55
|
+
<p>Pour la vue du Sommaire (page de MENU)</p>
|
|
56
|
+
<ol type="number">
|
|
57
|
+
<li>
|
|
58
|
+
Créez un fichier
|
|
59
|
+
<i>.vue</i>
|
|
60
|
+
avec pour nom
|
|
61
|
+
<strong>SummaryView.vue</strong>
|
|
62
|
+
dans le dossier
|
|
63
|
+
<strong>views</strong>
|
|
64
|
+
</li>
|
|
65
|
+
<li>
|
|
66
|
+
Referez-vous ensuite à la documentation pour la création et la
|
|
67
|
+
configuration de la vue du sommaire
|
|
68
|
+
</li>
|
|
69
|
+
</ol>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="box">
|
|
73
|
+
<p class="doc">
|
|
74
|
+
Visitez
|
|
75
|
+
<a :href="docLink" target="blank">la documentation</a>
|
|
76
|
+
pour plus de details ...
|
|
77
|
+
</p>
|
|
78
|
+
</div>
|
|
79
|
+
</template>
|
|
80
|
+
<!---------------------------- Page ---------------------->
|
|
81
|
+
<template v-if="errorType === 'errorPage'">
|
|
82
|
+
<div class="red-box">
|
|
83
|
+
<div class="box">
|
|
84
|
+
<h2>
|
|
85
|
+
Cette page est affichée parce que vous n'avez pas encore de page
|
|
86
|
+
d'activité pour votre module.
|
|
87
|
+
</h2>
|
|
88
|
+
|
|
89
|
+
<p>Pour créer une page</p>
|
|
90
|
+
<ol type="number">
|
|
91
|
+
<li>
|
|
92
|
+
Ajoutez un dossier pour votre activité avec un nom de type
|
|
93
|
+
<strong>Axx</strong>
|
|
94
|
+
dans le dossier
|
|
95
|
+
<strong>module</strong>
|
|
96
|
+
<i>( exemple A00 )</i>
|
|
97
|
+
</li>
|
|
98
|
+
<li>
|
|
99
|
+
Ajoutez un fichier pour votre page avec un nom de type
|
|
100
|
+
<strong>Pxx.vue</strong>
|
|
101
|
+
dans le dossier
|
|
102
|
+
<strong>Axx</strong>
|
|
103
|
+
<i>( exemple P01.vue )</i>
|
|
104
|
+
</li>
|
|
105
|
+
<li>
|
|
106
|
+
Definissez le
|
|
107
|
+
<strong>$data</strong>
|
|
108
|
+
de la page
|
|
109
|
+
</li>
|
|
110
|
+
</ol>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="box">
|
|
114
|
+
<p class="doc">
|
|
115
|
+
Visitez
|
|
116
|
+
<a :href="docLink" target="blank">la documentation</a>
|
|
117
|
+
pour plus de details ...
|
|
118
|
+
</p>
|
|
119
|
+
</div>
|
|
120
|
+
</template>
|
|
121
|
+
<!----------------------- Branching ---------------------->
|
|
122
|
+
<template v-if="errorType === 'errorMenuBranching'">
|
|
123
|
+
<div class="red-box">
|
|
124
|
+
<div class="box">
|
|
125
|
+
<h2>Erreur d'embranchement.</h2>
|
|
126
|
+
|
|
127
|
+
<p>
|
|
128
|
+
Vous ne pouvez pas avoir de pages d'embranchement(s) dans le
|
|
129
|
+
dossier A00
|
|
130
|
+
</p>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
<div class="box">
|
|
134
|
+
<p class="doc">
|
|
135
|
+
Visitez
|
|
136
|
+
<a
|
|
137
|
+
:href="`https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`"
|
|
138
|
+
target="blank"
|
|
139
|
+
>
|
|
140
|
+
la documentation
|
|
141
|
+
</a>
|
|
142
|
+
pour plus de details ...
|
|
143
|
+
</p>
|
|
144
|
+
</div>
|
|
145
|
+
</template>
|
|
146
|
+
<!------------------------- 404 -------------------------->
|
|
147
|
+
<template v-if="errorType === '404'">
|
|
148
|
+
<div class="red-box">
|
|
149
|
+
<div class="box">
|
|
150
|
+
<h2>404 OOPSSS!</h2>
|
|
151
|
+
<p>Il semble que la page que vous cherchez n'existe pas.</p>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
<div class="box">
|
|
155
|
+
<p class="doc">
|
|
156
|
+
Retrourner à la
|
|
157
|
+
<router-link :to="{ name: 'menu' }">page d'accueil</router-link>
|
|
158
|
+
</p>
|
|
159
|
+
</div>
|
|
160
|
+
</template>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
<!------------------- END ERRORS COMPONENTS -------------------->
|
|
164
|
+
<v-row v-if="errorGroup === 'component'" class="warning-error">
|
|
165
|
+
<v-col class="box-error">
|
|
166
|
+
<div class="yellow-box">
|
|
167
|
+
<h2>
|
|
168
|
+
{{ errorTitle || 'Attention erreur dans le composant' }}
|
|
169
|
+
</h2>
|
|
170
|
+
<p>{{ errorText }}</p>
|
|
171
|
+
<br />
|
|
172
|
+
<p>Veuillez corriger:</p>
|
|
173
|
+
<template
|
|
174
|
+
v-if="
|
|
175
|
+
errorsList.constructor == Array ||
|
|
176
|
+
errorsList.constructor == Object
|
|
177
|
+
"
|
|
178
|
+
>
|
|
179
|
+
<ul>
|
|
180
|
+
<li
|
|
181
|
+
v-for="err in errorsList"
|
|
182
|
+
:key="`error_type_${err}`"
|
|
183
|
+
v-html="err"
|
|
184
|
+
></li>
|
|
185
|
+
</ul>
|
|
186
|
+
</template>
|
|
187
|
+
<template v-if="errorsList.constructor == String">
|
|
188
|
+
<ul>
|
|
189
|
+
<li v-html="errorsList"></li>
|
|
190
|
+
</ul>
|
|
191
|
+
</template>
|
|
192
|
+
</div>
|
|
193
|
+
<div class="box">
|
|
194
|
+
<p class="doc">
|
|
195
|
+
Visitez
|
|
196
|
+
<a href="https://fcaddocumentation.netlify.app/" target="blank">
|
|
197
|
+
la documentation
|
|
198
|
+
</a>
|
|
199
|
+
pour plus de details
|
|
200
|
+
</p>
|
|
201
|
+
</div>
|
|
202
|
+
</v-col>
|
|
203
|
+
</v-row>
|
|
204
|
+
|
|
205
|
+
<!---------------------- END ERRORS COMPONENTS ------------------->
|
|
206
|
+
</div>
|
|
207
|
+
</template>
|
|
208
|
+
|
|
209
|
+
<script>
|
|
210
|
+
export default {
|
|
211
|
+
name: 'AppBaseErrorDisplay',
|
|
212
|
+
props: {
|
|
213
|
+
errorGroup: { type: String, default: 'application' }, //group can be: application or component
|
|
214
|
+
errorType: { type: String, note: 'Error Message', default: '' },
|
|
215
|
+
errorTitle: {
|
|
216
|
+
type: String,
|
|
217
|
+
note: 'Title to display for the error',
|
|
218
|
+
default: ''
|
|
219
|
+
},
|
|
220
|
+
errorText: {
|
|
221
|
+
type: String,
|
|
222
|
+
note: 'text to display for the error',
|
|
223
|
+
default:
|
|
224
|
+
'Vous avez une/des erreure(s) qui empêche(ent) le bon rendu du composant'
|
|
225
|
+
},
|
|
226
|
+
errorsList: { type: Array, default: () => [] },
|
|
227
|
+
docLink: {
|
|
228
|
+
type: String,
|
|
229
|
+
default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
|
|
230
|
+
note: 'Documentation link'
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
</script>
|
|
235
|
+
|
|
236
|
+
<style lang="scss">
|
|
237
|
+
//**** DO NOT TOUCHE ****/
|
|
238
|
+
//**** ERROR ****/
|
|
239
|
+
.fd_Error-type {
|
|
240
|
+
display: flex;
|
|
241
|
+
flex-direction: row;
|
|
242
|
+
flex-wrap: wrap;
|
|
243
|
+
justify-content: center;
|
|
244
|
+
margin-top: 20%;
|
|
245
|
+
padding-bottom: 30px;
|
|
246
|
+
background-color: white;
|
|
247
|
+
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
248
|
+
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
249
|
+
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
250
|
+
|
|
251
|
+
.box-error {
|
|
252
|
+
width: 100%;
|
|
253
|
+
|
|
254
|
+
.red-box {
|
|
255
|
+
background: #cd5356;
|
|
256
|
+
padding-top: 50px;
|
|
257
|
+
padding-bottom: 20px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.box {
|
|
261
|
+
width: 60%;
|
|
262
|
+
margin: 0 auto;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
h2 {
|
|
266
|
+
display: inline-block;
|
|
267
|
+
color: white;
|
|
268
|
+
margin-left: 10%;
|
|
269
|
+
padding-bottom: 20px;
|
|
270
|
+
border-bottom: 0.5px solid white;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
p {
|
|
274
|
+
color: white;
|
|
275
|
+
margin-left: 10%;
|
|
276
|
+
font-size: 1.5rem;
|
|
277
|
+
|
|
278
|
+
&.doc {
|
|
279
|
+
padding-top: 20px;
|
|
280
|
+
color: #404040;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
ol {
|
|
285
|
+
color: #fff;
|
|
286
|
+
margin-left: 10%;
|
|
287
|
+
font-size: 1.3rem;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
a {
|
|
291
|
+
color: #cd5357;
|
|
292
|
+
|
|
293
|
+
&:hover {
|
|
294
|
+
color: #404040;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
//**** WARNING ****/
|
|
301
|
+
.warning {
|
|
302
|
+
background: #f5d41b;
|
|
303
|
+
padding: 20px 15px;
|
|
304
|
+
|
|
305
|
+
.title {
|
|
306
|
+
font-weight: 900;
|
|
307
|
+
font-size: 1.25rem;
|
|
308
|
+
text-transform: uppercase;
|
|
309
|
+
color: #292929;
|
|
310
|
+
padding-bottom: 20px;
|
|
311
|
+
border-bottom: 0.5px solid #292929;
|
|
312
|
+
|
|
313
|
+
.iL {
|
|
314
|
+
margin-right: 15px;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.iR {
|
|
318
|
+
margin-left: 10px;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.info {
|
|
323
|
+
font-size: 1.04rem;
|
|
324
|
+
color: #292929;
|
|
325
|
+
font-weight: 500;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.warning-error {
|
|
330
|
+
display: flex;
|
|
331
|
+
flex-direction: row;
|
|
332
|
+
flex-wrap: wrap;
|
|
333
|
+
justify-content: center;
|
|
334
|
+
margin-top: 10%;
|
|
335
|
+
padding-bottom: 30px;
|
|
336
|
+
background-color: white;
|
|
337
|
+
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
338
|
+
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
339
|
+
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
340
|
+
|
|
341
|
+
.box-error {
|
|
342
|
+
width: 100%;
|
|
343
|
+
padding-left: 0;
|
|
344
|
+
padding-right: 0;
|
|
345
|
+
|
|
346
|
+
.yellow-box {
|
|
347
|
+
background: #f5d41b;
|
|
348
|
+
padding-top: 50px;
|
|
349
|
+
padding-bottom: 20px;
|
|
350
|
+
padding-right: 10%;
|
|
351
|
+
padding-left: 10%;
|
|
352
|
+
|
|
353
|
+
h2 {
|
|
354
|
+
width: 100%;
|
|
355
|
+
display: inline-block;
|
|
356
|
+
color: #292929;
|
|
357
|
+
padding-bottom: 20px;
|
|
358
|
+
border-bottom: 0.5px solid #292929;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
p {
|
|
362
|
+
color: #292929;
|
|
363
|
+
font-size: 1.3rem;
|
|
364
|
+
|
|
365
|
+
&.doc {
|
|
366
|
+
padding-top: 20px;
|
|
367
|
+
color: #404040;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
ul {
|
|
372
|
+
color: #292929;
|
|
373
|
+
margin-left: 5%;
|
|
374
|
+
font-size: 1.3rem;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.box {
|
|
379
|
+
padding-right: 10%;
|
|
380
|
+
padding-left: 10%;
|
|
381
|
+
|
|
382
|
+
.doc {
|
|
383
|
+
color: #292929;
|
|
384
|
+
font-size: 1.3rem;
|
|
385
|
+
padding-top: 25px;
|
|
386
|
+
|
|
387
|
+
a {
|
|
388
|
+
color: #f5bc00;
|
|
389
|
+
|
|
390
|
+
&:hover {
|
|
391
|
+
color: #f5ac01;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.pop-error {
|
|
400
|
+
//display: block!important;
|
|
401
|
+
position: fixed;
|
|
402
|
+
top: 0;
|
|
403
|
+
left: 0;
|
|
404
|
+
width: 100%;
|
|
405
|
+
height: 100%;
|
|
406
|
+
|
|
407
|
+
.fd_Error-type {
|
|
408
|
+
width: 100%;
|
|
409
|
+
padding-bottom: 30px;
|
|
410
|
+
background-color: white;
|
|
411
|
+
-webkit-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
412
|
+
-moz-box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
413
|
+
box-shadow: 3px 3px 23px 0px rgba(0, 0, 0, 0.43);
|
|
414
|
+
|
|
415
|
+
.box-error {
|
|
416
|
+
width: 100%;
|
|
417
|
+
|
|
418
|
+
h2 {
|
|
419
|
+
font-weight: 500;
|
|
420
|
+
width: 100%;
|
|
421
|
+
|
|
422
|
+
svg {
|
|
423
|
+
margin-right: 20px;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
ul {
|
|
428
|
+
color: #fff;
|
|
429
|
+
margin-left: 12%;
|
|
430
|
+
|
|
431
|
+
&.doc {
|
|
432
|
+
color: #292929;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
</style>
|