fcad-core-dragon 2.2.0 → 2.3.0-test.1
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/.gitlab-ci.yml +14 -28
- package/.releaserc +27 -0
- package/CHANGELOG.md +14 -0
- package/documentation/.vitepress/config.js +109 -32
- package/package.json +50 -36
- package/src/components/AppBase.vue +18 -64
- package/src/components/AppBaseModule.vue +34 -11
- package/src/components/AppBasePage.vue +0 -3
- package/src/components/AppCompInputMath.vue +20 -0
- package/src/components/AppCompInputTextToFillNx.vue +2 -1
- package/src/components/AppCompNoteCredit.vue +0 -4
- package/src/components/AppCompPlayBarNext.vue +0 -2
- package/src/components/AppCompQuizNext.vue +13 -0
- package/src/main.js +32 -45
- package/src/module/stores/appStore.js +3 -3
- package/src/module/xapi/ADL.js +66 -77
- package/src/shared/generalfuncs.js +0 -1
- package/vitest.setup.js +0 -5
- package/artifacts/playwright-report/index.html +0 -85
package/.gitlab-ci.yml
CHANGED
|
@@ -18,11 +18,11 @@ cache:
|
|
|
18
18
|
# Global variables to ensure clean clones and token-based authentication
|
|
19
19
|
variables:
|
|
20
20
|
GIT_STRATEGY: clone
|
|
21
|
-
GIT_CHECKOUT:
|
|
21
|
+
GIT_CHECKOUT: 'true'
|
|
22
22
|
GIT_SUBMODULE_STRATEGY: recursive
|
|
23
23
|
GIT_DEPTH: 1 # Faster, shallow clone
|
|
24
|
-
GIT_SSL_NO_VERIFY:
|
|
25
|
-
NPM_TOKEN:
|
|
24
|
+
GIT_SSL_NO_VERIFY: 'true' # Optional: if your GitLab server uses self-signed SSL
|
|
25
|
+
NPM_TOKEN: '$NPM_ACCESS_KEY' # hold value of Auth key for npm access
|
|
26
26
|
|
|
27
27
|
# Install stage
|
|
28
28
|
install_dependencies:
|
|
@@ -41,8 +41,7 @@ lint_code:
|
|
|
41
41
|
#unit-test stage
|
|
42
42
|
run_tests_unit:
|
|
43
43
|
stage: test
|
|
44
|
-
|
|
45
|
-
- install_dependencies
|
|
44
|
+
needs: ['install_dependencies', 'lint_code']
|
|
46
45
|
script:
|
|
47
46
|
- echo "🏃 Running tests..."
|
|
48
47
|
- npm run test:unit:coverage -- --reporter=junit --outputFile=junit-report.xml
|
|
@@ -62,23 +61,19 @@ run_tests_unit:
|
|
|
62
61
|
#Components-test stage with playwright
|
|
63
62
|
run_components_test:
|
|
64
63
|
stage: test
|
|
65
|
-
|
|
66
|
-
dependencies:
|
|
67
|
-
- install_dependencies
|
|
64
|
+
needs: ['install_dependencies', 'lint_code']
|
|
68
65
|
script:
|
|
69
66
|
- echo "🏃 Running Components tests..."
|
|
67
|
+
- npm ci
|
|
70
68
|
- npx playwright install
|
|
71
69
|
- npm run test-ct
|
|
72
|
-
- mkdir -p artifacts
|
|
73
|
-
- cp -r playwright-report artifacts/playwright-report || true
|
|
74
|
-
- if [ -f results.xml ]; then cp results.xml artifacts/results.xml; fi
|
|
75
70
|
artifacts:
|
|
76
71
|
when: always
|
|
77
72
|
reports:
|
|
78
|
-
junit:
|
|
73
|
+
junit: results.xml
|
|
79
74
|
paths:
|
|
80
|
-
-
|
|
81
|
-
-
|
|
75
|
+
- playwright-report/
|
|
76
|
+
- results.xml
|
|
82
77
|
allow_failure: true
|
|
83
78
|
|
|
84
79
|
#Deploy to npm
|
|
@@ -86,21 +81,12 @@ publish_to_npm:
|
|
|
86
81
|
stage: deploy
|
|
87
82
|
#image: node:22
|
|
88
83
|
script:
|
|
89
|
-
# Get version from package.json
|
|
90
|
-
- VERSION=$(node -p "require('./package.json').version")
|
|
91
|
-
- echo "Detected version => $VERSION"
|
|
92
|
-
# Set the right tag (next or latest) according to version
|
|
93
|
-
- if [[ "$VERSION" == *beta* ]]; then TAG="next"; else TAG="latest"; fi
|
|
94
|
-
- echo "Using dist-tag => $TAG"
|
|
95
84
|
- echo " //registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
- npm whoami || true
|
|
85
|
+
- npm ci
|
|
86
|
+
- npx semantic-release # Check semantic-release version
|
|
99
87
|
- echo "🚀 Publishing package version from tag $CI_COMMIT_TAG"
|
|
100
|
-
- npm publish --access public --tag "$TAG" # scoped of publication (public)
|
|
101
|
-
when: on_success
|
|
102
88
|
rules:
|
|
103
89
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Deploy only from the default branch (e.g., main)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
90
|
+
- if: $CI_COMMIT_BRANCH == "beta" # Deploy from branch (e.g., beta)
|
|
91
|
+
- if: $CI_COMMIT_BRANCH == "alpha" # Deploy from branch (e.g., alpha)
|
|
92
|
+
- if: $CI_COMMIT_BRANCH == "test" # Deploy from branch (e.g., test)
|
package/.releaserc
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": [
|
|
3
|
+
"master",
|
|
4
|
+
{ "name": "beta", "prerelease": true },
|
|
5
|
+
{ "name": "alpha", "prerelease": true },
|
|
6
|
+
{ "name": "test", "prerelease": true }
|
|
7
|
+
],
|
|
8
|
+
"plugins": [
|
|
9
|
+
"@semantic-release/commit-analyzer",
|
|
10
|
+
"@semantic-release/release-notes-generator",
|
|
11
|
+
[
|
|
12
|
+
"@semantic-release/changelog",
|
|
13
|
+
{
|
|
14
|
+
"changelogFile": "CHANGELOG.md"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"@semantic-release/npm",
|
|
18
|
+
[
|
|
19
|
+
"@semantic-release/git",
|
|
20
|
+
{
|
|
21
|
+
"assets": ["package.json", "CHANGELOG.md"],
|
|
22
|
+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"@semantic-release/gitlab"
|
|
26
|
+
]
|
|
27
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# [2.3.0-test.1](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/compare/v2.2.0...v2.3.0-test.1) (2026-03-27)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **ci-config:** fixed the rule for npm deployment on granches beta, apha and test ([38923e7](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/38923e7ad775795f2ea27f0d304915a740185892))
|
|
7
|
+
* **ci-config:** fixed the rule for npm deployment on granches beta, apha and test ([808d3de](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/808d3de37bf1d03d420e05fa13412ce17ca72ad1))
|
|
8
|
+
* **dependencies:** fixed depentencies conflicts causing npm ci to fail ([469918e](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/469918e24d0b2948adf7d2f0135d80aeba2b35a8))
|
|
9
|
+
* remaning release config file to .releaserc ([2a746d0](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/2a746d0b294577128937a22fae8f556984e97fda))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* **core:** expose app-store and app-router via provide for to external plugins and libraries ([42e776f](https://git.crosemont.qc.ca/fcad/core/fcad-core-2/commit/42e776f9af103490d58d067389d28223c61d7ee8))
|
|
@@ -15,8 +15,8 @@ export default defineConfig({
|
|
|
15
15
|
prev: 'Page précédente',
|
|
16
16
|
next: 'Page suivante'
|
|
17
17
|
},
|
|
18
|
-
darkModeSwitchTitle
|
|
19
|
-
lightModeSwitchTitle
|
|
18
|
+
darkModeSwitchTitle: 'Activer le thème sombre',
|
|
19
|
+
lightModeSwitchTitle: 'Activer le thème clair',
|
|
20
20
|
lastUpdated: {
|
|
21
21
|
text: 'Dernière modification ',
|
|
22
22
|
formatOptions: {
|
|
@@ -26,7 +26,7 @@ export default defineConfig({
|
|
|
26
26
|
},
|
|
27
27
|
search: {
|
|
28
28
|
provider: 'local',
|
|
29
|
-
options:{
|
|
29
|
+
options: {
|
|
30
30
|
locales: {
|
|
31
31
|
root: {
|
|
32
32
|
translations: {
|
|
@@ -42,7 +42,7 @@ export default defineConfig({
|
|
|
42
42
|
footer: {
|
|
43
43
|
selectText: 'accéder à la page',
|
|
44
44
|
navigateText: 'parcourir les résultats',
|
|
45
|
-
closeText: 'quitter la recherche'
|
|
45
|
+
closeText: 'quitter la recherche'
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -56,17 +56,24 @@ export default defineConfig({
|
|
|
56
56
|
{ text: 'Accueil', link: '/' },
|
|
57
57
|
{ text: 'Démarrage', link: '/demarrage' },
|
|
58
58
|
{ text: 'Composants', link: '/composants' },
|
|
59
|
-
{ text: 'Déploiement', link: '/deploiement' }
|
|
59
|
+
{ text: 'Déploiement', link: '/deploiement' }
|
|
60
60
|
// { text: 'Examples', link: '/markdown-examples' }
|
|
61
61
|
],
|
|
62
62
|
sidebar: [
|
|
63
|
-
{
|
|
63
|
+
{
|
|
64
|
+
text: 'Composants critiques',
|
|
64
65
|
collapsed: true,
|
|
65
66
|
items: [
|
|
66
67
|
{ text: 'app-base', link: '/composants_critiques/app-base' },
|
|
67
|
-
{
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
{
|
|
69
|
+
text: 'app-base-module',
|
|
70
|
+
link: '/composants_critiques/app-base-module'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
text: 'app-base-page',
|
|
74
|
+
link: '/composants_critiques/app-base-page'
|
|
75
|
+
},
|
|
76
|
+
{ text: 'main', link: '/composants_critiques/main' }
|
|
70
77
|
]
|
|
71
78
|
},
|
|
72
79
|
{
|
|
@@ -74,41 +81,111 @@ export default defineConfig({
|
|
|
74
81
|
collapsed: true,
|
|
75
82
|
items: [
|
|
76
83
|
{ text: 'app-base-button', link: '/composants/app-base-button' },
|
|
77
|
-
{
|
|
84
|
+
{
|
|
85
|
+
text: 'app-base-error-display',
|
|
86
|
+
link: '/composants/app-base-error-display'
|
|
87
|
+
},
|
|
78
88
|
{ text: 'app-base-popover', link: '/composants/app-base-popover' },
|
|
79
89
|
{ text: 'app-comp-audio', link: '/composants/app-comp-audio' },
|
|
80
|
-
{
|
|
81
|
-
|
|
90
|
+
{
|
|
91
|
+
text: 'app-comp-branch-buttons',
|
|
92
|
+
link: '/composants/app-comp-branch-buttons'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
text: 'app-comp-button-progress',
|
|
96
|
+
link: '/composants/app-comp-button-progress'
|
|
97
|
+
},
|
|
82
98
|
{ text: 'app-comp-carousel', link: '/composants/app-comp-carousel' },
|
|
83
|
-
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
{
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
99
|
+
{
|
|
100
|
+
text: 'app-comp-container',
|
|
101
|
+
link: '/composants/app-comp-container'
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
text: 'app-comp-input-checkbox-next',
|
|
105
|
+
link: '/composants/app-comp-input-checkbox-next'
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
text: 'app-comp-input-dropdown-next',
|
|
109
|
+
link: '/composants/app-comp-input-dropdown-next'
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
text: 'app-comp-input-radio-next',
|
|
113
|
+
link: '/composants/app-comp-input-radio-next'
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
text: 'app-comp-input-text-next',
|
|
117
|
+
link: '/composants/app-comp-input-text-next'
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
text: 'app-comp-input-text-table-next',
|
|
121
|
+
link: '/composants/app-comp-input-text-table-next'
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
text: 'app-comp-input-text-to-fill-dropdown-next',
|
|
125
|
+
link: '/composants/app-comp-input-text-to-fill-dropdown-next'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
text: 'app-comp-input-text-to-fill-next',
|
|
129
|
+
link: '/composants/app-comp-input-text-to-fill-next'
|
|
130
|
+
},
|
|
91
131
|
{ text: 'app-comp-jauge', link: '/composants/app-comp-jauge' },
|
|
132
|
+
{ text: 'app-comp-math', link: '/composants/app-comp-math' },
|
|
92
133
|
{ text: 'app-comp-menu', link: '/composants/app-comp-menu' },
|
|
93
|
-
{
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
{
|
|
134
|
+
{
|
|
135
|
+
text: 'app-comp-menu-item',
|
|
136
|
+
link: '/composants/app-comp-menu-item'
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
text: 'app-comp-navigation',
|
|
140
|
+
link: '/composants/app-comp-navigation'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
text: 'app-comp-note-call',
|
|
144
|
+
link: '/composants/app-comp-note-call'
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
text: 'app-comp-note-credit',
|
|
148
|
+
link: '/composants/app-comp-note-credit'
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
text: 'app-comp-play-bar-next',
|
|
152
|
+
link: '/composants/app-comp-play-bar-next'
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
text: 'app-comp-play-bar-progress',
|
|
156
|
+
link: '/composants/app-comp-play-bar-progress'
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
text: 'app-comp-pop-up-next',
|
|
160
|
+
link: '/composants/app-comp-pop-up-next'
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
text: 'app-comp-quiz-next',
|
|
164
|
+
link: '/composants/app-comp-quiz-next'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
text: 'app-comp-quiz-recall',
|
|
168
|
+
link: '/composants/app-comp-quiz-recall'
|
|
169
|
+
},
|
|
102
170
|
// { text: 'app-comp-settings-menu', link: '/composants/app-comp-settings-menu' },
|
|
103
171
|
{ text: 'app-comp-svg-next', link: '/composants/app-comp-svg-next' },
|
|
104
|
-
{
|
|
105
|
-
|
|
172
|
+
{
|
|
173
|
+
text: 'app-comp-table-of-content',
|
|
174
|
+
link: '/composants/app-comp-table-of-content'
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
text: 'app-comp-video-player',
|
|
178
|
+
link: '/composants/app-comp-video-player'
|
|
179
|
+
}
|
|
106
180
|
]
|
|
107
181
|
}
|
|
108
182
|
],
|
|
109
183
|
|
|
110
184
|
socialLinks: [
|
|
111
|
-
{
|
|
185
|
+
{
|
|
186
|
+
icon: 'gitlab',
|
|
187
|
+
link: 'https://git.crosemont.qc.ca/fcad/core/fcad-core-2'
|
|
188
|
+
}
|
|
112
189
|
]
|
|
113
190
|
}
|
|
114
191
|
})
|
package/package.json
CHANGED
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
-
"
|
|
2
|
+
"name": "fcad-core-dragon",
|
|
3
|
+
"version": "2.3.0-test.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./src/main.js",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">0.11.9"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "vite build",
|
|
12
|
+
"dev": "vite",
|
|
13
|
+
"docs:build": "vitepress build documentation",
|
|
14
|
+
"docs:dev": "vitepress dev documentation",
|
|
15
|
+
"docs:preview": "vitepress preview documentation",
|
|
16
|
+
"format": "prettier --write src/",
|
|
17
|
+
"lintfix": "eslint --fix src",
|
|
18
|
+
"lintreport": "eslint ./src",
|
|
19
|
+
"preview": "vite preview",
|
|
20
|
+
"reset": "rm -rf ./node_modules package-lock.json .cache dist && npm i && npm run watch",
|
|
21
|
+
"test-ct": "npx playwright test -c playwright-ct.config.js",
|
|
22
|
+
"test:unit": "vitest",
|
|
23
|
+
"test:unit:coverage": "vitest --coverage",
|
|
24
|
+
"vue": "vue",
|
|
25
|
+
"watch": "nodemon -e js,vue,html,json -x yalc publish --push"
|
|
9
26
|
},
|
|
10
27
|
"dependencies": {
|
|
11
28
|
"axios": "^1.6.8",
|
|
12
29
|
"gsap": "^3.12.5",
|
|
13
30
|
"idb": "^8.0.0",
|
|
31
|
+
"mathjs": "^15.1.0",
|
|
14
32
|
"mobile-detect": "^1.4.5",
|
|
15
33
|
"pinia": "^3.0.3",
|
|
16
34
|
"tiny-emitter": "^2.1.0",
|
|
@@ -19,14 +37,21 @@
|
|
|
19
37
|
"devDependencies": {
|
|
20
38
|
"@eslint/js": "^9.38.0",
|
|
21
39
|
"@pinia/testing": "^1.0.3",
|
|
22
|
-
"@playwright/experimental-ct-vue": "^1.
|
|
23
|
-
"@playwright/test": "^1.
|
|
40
|
+
"@playwright/experimental-ct-vue": "^1.50.1",
|
|
41
|
+
"@playwright/test": "^1.50.1",
|
|
42
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
43
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
44
|
+
"@semantic-release/git": "^10.0.1",
|
|
45
|
+
"@semantic-release/gitlab": "^13.3.2",
|
|
46
|
+
"@semantic-release/npm": "^12.0.2",
|
|
47
|
+
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
24
48
|
"@testing-library/jest-dom": "^6.9.1",
|
|
25
|
-
"@types/node": "^
|
|
49
|
+
"@types/node": "^22.10.0",
|
|
26
50
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
27
|
-
"@vitest/coverage-v8": "^
|
|
51
|
+
"@vitest/coverage-v8": "^3.0.0",
|
|
28
52
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
29
53
|
"@vue/test-utils": "^2.4.6",
|
|
54
|
+
"esbuild": "0.25.12",
|
|
30
55
|
"eslint": "^9.38.0",
|
|
31
56
|
"eslint-plugin-cypress": "^5.1.0",
|
|
32
57
|
"eslint-plugin-vue": "~10.3.0",
|
|
@@ -36,35 +61,24 @@
|
|
|
36
61
|
"nodemon": "^3.1.0",
|
|
37
62
|
"prettier": "^3.6.2",
|
|
38
63
|
"sass-embedded": "^1.91.0",
|
|
64
|
+
"vite": "^6.0.1",
|
|
39
65
|
"vitepress": "^1.6.3",
|
|
40
|
-
"vitest": "^
|
|
66
|
+
"vitest": "^3.0.0",
|
|
41
67
|
"vue-i18n": "^11.1.12",
|
|
42
68
|
"vue-router": "^4.4.5",
|
|
43
69
|
"vuetify": "^3.10.10"
|
|
44
70
|
},
|
|
45
|
-
"
|
|
46
|
-
"
|
|
71
|
+
"overrides": {
|
|
72
|
+
"esbuild": "0.25.12",
|
|
73
|
+
"vite": "^6.0.1",
|
|
74
|
+
"@vitejs/plugin-vue": "^6.0.1"
|
|
47
75
|
},
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
"docs:preview": "vitepress preview documentation",
|
|
57
|
-
"format": "prettier --write src/",
|
|
58
|
-
"lintfix": "eslint --fix src",
|
|
59
|
-
"lintreport": "eslint ./src",
|
|
60
|
-
"preview": "vite preview",
|
|
61
|
-
"reset": "rm -rf ./node_modules package-lock.json .cache dist && npm i && npm run watch",
|
|
62
|
-
"test-ct": "playwright test -c playwright-ct.config.js",
|
|
63
|
-
"test:unit": "vitest",
|
|
64
|
-
"test:unit:coverage": "vitest --coverage",
|
|
65
|
-
"vue": "vue",
|
|
66
|
-
"watch": "nodemon -e js,vue,html,json -x yalc publish --push"
|
|
67
|
-
},
|
|
68
|
-
"type": "module",
|
|
69
|
-
"version": "2.2.0"
|
|
76
|
+
"browserslist": [
|
|
77
|
+
"> 1%",
|
|
78
|
+
"last 2 versions",
|
|
79
|
+
"not dead"
|
|
80
|
+
],
|
|
81
|
+
"config": {
|
|
82
|
+
"projname": ""
|
|
83
|
+
}
|
|
70
84
|
}
|
|
@@ -131,6 +131,7 @@ export default {
|
|
|
131
131
|
'getRouteHistory',
|
|
132
132
|
'getBookmarkEnabled',
|
|
133
133
|
'getAppDebugMode',
|
|
134
|
+
'getLessonPosition',
|
|
134
135
|
'getApplicationSettings'
|
|
135
136
|
]),
|
|
136
137
|
appDebugMode() {
|
|
@@ -373,6 +374,10 @@ export default {
|
|
|
373
374
|
|
|
374
375
|
setInitialLoadingDone() {
|
|
375
376
|
this.initialLoading = false
|
|
377
|
+
if (this.bookmarkActive) {
|
|
378
|
+
const bookmark = this.getLessonPosition[0]
|
|
379
|
+
this.$router.push({ name: bookmark })
|
|
380
|
+
} // navigate to menu to start the app
|
|
376
381
|
},
|
|
377
382
|
/**
|
|
378
383
|
* @description set the desired language for the app default is french
|
|
@@ -774,6 +779,14 @@ export default {
|
|
|
774
779
|
|
|
775
780
|
return history.toReversed()
|
|
776
781
|
})(),
|
|
782
|
+
savedPoint: (() =>
|
|
783
|
+
this.$route.name == 'menu'
|
|
784
|
+
? this.$helper.getRoutesFromVueRouter().meta.children[0]
|
|
785
|
+
._namedRoute
|
|
786
|
+
: this.$route.name)(),
|
|
787
|
+
playbarValues: {
|
|
788
|
+
...this.getMediaPlaybarValues()
|
|
789
|
+
},
|
|
777
790
|
...lessonsData
|
|
778
791
|
}
|
|
779
792
|
}
|
|
@@ -783,21 +796,7 @@ export default {
|
|
|
783
796
|
|
|
784
797
|
const endStmt = { ...stmt }
|
|
785
798
|
endStmt.verb = 'terminated'
|
|
786
|
-
|
|
787
|
-
//Creating custom statement
|
|
788
|
-
const stmtPlaybar = {
|
|
789
|
-
verb: 'played',
|
|
790
|
-
definition: text,
|
|
791
|
-
description: text,
|
|
792
|
-
extensions: [
|
|
793
|
-
{
|
|
794
|
-
id: 'playbar-values',
|
|
795
|
-
content: {
|
|
796
|
-
...this.getMediaPlaybarValues()
|
|
797
|
-
}
|
|
798
|
-
}
|
|
799
|
-
]
|
|
800
|
-
}
|
|
799
|
+
|
|
801
800
|
//================================STATEMENT FOR THE SETTINGS ===============================================
|
|
802
801
|
|
|
803
802
|
//Creating custom statement
|
|
@@ -815,19 +814,12 @@ export default {
|
|
|
815
814
|
content: {
|
|
816
815
|
...this.getApplicationSettings
|
|
817
816
|
}
|
|
818
|
-
// content: {
|
|
819
|
-
// bookmark: false
|
|
820
|
-
// } //for testing
|
|
821
817
|
}
|
|
822
818
|
]
|
|
823
819
|
}
|
|
824
820
|
//================================END STATEMENT ===============================================
|
|
825
821
|
|
|
826
|
-
this.sendXapiStatements(
|
|
827
|
-
[stmtPlaybar, stmtUserSettings, stmt, endStmt],
|
|
828
|
-
null,
|
|
829
|
-
option
|
|
830
|
-
) //send xapi statement
|
|
822
|
+
this.sendXapiStatements([stmtUserSettings, stmt, endStmt], null, option) //send xapi statement
|
|
831
823
|
|
|
832
824
|
if (this.appTimer.getTimerState() === 'started')
|
|
833
825
|
setTimeout(() => this.stopAppTimer(), 0) //clear the timer
|
|
@@ -881,14 +873,6 @@ export default {
|
|
|
881
873
|
...baseStmt,
|
|
882
874
|
verb: 'terminated',
|
|
883
875
|
extensions: [
|
|
884
|
-
{
|
|
885
|
-
id: 'ending-point',
|
|
886
|
-
content: (() =>
|
|
887
|
-
this.$route.name == 'menu'
|
|
888
|
-
? this.$helper.getRoutesFromVueRouter().meta.children[0]
|
|
889
|
-
._namedRoute
|
|
890
|
-
: this.$route.name)()
|
|
891
|
-
},
|
|
892
876
|
{
|
|
893
877
|
id: 'user-data',
|
|
894
878
|
content: new Object()
|
|
@@ -926,51 +910,21 @@ export default {
|
|
|
926
910
|
const fetchData = async () => {
|
|
927
911
|
//funtion that will make a multiple request on the server
|
|
928
912
|
const requests = async () => {
|
|
929
|
-
const _url = new URL(activityId)
|
|
930
|
-
const parentID = `${_url.origin}/${this.getModuleInfo.courseID}` // redefining activity id for statement
|
|
931
|
-
|
|
932
913
|
const lessonProgressParam = { email: actorMbox, activityId }
|
|
933
914
|
const lessonStateParam = {
|
|
934
915
|
email: actorMbox,
|
|
935
916
|
activityId,
|
|
936
917
|
verb: 'suspended'
|
|
937
918
|
}
|
|
938
|
-
const lessonPosionParam = {
|
|
939
|
-
email: actorMbox,
|
|
940
|
-
activityId
|
|
941
|
-
}
|
|
942
|
-
const playbarParam = {
|
|
943
|
-
email: actorMbox,
|
|
944
|
-
activityId,
|
|
945
|
-
verb: 'played'
|
|
946
|
-
}
|
|
947
|
-
const preferencesParam = {
|
|
948
|
-
email: actorMbox,
|
|
949
|
-
activityId: parentID,
|
|
950
|
-
verb: 'preferred'
|
|
951
|
-
}
|
|
952
919
|
|
|
953
|
-
const fetchParams = [
|
|
954
|
-
lessonProgressParam,
|
|
955
|
-
lessonStateParam,
|
|
956
|
-
lessonPosionParam,
|
|
957
|
-
playbarParam,
|
|
958
|
-
preferencesParam
|
|
959
|
-
]
|
|
920
|
+
const fetchParams = [lessonProgressParam, lessonStateParam]
|
|
960
921
|
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
userData,
|
|
964
|
-
savedPoint,
|
|
965
|
-
preferredSettings,
|
|
966
|
-
playbarValues,
|
|
967
|
-
lessonStatus
|
|
968
|
-
} = await this.$xapi._getBulkData(fetchParams)
|
|
922
|
+
const { userData, savedPoint, playbarValues, lessonStatus } =
|
|
923
|
+
await this.$xapi._getBulkData(fetchParams)
|
|
969
924
|
|
|
970
925
|
return {
|
|
971
926
|
userData,
|
|
972
927
|
savedPoint,
|
|
973
|
-
preferredSettings,
|
|
974
928
|
playbarValues,
|
|
975
929
|
lessonStatus
|
|
976
930
|
}
|
|
@@ -29,8 +29,6 @@
|
|
|
29
29
|
/>
|
|
30
30
|
</nav>
|
|
31
31
|
<base-module :m-data="$data">
|
|
32
|
-
|
|
33
|
-
|
|
34
32
|
<v-container
|
|
35
33
|
id="wrapper-content"
|
|
36
34
|
fluid
|
|
@@ -440,7 +438,6 @@ export default {
|
|
|
440
438
|
this.getConnectionInfo.remote
|
|
441
439
|
) {
|
|
442
440
|
const lessonPosition = this.getLessonPosition
|
|
443
|
-
|
|
444
441
|
const lastReached = lessonPosition.length ? lessonPosition[0] : ''
|
|
445
442
|
|
|
446
443
|
//only Send savepoint statement when 3 navigation happen and the route is different from last saved
|
|
@@ -1067,17 +1064,15 @@ export default {
|
|
|
1067
1064
|
this.nextOnboarding('message_1')
|
|
1068
1065
|
} catch (e) {
|
|
1069
1066
|
//fetch default values for popups
|
|
1070
|
-
this.onboardingMessages =
|
|
1071
|
-
'../assets/data/onboardingMessages.json'
|
|
1072
|
-
)
|
|
1067
|
+
this.onboardingMessages =
|
|
1068
|
+
import('../assets/data/onboardingMessages.json')
|
|
1073
1069
|
this.nextOnboarding('message_1')
|
|
1074
1070
|
}
|
|
1075
1071
|
}
|
|
1076
1072
|
} else {
|
|
1077
1073
|
if (this.getOnboardingEnabled) {
|
|
1078
|
-
this.onboardingMessages =
|
|
1079
|
-
'../assets/data/onboardingMessages.json'
|
|
1080
|
-
)
|
|
1074
|
+
this.onboardingMessages =
|
|
1075
|
+
import('../assets/data/onboardingMessages.json')
|
|
1081
1076
|
this.nextOnboarding('message_1')
|
|
1082
1077
|
}
|
|
1083
1078
|
}
|
|
@@ -1421,7 +1416,21 @@ export default {
|
|
|
1421
1416
|
{
|
|
1422
1417
|
id: 'user-data',
|
|
1423
1418
|
content: {
|
|
1424
|
-
routeHistory:
|
|
1419
|
+
routeHistory: (() => {
|
|
1420
|
+
const history = this.getRouteHistory.toReversed() //get the route history from the last
|
|
1421
|
+
|
|
1422
|
+
history[0] = this.$route.meta // change the last recored route to the current route
|
|
1423
|
+
|
|
1424
|
+
return history.toReversed()
|
|
1425
|
+
})(),
|
|
1426
|
+
savedPoint: (() =>
|
|
1427
|
+
this.$route.name == 'menu'
|
|
1428
|
+
? this.$helper.getRoutesFromVueRouter().meta.children[0]
|
|
1429
|
+
._namedRoute
|
|
1430
|
+
: this.$route.name)(),
|
|
1431
|
+
playbarValues: {
|
|
1432
|
+
...this.getMediaPlaybarValues()
|
|
1433
|
+
},
|
|
1425
1434
|
...lessonsData
|
|
1426
1435
|
}
|
|
1427
1436
|
}
|
|
@@ -1469,7 +1478,21 @@ export default {
|
|
|
1469
1478
|
{
|
|
1470
1479
|
id: 'user-data',
|
|
1471
1480
|
content: {
|
|
1472
|
-
routeHistory:
|
|
1481
|
+
routeHistory: (() => {
|
|
1482
|
+
const history = this.getRouteHistory.toReversed() //get the route history from the last
|
|
1483
|
+
|
|
1484
|
+
history[0] = this.$route.meta // change the last recored route to the current route
|
|
1485
|
+
|
|
1486
|
+
return history.toReversed()
|
|
1487
|
+
})(),
|
|
1488
|
+
savedPoint: (() =>
|
|
1489
|
+
this.$route.name == 'menu'
|
|
1490
|
+
? this.$helper.getRoutesFromVueRouter().meta.children[0]
|
|
1491
|
+
._namedRoute
|
|
1492
|
+
: this.$route.name)(),
|
|
1493
|
+
playbarValues: {
|
|
1494
|
+
...this.getMediaPlaybarValues()
|
|
1495
|
+
},
|
|
1473
1496
|
...lessonsData
|
|
1474
1497
|
}
|
|
1475
1498
|
}
|