fcad-core-dragon 2.0.0-beta.1 → 2.0.0-beta.10
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 +6 -31
- package/.prettierrc +11 -0
- package/.vscode/extensions.json +8 -0
- package/.vscode/settings.json +16 -0
- package/CHANGELOG +153 -0
- package/README.md +28 -43
- package/documentation/.vitepress/config.js +114 -0
- package/documentation/api-examples.md +49 -0
- package/documentation/composants/app-base-button.md +58 -0
- package/documentation/composants/app-base-error-display.md +59 -0
- package/documentation/composants/app-base-popover.md +68 -0
- package/documentation/composants/app-comp-audio.md +75 -0
- package/documentation/composants/app-comp-branch-buttons.md +111 -0
- package/documentation/composants/app-comp-button-progress.md +53 -0
- package/documentation/composants/app-comp-carousel.md +53 -0
- package/documentation/composants/app-comp-container.md +53 -0
- package/documentation/composants/app-comp-input-checkbox-next.md +42 -0
- package/documentation/composants/app-comp-input-dropdown-next.md +34 -0
- package/documentation/composants/app-comp-input-radio-next.md +39 -0
- package/documentation/composants/app-comp-input-text-next.md +35 -0
- package/documentation/composants/app-comp-input-text-table-next.md +34 -0
- package/documentation/composants/app-comp-input-text-to-fill-dropdown-next.md +53 -0
- package/documentation/composants/app-comp-input-text-to-fill-next.md +31 -0
- package/documentation/composants/app-comp-jauge.md +31 -0
- package/documentation/composants/app-comp-menu-item.md +55 -0
- package/documentation/composants/app-comp-menu.md +29 -0
- package/documentation/composants/app-comp-navigation.md +41 -0
- package/documentation/composants/app-comp-note-call.md +53 -0
- package/documentation/composants/app-comp-note-credit.md +53 -0
- package/documentation/composants/app-comp-play-bar-next.md +53 -0
- package/documentation/composants/app-comp-pop-up-next.md +93 -0
- package/documentation/composants/app-comp-quiz-next.md +235 -0
- package/documentation/composants/app-comp-quiz-recall.md +53 -0
- package/documentation/composants/app-comp-svg-next.md +53 -0
- package/documentation/composants/app-comp-table-of-content.md +50 -0
- package/documentation/composants/app-comp-video-player.md +82 -0
- package/documentation/composants.md +46 -0
- package/documentation/composants_critiques/ModelPageComposant.md +53 -0
- package/documentation/composants_critiques/app-base-module.md +43 -0
- package/documentation/composants_critiques/app-base-page.md +48 -0
- package/documentation/composants_critiques/app-base.md +311 -0
- package/documentation/composants_critiques/main.md +15 -0
- package/documentation/demarrage.md +50 -0
- package/documentation/deploiement.md +58 -0
- package/documentation/index.md +33 -0
- package/documentation/markdown-examples.md +85 -0
- package/documentation/public/npm_version.png +0 -0
- package/documentation/public/vite.svg +15 -0
- package/documentation/public/vuejs.svg +2 -0
- package/documentation/public/vuetify.svg +6 -0
- package/eslint.config.js +60 -0
- package/package.json +43 -47
- package/src/$locales/en.json +86 -108
- package/src/$locales/fr.json +66 -127
- package/src/assets/data/onboardingMessages.json +1 -1
- package/src/components/AppBase.vue +960 -405
- package/src/components/AppBaseButton.test.js +21 -0
- package/src/components/AppBaseButton.vue +42 -10
- package/src/components/AppBaseErrorDisplay.vue +207 -189
- package/src/components/AppBaseFlipCard.vue +1 -0
- package/src/components/AppBaseModule.vue +769 -977
- package/src/components/AppBasePage.vue +635 -81
- package/src/components/AppBasePopover.vue +41 -0
- package/src/components/AppBaseSkeleton.vue +66 -0
- package/src/components/AppCompAudio.vue +256 -0
- package/src/components/AppCompBranchButtons.vue +79 -153
- package/src/components/AppCompButtonProgress.vue +21 -36
- package/src/components/AppCompCarousel.vue +231 -87
- package/src/components/{AppCompTranscript.vue → AppCompContainer.vue} +12 -2
- package/src/components/AppCompInputCheckBoxNx.vue +323 -0
- package/src/components/AppCompInputDropdownNx.vue +299 -0
- package/src/components/AppCompInputRadioNx.vue +284 -0
- package/src/components/AppCompInputTextNx.vue +153 -0
- package/src/components/AppCompInputTextTableNx.vue +202 -0
- package/src/components/AppCompInputTextToFillDropdownNx.vue +340 -0
- package/src/components/AppCompInputTextToFillNx.vue +313 -0
- package/src/components/AppCompJauge.vue +36 -10
- package/src/components/AppCompMenu.vue +246 -32
- package/src/components/AppCompMenuItem.vue +87 -21
- package/src/components/AppCompNavigation.vue +470 -447
- package/src/components/AppCompNoteCall.vue +93 -58
- package/src/components/AppCompNoteCredit.vue +423 -96
- package/src/components/AppCompPlayBarNext.vue +2288 -0
- package/src/components/AppCompPopUpNext.vue +504 -0
- package/src/components/AppCompQuizNext.vue +510 -0
- package/src/components/AppCompQuizRecall.vue +199 -99
- package/src/components/AppCompSVGNext.vue +346 -0
- package/src/components/AppCompSettingsMenu.vue +17 -16
- package/src/components/AppCompTableOfContent.vue +262 -99
- package/src/components/AppCompVideoPlayer.vue +183 -142
- package/src/components/BaseModule.vue +8 -20
- package/src/components/tests__/AppBaseButton.spec.js +53 -0
- package/src/components/tests__/useTimer.spec.js +91 -0
- package/src/composables/useIdleDetector.js +56 -0
- package/src/composables/useQuiz.js +89 -0
- package/src/composables/useTimer.js +172 -0
- package/src/directives/nvdaFix.js +53 -0
- package/src/externalComps/ModuleView.vue +22 -0
- package/src/externalComps/SummaryView.vue +91 -0
- package/src/main.js +397 -148
- package/src/module/stores/appStore.js +947 -0
- package/src/module/xapi/ADL.js +241 -60
- package/src/module/xapi/Crypto/Hasher.js +8 -8
- package/src/module/xapi/Crypto/WordArray.js +6 -6
- package/src/module/xapi/Crypto/algorithms/BufferedBlockAlgorithm.js +4 -4
- package/src/module/xapi/Crypto/algorithms/C_algo.js +14 -18
- package/src/module/xapi/Crypto/algorithms/HMAC.js +1 -1
- package/src/module/xapi/Crypto/algorithms/SHA1.js +1 -1
- package/src/module/xapi/Crypto/encoders/Base.js +7 -7
- package/src/module/xapi/Crypto/encoders/Base64.js +3 -3
- package/src/module/xapi/Crypto/encoders/Hex.js +2 -2
- package/src/module/xapi/Crypto/encoders/Latin1.js +3 -3
- package/src/module/xapi/Crypto/encoders/Utf8.js +3 -3
- package/src/module/xapi/Statement/index.js +3 -3
- package/src/module/xapi/launch.js +10 -10
- package/src/module/xapi/utils.js +17 -17
- package/src/module/xapi/wrapper.js +219 -214
- package/src/module/xapi/xapiStatement.js +29 -29
- package/src/plugins/analytics.js +34 -0
- package/src/plugins/bus.js +7 -2
- package/src/plugins/gsap.js +5 -7
- package/src/plugins/helper.js +97 -34
- package/src/plugins/i18n.js +13 -18
- package/src/plugins/idb.js +45 -30
- package/src/plugins/save.js +1 -1
- package/src/plugins/scorm.js +15 -15
- package/src/plugins/xapi.js +2 -2
- package/src/public/index.html +22 -10
- package/src/router/index.js +29 -13
- package/src/router/routes.js +29 -54
- package/src/shared/generalfuncs.js +186 -30
- package/src/shared/validators.js +809 -40
- package/vitest.config.js +19 -0
- package/.eslintignore +0 -29
- package/.eslintrc.js +0 -86
- package/.prettierrc.js +0 -5
- package/babel.config.js +0 -3
- package/src/components/AppBaseDragChoice.vue +0 -91
- package/src/components/AppBaseDropZone.vue +0 -112
- package/src/components/AppCompBif.vue +0 -120
- package/src/components/AppCompDragAndDrop.vue +0 -339
- package/src/components/AppCompInputAssociation.vue +0 -332
- package/src/components/AppCompInputCheckBox.vue +0 -227
- package/src/components/AppCompInputDropdown.vue +0 -184
- package/src/components/AppCompInputRadio.vue +0 -169
- package/src/components/AppCompInputTextBox.vue +0 -91
- package/src/components/AppCompInputTextTable.vue +0 -155
- package/src/components/AppCompInputTextToFillDropdown.vue +0 -255
- package/src/components/AppCompInputTextToFillText.vue +0 -164
- package/src/components/AppCompMediaPlayer.vue +0 -397
- package/src/components/AppCompPlayBar.vue +0 -1319
- package/src/components/AppCompPopUp.vue +0 -522
- package/src/components/AppCompPopover.vue +0 -27
- package/src/components/AppCompQuiz.vue +0 -2989
- package/src/components/AppCompSVG.vue +0 -309
- package/src/mixins/$pageMixins.js +0 -459
- package/src/mixins/$quizMixins.js +0 -456
- package/src/mixins/timerMixin.js +0 -156
- package/src/module/store.js +0 -895
- package/src/plugins/timeManager.js +0 -77
- package/src/routes_bckp.js +0 -313
- package/src/routes_static.js +0 -344
- package/vue.config.js +0 -83
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { mount } from '@vue/test-utils'
|
|
3
|
+
import AppBaseButton from './AppBaseButton.vue'
|
|
4
|
+
|
|
5
|
+
const defaultProps = { isDisabled: false, type: 'button' }
|
|
6
|
+
|
|
7
|
+
describe('AppBaseButton Tests', () => {
|
|
8
|
+
it('should render', () => {
|
|
9
|
+
const wrapper = mount(AppBaseButton, {
|
|
10
|
+
props: defaultProps
|
|
11
|
+
})
|
|
12
|
+
expect(wrapper.find('button').exists()).toBeTruthy()
|
|
13
|
+
})
|
|
14
|
+
it('should fire click event', async () => {
|
|
15
|
+
const wrapper = mount(AppBaseButton, {
|
|
16
|
+
props: defaultProps
|
|
17
|
+
})
|
|
18
|
+
wrapper.find('button').trigger('click')
|
|
19
|
+
expect(wrapper.emitted()).toHaveProperty('click')
|
|
20
|
+
})
|
|
21
|
+
})
|
|
@@ -5,12 +5,19 @@
|
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
<button
|
|
8
|
-
type="
|
|
8
|
+
:type="type"
|
|
9
9
|
class="btn"
|
|
10
|
-
:class="{
|
|
11
|
-
|
|
10
|
+
:class="{
|
|
11
|
+
click: isClick,
|
|
12
|
+
'btn-visited': isVisited,
|
|
13
|
+
md_disabled: isDisabled
|
|
14
|
+
}"
|
|
15
|
+
:aria-disabled="isDisabled ? true : null"
|
|
12
16
|
@click="click"
|
|
13
17
|
@focus="focus"
|
|
18
|
+
@blur="blur"
|
|
19
|
+
@mouseenter="mouseenter"
|
|
20
|
+
@mouseleave="mouseleave"
|
|
14
21
|
>
|
|
15
22
|
<slot>Button</slot>
|
|
16
23
|
</button>
|
|
@@ -20,15 +27,21 @@
|
|
|
20
27
|
export default {
|
|
21
28
|
name: 'AppBaseButton',
|
|
22
29
|
props: {
|
|
23
|
-
|
|
30
|
+
isDisabled: {
|
|
24
31
|
type: Boolean,
|
|
25
32
|
default: false
|
|
33
|
+
},
|
|
34
|
+
type: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: 'button'
|
|
26
37
|
}
|
|
27
38
|
},
|
|
39
|
+
emits: ['click', 'focus', 'blur', 'mouseenter', 'mouseleave'],
|
|
28
40
|
data() {
|
|
29
41
|
return {
|
|
30
42
|
isClick: false,
|
|
31
|
-
isVisited: false
|
|
43
|
+
isVisited: false,
|
|
44
|
+
count: 0
|
|
32
45
|
}
|
|
33
46
|
},
|
|
34
47
|
methods: {
|
|
@@ -36,17 +49,38 @@ export default {
|
|
|
36
49
|
* @fires click to parent component or page
|
|
37
50
|
*/
|
|
38
51
|
click() {
|
|
52
|
+
if (this.isDisabled) return // prevent bouton action on click if button not available
|
|
53
|
+
|
|
39
54
|
this.$emit('click', this.$el)
|
|
55
|
+
// this.$emit('click', (this.count += 2))
|
|
40
56
|
this.isClick = !this.isClick
|
|
41
57
|
if (!this.isVisited) {
|
|
42
58
|
this.isVisited = true
|
|
43
59
|
}
|
|
44
60
|
},
|
|
45
61
|
/**
|
|
46
|
-
* @fires
|
|
62
|
+
* @fires focus to parent component or page
|
|
47
63
|
*/
|
|
48
64
|
focus() {
|
|
49
65
|
this.$emit('focus', this.$el)
|
|
66
|
+
},
|
|
67
|
+
/**
|
|
68
|
+
* @fires blur to parent component or page
|
|
69
|
+
*/
|
|
70
|
+
blur() {
|
|
71
|
+
this.$emit('blur', this.$el)
|
|
72
|
+
},
|
|
73
|
+
/**
|
|
74
|
+
* @fires mouseenter to parent component or page
|
|
75
|
+
*/
|
|
76
|
+
mouseenter() {
|
|
77
|
+
this.$emit('mouseenter', this.$el)
|
|
78
|
+
},
|
|
79
|
+
/**
|
|
80
|
+
* @fires mouseenter to parent component or page
|
|
81
|
+
*/
|
|
82
|
+
mouseleave() {
|
|
83
|
+
this.$emit('mouseleave', this.$el)
|
|
50
84
|
}
|
|
51
85
|
}
|
|
52
86
|
}
|
|
@@ -55,9 +89,7 @@ export default {
|
|
|
55
89
|
.btn {
|
|
56
90
|
display: flex;
|
|
57
91
|
align-items: center;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
pointer-events: none;
|
|
61
|
-
}
|
|
92
|
+
//test
|
|
93
|
+
//test
|
|
62
94
|
}
|
|
63
95
|
</style>
|
|
@@ -4,199 +4,205 @@
|
|
|
4
4
|
-->
|
|
5
5
|
|
|
6
6
|
<template>
|
|
7
|
-
<div
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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>
|
|
42
161
|
</div>
|
|
43
162
|
</div>
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
<div class="box">
|
|
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">
|
|
48
167
|
<h2>
|
|
49
|
-
|
|
50
|
-
Cette page est affichée parce que vous n'avez pas encore de page de
|
|
51
|
-
MENU pour votre activité
|
|
168
|
+
{{ errorTitle || 'Attention erreur dans le composant' }}
|
|
52
169
|
</h2>
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<strong>module</strong>
|
|
61
|
-
</li>
|
|
62
|
-
<li>
|
|
63
|
-
Ajoutez un fichier pour votre page de MENU avec un nom de type
|
|
64
|
-
<strong>Pxx.vue</strong>
|
|
65
|
-
dans le dossier
|
|
66
|
-
<strong>A00</strong>
|
|
67
|
-
<i>( exemple P01.vue )</i>
|
|
68
|
-
</li>
|
|
69
|
-
<li>
|
|
70
|
-
Dans le
|
|
71
|
-
<strong>$data</strong>
|
|
72
|
-
de ce la page, mettez la valeur de la variable
|
|
73
|
-
<strong>type</strong>
|
|
74
|
-
à
|
|
75
|
-
<strong>"pg_menu"</strong>
|
|
76
|
-
</li>
|
|
77
|
-
</ol>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
<div class="box">
|
|
81
|
-
<p class="doc">
|
|
82
|
-
Visitez
|
|
83
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
84
|
-
pour plus de details ...
|
|
85
|
-
</p>
|
|
86
|
-
</div>
|
|
87
|
-
</div>
|
|
88
|
-
<!---------------------------------------------------->
|
|
89
|
-
<div v-if="errorMessage === 'errorPage'" class="box-error">
|
|
90
|
-
<div class="red-box">
|
|
91
|
-
<div class="box">
|
|
92
|
-
<h2>
|
|
93
|
-
<b-icon icon="exclamation-triangle" />
|
|
94
|
-
Cette page est affichée parce que vous n'avez pas encore de page
|
|
95
|
-
d'activité pour votre module.
|
|
96
|
-
</h2>
|
|
97
|
-
|
|
98
|
-
<p>Pour créer une page</p>
|
|
99
|
-
<ol type="number">
|
|
100
|
-
<li>
|
|
101
|
-
Ajoutez un dossier pour votre activité avec un nom de type
|
|
102
|
-
<strong>Axx</strong>
|
|
103
|
-
dans le dossier
|
|
104
|
-
<strong>module</strong>
|
|
105
|
-
<i>( exemple A00 )</i>
|
|
106
|
-
</li>
|
|
107
|
-
<li>
|
|
108
|
-
Ajoutez un fichier pour votre page avec un nom de type
|
|
109
|
-
<strong>Pxx.vue</strong>
|
|
110
|
-
dans le dossier
|
|
111
|
-
<strong>Axx</strong>
|
|
112
|
-
<i>( exemple P01.vue )</i>
|
|
113
|
-
</li>
|
|
114
|
-
<li>
|
|
115
|
-
Definissez le
|
|
116
|
-
<strong>$data</strong>
|
|
117
|
-
de la page
|
|
118
|
-
</li>
|
|
119
|
-
</ol>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="box">
|
|
123
|
-
<p class="doc">
|
|
124
|
-
Visitez
|
|
125
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
126
|
-
pour plus de details ...
|
|
127
|
-
</p>
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
<div v-if="errorMessage === 'errorMenuBranching'" class="box-error">
|
|
131
|
-
<div class="red-box">
|
|
132
|
-
<div class="box">
|
|
133
|
-
<h2>
|
|
134
|
-
<b-icon icon="exclamation-triangle" />
|
|
135
|
-
Erreur d'embranchement.
|
|
136
|
-
</h2>
|
|
137
|
-
|
|
138
|
-
<p>
|
|
139
|
-
Vous ne pouvez pas avoir de pages d'embranchement(s) dans le dossier
|
|
140
|
-
A00
|
|
141
|
-
</p>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
<div class="box">
|
|
145
|
-
<p class="doc">
|
|
146
|
-
Visitez
|
|
147
|
-
<a
|
|
148
|
-
:href="
|
|
149
|
-
`https://fcaddocumentation.netlify.app/guide/structure.html#pages-d-embranchements-dans-un-dossier`
|
|
170
|
+
<p>{{ errorText }}</p>
|
|
171
|
+
<br />
|
|
172
|
+
<p>Veuillez corriger:</p>
|
|
173
|
+
<template
|
|
174
|
+
v-if="
|
|
175
|
+
errorsList.constructor == Array ||
|
|
176
|
+
errorsList.constructor == Object
|
|
150
177
|
"
|
|
151
|
-
target="blank"
|
|
152
178
|
>
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
</
|
|
166
|
-
<p>Il semble que la page que vous cherchez n'existe pas.</p>
|
|
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>
|
|
167
192
|
</div>
|
|
168
|
-
</div>
|
|
169
|
-
<div class="box">
|
|
170
|
-
<p class="doc">
|
|
171
|
-
Retrourner à la
|
|
172
|
-
<router-link :to="{ name: 'menu' }">
|
|
173
|
-
page d'accueil
|
|
174
|
-
</router-link>
|
|
175
|
-
</p>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
<div v-if="errorsList.length > 0" class="box-error">
|
|
179
|
-
<div class="red-box">
|
|
180
193
|
<div class="box">
|
|
181
|
-
<
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
</li>
|
|
189
|
-
</ul>
|
|
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>
|
|
190
201
|
</div>
|
|
191
|
-
</
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
<a :href="docLink" target="blank">la documentation</a>
|
|
196
|
-
pour plus de details ...
|
|
197
|
-
</p>
|
|
198
|
-
</div>
|
|
199
|
-
</div>
|
|
202
|
+
</v-col>
|
|
203
|
+
</v-row>
|
|
204
|
+
|
|
205
|
+
<!---------------------- END ERRORS COMPONENTS ------------------->
|
|
200
206
|
</div>
|
|
201
207
|
</template>
|
|
202
208
|
|
|
@@ -204,13 +210,25 @@
|
|
|
204
210
|
export default {
|
|
205
211
|
name: 'AppBaseErrorDisplay',
|
|
206
212
|
props: {
|
|
207
|
-
|
|
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: () => [] },
|
|
208
227
|
docLink: {
|
|
209
228
|
type: String,
|
|
210
229
|
default: 'https://fcaddocumentation.netlify.com/guide/proceduries.html',
|
|
211
230
|
note: 'Documentation link'
|
|
212
|
-
}
|
|
213
|
-
errorsList: { type: Array, default: () => [] }
|
|
231
|
+
}
|
|
214
232
|
}
|
|
215
233
|
}
|
|
216
234
|
</script>
|
|
@@ -218,7 +236,7 @@ export default {
|
|
|
218
236
|
<style lang="scss">
|
|
219
237
|
//**** DO NOT TOUCHE ****/
|
|
220
238
|
//**** ERROR ****/
|
|
221
|
-
.fd_Error-
|
|
239
|
+
.fd_Error-type {
|
|
222
240
|
display: flex;
|
|
223
241
|
flex-direction: row;
|
|
224
242
|
flex-wrap: wrap;
|
|
@@ -386,7 +404,7 @@ export default {
|
|
|
386
404
|
width: 100%;
|
|
387
405
|
height: 100%;
|
|
388
406
|
|
|
389
|
-
.fd_Error-
|
|
407
|
+
.fd_Error-type {
|
|
390
408
|
width: 100%;
|
|
391
409
|
padding-bottom: 30px;
|
|
392
410
|
background-color: white;
|