UNCLASSIFIED
Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
Platform One
P
Party Bus
Launchboard
launchboard-fe
Commits
364dd6fe
Commit
364dd6fe
authored
Aug 18, 2021
by
luke.glasscock
Committed by
graham.smith
Aug 18, 2021
Browse files
BULL-797: Update unit test
parent
02a57f2a
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
386 additions
and
650 deletions
+386
-650
package-lock.json
package-lock.json
+308
-113
package.json
package.json
+2
-0
public/static/docs/(U) Platform One_Party Bus Survival Guide (27 August 2020).pdf
...latform One_Party Bus Survival Guide (27 August 2020).pdf
+0
-0
src/api/http-common.js
src/api/http-common.js
+15
-2
src/api/mock-http-common.js
src/api/mock-http-common.js
+0
-9
src/api/services/admin.js
src/api/services/admin.js
+1
-1
src/api/services/project.js
src/api/services/project.js
+1
-1
src/api/services/schedule.js
src/api/services/schedule.js
+1
-1
src/api/services/status.js
src/api/services/status.js
+0
-9
src/api/services/team.js
src/api/services/team.js
+6
-6
src/api/services/training.js
src/api/services/training.js
+4
-8
src/api/services/user.js
src/api/services/user.js
+2
-2
src/components/AllCurriculumSchedule.vue
src/components/AllCurriculumSchedule.vue
+0
-106
src/components/Dialogs/DialogComponents/UserSelectForCourse.vue
...mponents/Dialogs/DialogComponents/UserSelectForCourse.vue
+3
-4
src/components/InstructorCourses.vue
src/components/InstructorCourses.vue
+0
-107
src/components/PersonnelTable.vue
src/components/PersonnelTable.vue
+1
-2
src/components/ProjectsSummary.vue
src/components/ProjectsSummary.vue
+2
-4
src/components/RemainingSeats.vue
src/components/RemainingSeats.vue
+0
-81
src/components/SystemStatusSummary.vue
src/components/SystemStatusSummary.vue
+0
-175
src/router/routes.js
src/router/routes.js
+40
-19
No files found.
package-lock.json
View file @
364dd6fe
...
@@ -295,22 +295,41 @@
...
@@ -295,22 +295,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"semver": {
"semver": {
...
@@ -4149,16 +4168,24 @@
...
@@ -4149,16 +4168,24 @@
}
}
},
},
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"cacache": {
"cacache": {
...
@@ -4201,13 +4228,12 @@
...
@@ -4201,13 +4228,12 @@
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
"dev": true
},
},
"chalk": {
"chalk": {
"version": "4.1.
1
",
"version": "4.1.
2
",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.
1
.tgz",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.
2
.tgz",
"integrity": "sha512-
diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg
==",
"integrity": "sha512-
oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA
==",
"dev": true,
"dev": true,
"optional": true,
"optional": true,
"requires": {
"requires": {
...
@@ -4241,6 +4267,12 @@
...
@@ -4241,6 +4267,12 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
"dev": true
},
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"fs-extra": {
"fs-extra": {
"version": "7.0.1",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
...
@@ -4292,6 +4324,12 @@
...
@@ -4292,6 +4324,12 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
"dev": true
},
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
},
"p-map": {
"p-map": {
"version": "3.0.0",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
...
@@ -4367,9 +4405,9 @@
...
@@ -4367,9 +4405,9 @@
}
}
},
},
"vue-loader-v16": {
"vue-loader-v16": {
"version": "npm:vue-loader@16.
3.3
",
"version": "npm:vue-loader@16.
5.0
",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.
3.3
.tgz",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.
5.0
.tgz",
"integrity": "sha512-
/1GzCuQ6MRORbC+leKTKoTGtpQt60bYe0gDGEextSteA2OM+v201FPha5jzmjQzVhRcwieZeUvezAtG5a/e5cw
==",
"integrity": "sha512-
WXh+7AgFxGTgb5QAkQtFeUcHNIEq3PGVQ8WskY5ZiFbWBkOwcCPRs4w/2tVyTbh2q6TVRlO3xfvIukUtjsu62A
==",
"dev": true,
"dev": true,
"optional": true,
"optional": true,
"requires": {
"requires": {
...
@@ -5089,26 +5127,38 @@
...
@@ -5089,26 +5127,38 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.7
1
"
"node-releases": "^1.1.7
3
"
},
},
"dependencies": {
"dependencies": {
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.300012
23
",
"version": "1.0.300012
48
",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.300012
23
.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.300012
48
.tgz",
"integrity": "sha512-
k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA
==",
"integrity": "sha512-
NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw
==",
"dev": true
"dev": true
}
}
}
}
},
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
},
"postcss": {
"postcss": {
"version": "7.0.36",
"version": "7.0.36",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
...
@@ -6146,25 +6196,37 @@
...
@@ -6146,25 +6196,37 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.7
1
"
"node-releases": "^1.1.7
3
"
},
},
"dependencies": {
"dependencies": {
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.300012
23
",
"version": "1.0.300012
48
",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.300012
23
.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.300012
48
.tgz",
"integrity": "sha512-
k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA
==",
"integrity": "sha512-
NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw
==",
"dev": true
"dev": true
}
}
}
}
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
}
}
}
}
},
},
...
@@ -7189,22 +7251,41 @@
...
@@ -7189,22 +7251,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"semver": {
"semver": {
...
@@ -8965,12 +9046,6 @@
...
@@ -8965,12 +9046,6 @@
"integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
"integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
"dev": true
"dev": true
},
},
"electron-to-chromium": {
"version": "1.3.727",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz",
"integrity": "sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==",
"dev": true
},
"elegant-spinner": {
"elegant-spinner": {
"version": "1.0.1",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
"resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
...
@@ -14333,12 +14408,6 @@
...
@@ -14333,12 +14408,6 @@
"integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
"integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
"dev": true
"dev": true
},
},
"node-releases": {
"version": "1.1.71",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
"integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==",
"dev": true
},
"nopt": {
"nopt": {
"version": "5.0.0",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
...
@@ -14783,6 +14852,18 @@
...
@@ -14783,6 +14852,18 @@
"dev": true,
"dev": true,
"requires": {
"requires": {
"url-parse": "^1.4.3"
"url-parse": "^1.4.3"
},
"dependencies": {
"url-parse": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
"integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
}
}
}
},
},
"os-browserify": {
"os-browserify": {
...
@@ -15223,22 +15304,41 @@
...
@@ -15223,22 +15304,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001244",
"version": "1.0.30001244",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001244.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001244.tgz",
"integrity": "sha512-Wb4UFZPkPoJoKKVfELPWytRzpemjP/s0pe22NriANru1NoI+5bGNxzKtk7edYL8rmCWTfQO8eRiF0pn1Dqzx7Q==",
"integrity": "sha512-Wb4UFZPkPoJoKKVfELPWytRzpemjP/s0pe22NriANru1NoI+5bGNxzKtk7edYL8rmCWTfQO8eRiF0pn1Dqzx7Q=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -15601,22 +15701,41 @@
...
@@ -15601,22 +15701,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -15745,22 +15864,41 @@
...
@@ -15745,22 +15864,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -16205,22 +16343,41 @@
...
@@ -16205,22 +16343,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -16387,22 +16544,41 @@
...
@@ -16387,22 +16544,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -17708,9 +17884,9 @@
...
@@ -17708,9 +17884,9 @@
},
},
"dependencies": {
"dependencies": {
"path-parse": {
"path-parse": {
"version": "1.0.
6
",
"version": "1.0.
7
",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
6
.tgz",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.
7
.tgz",
"integrity": "sha512-
GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOz
w==",
"integrity": "sha512-
LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8s
w==",
"dev": true
"dev": true
}
}
}
}
...
@@ -18425,6 +18601,16 @@
...
@@ -18425,6 +18601,16 @@
"requires": {
"requires": {
"websocket-driver": ">=0.5.1"
"websocket-driver": ">=0.5.1"
}
}
},
"url-parse": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
"integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
}
}
}
}
},
},
...
@@ -18894,22 +19080,41 @@
...
@@ -18894,22 +19080,41 @@
},
},
"dependencies": {
"dependencies": {
"browserslist": {
"browserslist": {
"version": "4.16.
6
",
"version": "4.16.
7
",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
6
.tgz",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.
7
.tgz",
"integrity": "sha512-
Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ
==",
"integrity": "sha512-
7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA
==",
"dev": true,
"dev": true,
"requires": {
"requires": {
"caniuse-lite": "^1.0.300012
19
",
"caniuse-lite": "^1.0.300012
48
",
"colorette": "^1.2.2",
"colorette": "^1.2.2",
"electron-to-chromium": "^1.3.7
2
3",
"electron-to-chromium": "^1.3.7
9
3",
"escalade": "^3.1.1",
"escalade": "^3.1.1",
"node-releases": "^1.1.71"
"node-releases": "^1.1.73"
},
"dependencies": {
"caniuse-lite": {
"version": "1.0.30001248",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
"integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==",
"dev": true
}
}
}
},
},
"caniuse-lite": {
"caniuse-lite": {
"version": "1.0.30001223",
"version": "1.0.30001223",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001223.tgz",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA==",
"integrity": "sha512-k/RYs6zc/fjbxTjaWZemeSmOjO0JJV+KguOBA3NwPup8uzxM1cMhR2BD9XmO86GuqaqTCO8CgkgH9Rz//vdDiA=="
},
"electron-to-chromium": {
"version": "1.3.795",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz",
"integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==",
"dev": true
},
"node-releases": {
"version": "1.1.73",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
"dev": true
"dev": true
},
},
"postcss": {
"postcss": {
...
@@ -20461,16 +20666,6 @@
...
@@ -20461,16 +20666,6 @@
"schema-utils": "^2.5.0"
"schema-utils": "^2.5.0"
}
}
},
},
"url-parse": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz",
"integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==",
"dev": true,
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
}
},
"use": {
"use": {
"version": "3.1.1",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
...
...
package.json
View file @
364dd6fe
...
@@ -161,11 +161,13 @@
...
@@ -161,11 +161,13 @@
"minimist"
:
"^1.2.5"
,
"minimist"
:
"^1.2.5"
,
"node-notifier"
:
"^9.0.0"
,
"node-notifier"
:
"^9.0.0"
,
"normalize-url"
:
"^4.5.1"
,
"normalize-url"
:
"^4.5.1"
,
"path-parse"
:
"^1.0.7"
,
"postcss"
:
"^7.0.36"
,
"postcss"
:
"^7.0.36"
,
"serialize-javascript"
:
"^3.1.0"
,
"serialize-javascript"
:
"^3.1.0"
,
"sockjs"
:
"^0.3.21"
,
"sockjs"
:
"^0.3.21"
,
"ssri"
:
"^8.0.1"
,
"ssri"
:
"^8.0.1"
,
"trim-newlines"
:
"^3.0.0"
,
"trim-newlines"
:
"^3.0.0"
,
"url-parse"
:
"^1.5.3"
,
"y18n"
:
"^5.0.5"
,
"y18n"
:
"^5.0.5"
,
"yargs-parser"
:
"^18.1.3"
,
"yargs-parser"
:
"^18.1.3"
,
"ws"
:
"^7.4.6"
"ws"
:
"^7.4.6"
...
...
public/static/docs/(U) Platform One_Party Bus Survival Guide (27 August 2020).pdf
deleted
100644 → 0
View file @
02a57f2a
File deleted
src/api/http-common.js
View file @
364dd6fe
...
@@ -8,5 +8,18 @@ export const createBaseHttp = () => {
...
@@ -8,5 +8,18 @@ export const createBaseHttp = () => {
};
};
export
const
HTTP
=
createBaseHttp
();
export
const
HTTP
=
createBaseHttp
();
HTTP
.
interceptors
.
response
.
use
(
HTTP
.
interceptors
.
response
.
use
((
response
)
=>
response
?.
data
?.
result
);
function
(
response
)
{
return
response
?.
data
?.
result
;
},
function
(
err
)
{
// If err.status does not exist a general networking error occurred.
// We'll assume that their keycloak session has expired, so refresh the
// page which will redirect them to login
if
(
!
err
.
status
)
{
location
.
reload
();
}
else
{
throw
err
;
}
}
);
src/api/mock-http-common.js
deleted
100644 → 0
View file @
02a57f2a
import
axios
from
"
axios
"
;
// TODO: the goal is to be able to delete this file - this is only temporary
// until the backend has the necessary REST endpoints and the frontend has
// been updated to call them
export
const
HTTP
=
axios
.
create
({
baseURL
:
"
/static/mock-data
"
,
});
src/api/services/admin.js
View file @
364dd6fe
...
@@ -2,6 +2,6 @@ import { HTTP } from "@/api/http-common";
...
@@ -2,6 +2,6 @@ import { HTTP } from "@/api/http-common";
export
default
{
export
default
{
async
capacityMetrics
(
params
)
{
async
capacityMetrics
(
params
)
{
return
await
HTTP
.
get
(
"
/admin/capacity-metrics
"
,
{
params
});
return
HTTP
.
get
(
"
/admin/capacity-metrics
"
,
{
params
});
},
},
};
};
src/api/services/project.js
View file @
364dd6fe
...
@@ -2,7 +2,7 @@ import { HTTP } from "@/api/http-common";
...
@@ -2,7 +2,7 @@ import { HTTP } from "@/api/http-common";
export
default
{
export
default
{
async
getProjectsSummary
()
{
async
getProjectsSummary
()
{
return
await
HTTP
.
get
(
return
HTTP
.
get
(
"
/gitlab/projects-with-jobs-and-pipelines-for-logged-in-user
"
"
/gitlab/projects-with-jobs-and-pipelines-for-logged-in-user
"
);
);
},
},
...
...
src/api/services/schedule.js
View file @
364dd6fe
...
@@ -5,7 +5,7 @@ const defaultCertificateFileName = "certificate.pdf";
...
@@ -5,7 +5,7 @@ const defaultCertificateFileName = "certificate.pdf";
export
default
{
export
default
{
defaultCertificateFileName
,
defaultCertificateFileName
,
async
getScheduleForUser
()
{
async
getScheduleForUser
()
{
return
await
HTTP
.
get
(
"
/courses/my-registrations
"
);
return
HTTP
.
get
(
"
/courses/my-registrations
"
);
},
},
async
downloadCertificate
(
courseId
,
userId
)
{
async
downloadCertificate
(
courseId
,
userId
)
{
const
certificateHTTP
=
createBaseHttp
();
const
certificateHTTP
=
createBaseHttp
();
...
...
src/api/services/status.js
deleted
100644 → 0
View file @
02a57f2a
import
get
from
"
lodash/get
"
;
import
{
HTTP
}
from
"
@/api/mock-http-common
"
;
export
default
{
async
getStatusSummary
()
{
const
response
=
await
HTTP
.
get
(
`status.json`
);
return
get
(
response
,
"
data.result
"
);
},
};
src/api/services/team.js
View file @
364dd6fe
...
@@ -9,13 +9,13 @@ const getTeamMemberBody = (users) => {
...
@@ -9,13 +9,13 @@ const getTeamMemberBody = (users) => {
export
default
{
export
default
{
async
getMyTeam
()
{
async
getMyTeam
()
{
return
await
HTTP
.
get
(
"
/teams/my-teams
"
);
return
HTTP
.
get
(
"
/teams/my-teams
"
);
},
},
async
getTeams
(
params
)
{
async
getTeams
(
params
)
{
return
await
HTTP
.
get
(
"
/teams
"
,
{
params
});
return
HTTP
.
get
(
"
/teams
"
,
{
params
});
},
},
async
getTeam
(
teamId
)
{
async
getTeam
(
teamId
)
{
return
await
HTTP
.
get
(
`/teams/
${
teamId
}
`
,
{
return
HTTP
.
get
(
`/teams/
${
teamId
}
`
,
{
params
:
{
members
:
true
},
params
:
{
members
:
true
},
});
});
},
},
...
@@ -23,11 +23,11 @@ export default {
...
@@ -23,11 +23,11 @@ export default {
await
HTTP
.
delete
(
"
/teams
"
,
{
params
:
{
teamIds
:
`[
${
teamIds
.
join
()}
]`
}
});
await
HTTP
.
delete
(
"
/teams
"
,
{
params
:
{
teamIds
:
`[
${
teamIds
.
join
()}
]`
}
});
},
},
async
addTeam
(
team
)
{
async
addTeam
(
team
)
{
return
await
HTTP
.
post
(
"
/teams
"
,
team
);
return
HTTP
.
post
(
"
/teams
"
,
team
);
},
},
async
addTeams
(
newTeams
)
{
async
addTeams
(
newTeams
)
{
for
(
let
i
=
0
;
i
<
newTeams
.
length
;
i
++
)
{
for
(
const
newTeam
of
newTeams
)
{
await
this
.
addTeam
(
newTeam
s
[
i
]
);
await
this
.
addTeam
(
newTeam
);
}
}
},
},
...
...
src/api/services/training.js
View file @
364dd6fe
...
@@ -68,22 +68,18 @@ export default {
...
@@ -68,22 +68,18 @@ export default {
window
.
open
(
"
/api/courses/export
"
);
window
.
open
(
"
/api/courses/export
"
);
},
},
async
getCourseRegistrationsById
(
courseId
,
params
)
{
async
getCourseRegistrationsById
(
courseId
,
params
)
{
const
response
=
await
HTTP
.
get
(
`/courses/
${
courseId
}
/registrations`
,
{
return
HTTP
.
get
(
`/courses/
${
courseId
}
/registrations`
,
{
params
,
params
,
});
});
return
response
;
},
},
async
setUserAttendance
(
courseId
,
body
)
{
async
setUserAttendance
(
courseId
,
body
)
{
return
await
HTTP
.
put
(
return
HTTP
.
put
(
`/courses/
${
courseId
}
/registrations/attendance`
,
body
);
`/courses/
${
courseId
}
/registrations/attendance`
,
body
);
},
},
async
setCourseRegistrationsByUserId
(
courseId
,
userId
,
body
)
{
async
setCourseRegistrationsByUserId
(
courseId
,
userId
,
body
)
{
return
await
HTTP
.
put
(
`/courses/
${
courseId
}
/registrations/
${
userId
}
`
,
body
);
return
HTTP
.
put
(
`/courses/
${
courseId
}
/registrations/
${
userId
}
`
,
body
);
},
},
async
removeCourseRegistrationsByUserId
(
courseId
,
userId
)
{
async
removeCourseRegistrationsByUserId
(
courseId
,
userId
)
{
return
await
HTTP
.
delete
(
`/courses/
${
courseId
}
/registrations/
${
userId
}
`
);
return
HTTP
.
delete
(
`/courses/
${
courseId
}
/registrations/
${
userId
}
`
);
},
},
async
removeCourseRegistrationsByUsers
(
courseId
,
registrations
)
{
async
removeCourseRegistrationsByUsers
(
courseId
,
registrations
)
{
for
(
const
registration
of
registrations
)
{
for
(
const
registration
of
registrations
)
{
...
...
src/api/services/user.js
View file @
364dd6fe
...
@@ -2,10 +2,10 @@ import { HTTP } from "@/api/http-common";
...
@@ -2,10 +2,10 @@ import { HTTP } from "@/api/http-common";
export
default
{
export
default
{
async
getUser
()
{
async
getUser
()
{
return
await
HTTP
.
get
(
"
/whoami
"
);
return
HTTP
.
get
(
"
/whoami
"
);
},
},
async
search
(
params
)
{
async
search
(
params
)
{
return
await
HTTP
.
get
(
"
/users
"
,
{
params
});
return
HTTP
.
get
(
"
/users
"
,
{
params
});
},
},
async
getUsersByPersonnelType
(
params
)
{
async
getUsersByPersonnelType
(
params
)
{
return
this
.
search
(
params
);
return
this
.
search
(
params
);
...
...
src/components/AllCurriculumSchedule.vue
deleted
100644 → 0
View file @
02a57f2a
<
template
>
<v-container
class=
"my-courses text-left px-2"
>
<v-skeleton-loader
:loading=
"loading"
type=
"paragraph@5"
class=
"w-100"
>
<ErrorMessage
v-if=
"error"
v-bind:errorMessage=
"errorMessage"
/>
<v-card
v-if=
"emptyString"
>
<v-card-title
>
There currently are no current or upcoming courses.
</v-card-title
>
<v-card-text
>
Courses in progress or upcoming will appear here.
</v-card-text
>
</v-card>
<v-container
class=
"px-6"
v-else
>
<div
v-for=
"(item, index) in schedule"
:key=
"index"
:class=
"
{ last: index == schedule.length - 1 }"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
class=
"dot dot-white"
></div>
<div
v-else
class=
"dot dot-green"
></div>
<div
class=
"d-flex col-12 py-0 class-container"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
class=
"dot-border dot-border-white col-1 d-inline-block"
></div>
<div
v-else
class=
"dot-border dot-border-green col-1 d-inline-block"
></div>
<div
class=
"col-sm col-3 d-inline-block d-flex align-start class-name"
>
{{
item
.
name
}}
</div>
<div
class=
"col-sm col-4 d-inline-block resText"
>
{{
item
.
startDate
}}
-
{{
item
.
endDate
}}
</div>
<div
class=
"col-sm col-4 d-inline-block resText"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
>
In Progress
</div>
<div
v-else
>
{{
seatsRemaining
(
item
.
capacity
,
item
.
registeredCount
)
}}
remaining seats
</div>
</div>
</div>
</div>
</v-container>
</v-skeleton-loader>
</v-container>
</
template
>
<
script
>
import
TrainingService
from
"
@/api/services/training
"
;
import
moment
from
"
moment
"
;
import
{
SET_ERROR_MESSAGE
}
from
"
@/store/mutation-types
"
;
import
ErrorMessage
from
"
@/components/APIErrorCard
"
;
export
default
{
components
:
{
ErrorMessage
,
},
data
:
()
=>
({
loading
:
false
,
schedule
:
[],
emptyString
:
false
,
errorMessage
:
null
,
error
:
false
,
}),
async
mounted
()
{
this
.
params
=
{
registeredCount
:
true
,
dateFrom
:
`
${
moment
().
format
(
"
YYYY-MM-DD
"
)}
`
,
dateTo
:
`
${
moment
().
add
(
6
,
"
months
"
).
format
(
"
YYYY-MM-DD
"
)}
`
,
sort
:
"
startDate
"
,
};
try
{
this
.
loading
=
true
;
const
response
=
await
TrainingService
.
getCourses
(
this
.
params
);
this
.
schedule
=
response
.
courses
;
if
(
this
.
schedule
.
length
===
0
)
{
this
.
emptyString
=
true
;
}
}
catch
(
error
)
{
this
.
error
=
true
;
this
.
$store
.
commit
(
SET_ERROR_MESSAGE
,
error
);
this
.
errorMessage
=
error
;
}
finally
{
this
.
loading
=
false
;
}
},
methods
:
{
inDateRange
(
startDate
,
endDate
)
{
return
moment
().
isBetween
(
startDate
,
endDate
);
},
seatsRemaining
(
capacity
,
registered
)
{
return
capacity
-
registered
;
},
},
};
</
script
>
src/components/Dialogs/DialogComponents/UserSelectForCourse.vue
View file @
364dd6fe
<
template
>
<
template
>
<div>
<div>
This is a test
<UserSelect
<UserSelect
:force-error=
"areNoAvailableSeats"
:force-error=
"areNoAvailableSeats"
:force-error-message=
"
:force-error-message=
"
...
@@ -37,12 +38,10 @@ export default {
...
@@ -37,12 +38,10 @@ export default {
type
:
String
,
type
:
String
,
default
:
"
Select Course
"
,
default
:
"
Select Course
"
,
},
},
// needed in order for Add to Course button to become enabled
// parent components need to pass in their own updateCourseMembers
updateCourseMembers
:
{
updateCourseMembers
:
{
type
:
Function
,
type
:
Function
,
default
:
()
=>
{
// TODO: confirm this is even being triggered; looks like it's being passed as prop 'update-course-members'
return
;
},
},
},
isCourseSelected
:
{
isCourseSelected
:
{
type
:
Boolean
,
type
:
Boolean
,
...
...
src/components/InstructorCourses.vue
deleted
100644 → 0
View file @
02a57f2a
<
template
>
<v-container
class=
"curriculum-schedule text-left px-2"
>
<v-skeleton-loader
:loading=
"loading"
type=
"paragraph@5"
class=
"w-100"
>
<ErrorMessage
v-if=
"error"
v-bind:errorMessage=
"errorMessage"
/>
<v-card
v-if=
"emptyString"
>
<v-card-title
>
There currently are no current or upcoming courses.
</v-card-title
>
<v-card-text
>
Courses in progress or upcoming will appear here.
</v-card-text
>
</v-card>
<v-container
class=
"px-6"
v-else
>
<div
v-for=
"(item, index) in schedule"
:key=
"index"
:class=
"
{ last: index == schedule.length - 1 }"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
class=
"dot dot-white"
></div>
<div
v-else
class=
"dot dot-green"
></div>
<div
class=
"d-flex col-12 py-0 class-container"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
class=
"dot-border dot-border-white col-1 d-inline-block"
></div>
<div
v-else
class=
"dot-border dot-border-green col-1 d-inline-block"
></div>
<div
class=
"col-sm col-3 d-inline-block d-flex align-start class-name"
>
{{
item
.
name
}}
</div>
<div
class=
"col-sm col-4 d-inline-block resText"
>
{{
item
.
startDate
}}
-
{{
item
.
endDate
}}
</div>
<div
class=
"col-sm col-4 d-inline-block resText"
>
<div
v-if=
"inDateRange(item.startDate, item.endDate)"
>
In Progress
</div>
<div
v-else
>
{{
seatsRemaining
(
item
.
capacity
,
item
.
registeredCount
)
}}
remaining seats
</div>
</div>
</div>
</div>
</v-container>
</v-skeleton-loader>
</v-container>
</
template
>
<
script
>
import
TrainingService
from
"
@/api/services/training
"
;
import
moment
from
"
moment
"
;
import
{
SET_ERROR_MESSAGE
}
from
"
@/store/mutation-types
"
;
import
ErrorMessage
from
"
@/components/APIErrorCard
"
;
export
default
{
components
:
{
ErrorMessage
,
},
data
:
()
=>
({
loading
:
false
,
schedule
:
[],
emptyString
:
false
,
errorMessage
:
null
,
error
:
false
,
}),
async
mounted
()
{
this
.
params
=
{
registeredCount
:
true
,
instructorOf
:
true
,
dateFrom
:
`
${
moment
().
format
(
"
YYYY-MM-DD
"
)}
`
,
dateTo
:
`
${
moment
().
add
(
6
,
"
months
"
).
format
(
"
YYYY-MM-DD
"
)}
`
,
sort
:
"
startDate
"
,
};
try
{
this
.
loading
=
true
;
const
response
=
await
TrainingService
.
getCourses
(
this
.
params
);
this
.
schedule
=
response
.
courses
;
if
(
this
.
schedule
.
length
===
0
)
{
this
.
emptyString
=
true
;
}
}
catch
(
error
)
{
this
.
error
=
true
;
this
.
$store
.
commit
(
SET_ERROR_MESSAGE
,
error
);
this
.
errorMessage
=
error
;
}
finally
{
this
.
loading
=
false
;
}
},
methods
:
{
inDateRange
(
startDate
,
endDate
)
{
return
moment
().
isBetween
(
startDate
,
endDate
);
},
seatsRemaining
(
capacity
,
registered
)
{
return
capacity
-
registered
;
},
},
};
</
script
>
src/components/PersonnelTable.vue
View file @
364dd6fe
...
@@ -394,14 +394,13 @@ export default {
...
@@ -394,14 +394,13 @@ export default {
},
},
personnelList
()
{
personnelList
()
{
const
list
=
[...
this
.
personnel
.
listItems
];
const
list
=
[...
this
.
personnel
.
listItems
];
const
filteredList
=
list
.
filter
(({
email
,
number
,
name
})
=>
{
return
list
.
filter
(({
email
,
number
,
name
})
=>
{
return
(
return
(
includes
(
toLower
(
email
),
this
.
searchBy
)
||
includes
(
toLower
(
email
),
this
.
searchBy
)
||
includes
(
toLower
(
name
),
this
.
searchBy
)
||
includes
(
toLower
(
name
),
this
.
searchBy
)
||
includes
(
toLower
(
number
),
this
.
searchBy
)
includes
(
toLower
(
number
),
this
.
searchBy
)
);
);
});
});
return
filteredList
;
},
},
permissionTypesDropdown
()
{
permissionTypesDropdown
()
{
return
map
(
this
.
permissionTypes
,
(
label
)
=>
{
return
map
(
this
.
permissionTypes
,
(
label
)
=>
{
...
...
src/components/ProjectsSummary.vue
View file @
364dd6fe
...
@@ -230,9 +230,8 @@
...
@@ -230,9 +230,8 @@
import
{
mapState
,
mapMutations
}
from
"
vuex
"
;
import
{
mapState
,
mapMutations
}
from
"
vuex
"
;
import
ProjectService
from
"
@/api/services/project
"
;
import
ProjectService
from
"
@/api/services/project
"
;
import
GitLabIcon
from
"
@/components/icons/GitLabIcon
"
;
import
GitLabIcon
from
"
@/components/icons/GitLabIcon
"
;
import
{
SET_PROJECTS
}
from
"
@/store/mutation-types
"
;
import
{
SET_PROJECTS
,
SET_ERROR_MESSAGE
}
from
"
@/store/mutation-types
"
;
import
ErrorMessage
from
"
@/components/APIErrorCard
"
;
import
ErrorMessage
from
"
@/components/APIErrorCard
"
;
import
{
SET_ERROR_MESSAGE
}
from
"
@/store/mutation-types
"
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -296,10 +295,9 @@ export default {
...
@@ -296,10 +295,9 @@ export default {
},
},
computed
:
{
computed
:
{
filteredProjects
()
{
filteredProjects
()
{
const
projects
=
this
.
detailed
return
this
.
detailed
?
this
.
projects
?
this
.
projects
:
this
.
projects
.
filter
((
o
)
=>
o
.
favorite
);
:
this
.
projects
.
filter
((
o
)
=>
o
.
favorite
);
return
projects
;
},
},
...
mapState
({
...
mapState
({
projects
:
(
state
)
=>
state
.
projects
.
list
,
projects
:
(
state
)
=>
state
.
projects
.
list
,
...
...
src/components/RemainingSeats.vue
deleted
100644 → 0
View file @
02a57f2a
<
template
>
<v-container
class=
"remaining-seats text-left px-2"
>
<v-skeleton-loader
:loading=
"loading"
type=
"paragraph@5"
class=
"w-100"
>
<v-card
v-if=
"emptyString"
>
<v-card-title>
You currently don't have any classes!
</v-card-title>
<v-card-text>
Your scheduled classes will appear here.
</v-card-text>
</v-card>
<v-container
class=
"px-6"
v-else
>
<div
v-for=
"(item, index) in schedule"
:key=
"index"
class=
"flex-wrap text-left pb-3 row justify-content-center d-flex"
>
<div
class=
"col-3 d-inline-block class-name"
>
{{
item
.
name
}}
</div>
<div
class=
"col-5 d-inline-block availability-bar"
>
<div
class=
"pt-2"
>
<v-progress-linear
class=
"availability-bar"
rounded
background-color=
"white"
height=
"8px"
:value=
"(100 * item.registeredCount) / item.capacity"
></v-progress-linear>
</div>
</div>
<div
class=
"col-2 d-inline-block"
>
<div
class=
"white-space-nowrap ml-5 mt-1 small-count"
>
{{
item
.
registeredCount
}}
/
{{
item
.
capacity
}}
</div>
</div>
<div
class=
"col-1 d-inline-block gutter"
/>
</div>
</v-container>
</v-skeleton-loader>
</v-container>
</
template
>
<
script
>
import
TrainingService
from
"
@/api/services/training
"
;
import
moment
from
"
moment
"
;
export
default
{
data
:
()
=>
({
loading
:
false
,
schedule
:
[],
emptyString
:
false
,
}),
async
mounted
()
{
this
.
params
=
{
registeredCount
:
true
,
dateFrom
:
`
${
moment
().
format
(
"
YYYY-MM-DD
"
)}
`
,
dateTo
:
`
${
moment
().
add
(
6
,
"
months
"
).
format
(
"
YYYY-MM-DD
"
)}
`
,
};
try
{
this
.
loading
=
true
;
const
response
=
await
TrainingService
.
getCourses
(
this
.
params
);
console
.
log
(
response
);
this
.
schedule
=
response
.
courses
;
if
(
this
.
schedule
.
length
===
0
)
{
this
.
emptyString
=
true
;
}
}
catch
(
error
)
{
console
.
error
(
error
);
}
finally
{
this
.
loading
=
false
;
}
},
};
</
script
>
<
style
lang=
"scss"
>
.class-name
{
color
:
#bdc931
;
}
.small-count
{
font-size
:
10px
;
}
</
style
>
src/components/SystemStatusSummary.vue
deleted
100644 → 0
View file @
02a57f2a
<
template
>
<v-container
class=
"status-summary text-center px-8"
>
<ErrorMessage
v-if=
"error"
/>
<div
v-else
>
<div
class=
"support-row d-flex flex-wrap flex-sm-nowrap text-left pb-8"
>
<div
class=
"pr-0 pr-sm-10 text-container pb-3 pb-md-0"
>
<div
class=
"subhead"
>
View Status History
</div>
Any previous status reports or connection issues
</div>
<v-spacer
class=
"d-none d-sm-flex"
/>
<v-btn
color=
"secondary"
target=
"_blank"
class=
"mx-auto"
>
View History
</v-btn>
</div>
<div
class=
"d-flex flex-column text-left"
>
<v-skeleton-loader
:loading=
"loading"
type=
"list-item-avatar@8"
>
<v-expansion-panels
accordion
multiple
hover
>
<v-expansion-panel
v-for=
"(system, index) in systemStatus.systems"
:key=
"index"
>
<v-expansion-panel-header
expand-icon=
"mdi-chevron-right"
>
<div
class=
"d-flex align-items-center"
>
<v-icon
class=
"icon mr-3"
>
{{
getIconName
(
system
.
name
)
}}
</v-icon>
{{
system
.
name
}}
<v-spacer
/>
<div
class=
"mx-6"
>
<v-tooltip
top
>
<template
v-slot:activator=
"
{ on, attrs }">
<span
v-bind=
"attrs"
v-on=
"on"
>
<GitLabIcon
class=
"status-icon mx-4"
:status=
"getStatusMapping(system.status)"
/>
</span>
</
template
>
<span>
Latest Pipeline: {{ system.status }}
</span>
</v-tooltip>
</div>
</div>
</v-expansion-panel-header>
<v-expansion-panel-content>
<div
class=
"d-flex flex-wrap"
>
<p
v-if=
"system.description"
class=
"system-description"
>
{{ system.description }}
</p>
<v-spacer
/>
<ExternalLink
v-if=
"system.link"
:href=
"system.link"
class=
"mb-4"
>
{{ system.name }}
</ExternalLink>
</div>
<p
class=
"subhead"
>
Current status
</p>
<div
class=
"px-4"
>
<p>
<strong
class=
"text-capitalize"
:class=
"system.status"
>
{{ system.status }}
</strong>
since
<v-tooltip
right
>
<
template
v-slot:activator=
"{ on, attrs }"
>
<span
v-bind=
"attrs"
v-on=
"on"
class=
"text-no-wrap"
>
{{
getIsoDateString
(
system
.
lastChange
)
}}
</span>
</
template
>
<span>
{{ getLocalDateString(system.lastChange) }}
</span>
</v-tooltip>
</p>
<p
v-if=
"system.statusDetails"
>
{{ system.statusDetails }}
</p>
</div>
</v-expansion-panel-content>
</v-expansion-panel>
</v-expansion-panels>
</v-skeleton-loader>
</div>
</div>
</v-container>
</template>
<
script
>
import
StatusService
from
"
@/api/services/status
"
;
import
ExternalLink
from
"
@/components/ExternalLink
"
;
import
GitLabIcon
from
"
@/components/icons/GitLabIcon
"
;
import
{
SET_ERROR_MESSAGE
}
from
"
@/store/mutation-types
"
;
import
ErrorMessage
from
"
@/components/APIErrorCard
"
;
export
default
{
components
:
{
ExternalLink
,
GitLabIcon
,
ErrorMessage
,
},
data
:
()
=>
({
loading
:
false
,
systemStatus
:
[],
error
:
false
,
}),
async
mounted
()
{
try
{
this
.
loading
=
true
;
this
.
systemStatus
=
await
StatusService
.
getStatusSummary
();
console
.
log
(
"
this.systemStatus
"
,
this
.
systemStatus
);
}
catch
(
error
)
{
this
.
error
=
true
;
this
.
$store
.
commit
(
SET_ERROR_MESSAGE
,
error
);
console
.
error
(
error
);
}
finally
{
// TODO: remove fake wait
setTimeout
(()
=>
{
this
.
loading
=
false
;
},
2000
);
}
},
methods
:
{
getIconName
(
systemName
)
{
const
iconName
=
systemName
.
toLowerCase
()?.
replace
(
"
"
,
"
-
"
);
if
(
this
.
$vuetify
.
icons
.
values
[
iconName
])
{
return
`$vuetify.icons.
${
iconName
}
`
;
}
return
null
;
},
getLocalDateString
(
millis
)
{
return
new
Date
(
millis
).
toLocaleString
();
},
getIsoDateString
(
millis
)
{
return
new
Date
(
millis
).
toISOString
();
},
// map our status up/down/degraded to gitlab icon parlance
getStatusMapping
(
status
)
{
if
(
status
===
"
down
"
)
{
return
"
failed
"
;
}
else
if
(
status
===
"
up
"
)
{
return
"
passed
"
;
}
else
{
return
"
warning
"
;
}
},
},
};
</
script
>
<
style
lang=
"scss"
>
.status-summary
{
.support-row
{
.v-btn
{
max-width
:
160px
;
width
:
160px
;
}
&
>
*
{
align-items
:
center
;
}
}
.system-description
,
.text-container
{
min-width
:
200px
;
}
.degraded
{
color
:
#fc9403
;
}
.down
{
color
:
#ff3738
;
}
.up
{
color
:
#56f000
;
}
}
</
style
>
src/router/routes.js
View file @
364dd6fe
...
@@ -2,11 +2,20 @@ import NotAuthorizedComponent from "@/components/NotAuthorizedComponent";
...
@@ -2,11 +2,20 @@ import NotAuthorizedComponent from "@/components/NotAuthorizedComponent";
import
NotFoundComponent
from
"
@/components/NotFoundComponent
"
;
import
NotFoundComponent
from
"
@/components/NotFoundComponent
"
;
import
Permission
from
"
@/config/user-permissions
"
;
import
Permission
from
"
@/config/user-permissions
"
;
const
importHelper
=
(
importFn
)
=>
{
return
()
=>
{
return
importFn
().
catch
((
error
)
=>
{
console
.
error
(
error
);
location
.
reload
();
});
};
};
export
default
[
export
default
[
{
{
path
:
"
/
"
,
path
:
"
/
"
,
name
:
"
Launchboard
"
,
name
:
"
Launchboard
"
,
component
:
()
=>
import
(
"
@/views/Home.vue
"
),
component
:
importHelper
(
()
=>
import
(
"
@/views/Home.vue
"
)
)
,
meta
:
{
meta
:
{
title
:
"
Platform One: Launchboard
"
,
title
:
"
Platform One: Launchboard
"
,
bodyClass
:
"
launchboard-page
"
,
bodyClass
:
"
launchboard-page
"
,
...
@@ -16,8 +25,9 @@ export default [
...
@@ -16,8 +25,9 @@ export default [
path
:
"
/projects
"
,
path
:
"
/projects
"
,
name
:
"
Projects
"
,
name
:
"
Projects
"
,
// route level code-splitting
// route level code-splitting
component
:
()
=>
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "projects" */
"
@/views/Projects.vue
"
),
import
(
/* webpackChunkName: "projects" */
"
@/views/Projects.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: My Projects
"
,
title
:
"
Platform One: My Projects
"
,
bodyClass
:
"
projects-page
"
,
bodyClass
:
"
projects-page
"
,
...
@@ -27,7 +37,9 @@ export default [
...
@@ -27,7 +37,9 @@ export default [
path
:
"
/team
"
,
path
:
"
/team
"
,
name
:
"
Team
"
,
name
:
"
Team
"
,
// route level code-splitting
// route level code-splitting
component
:
()
=>
import
(
/* webpackChunkName: "team" */
"
@/views/Team.vue
"
),
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "team" */
"
@/views/Team.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: My Team
"
,
title
:
"
Platform One: My Team
"
,
bodyClass
:
"
team-page
"
,
bodyClass
:
"
team-page
"
,
...
@@ -37,8 +49,9 @@ export default [
...
@@ -37,8 +49,9 @@ export default [
path
:
"
/resources
"
,
path
:
"
/resources
"
,
name
:
"
Resources
"
,
name
:
"
Resources
"
,
// route level code-splitting
// route level code-splitting
component
:
()
=>
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "resources" */
"
@/views/Resources.vue
"
),
import
(
/* webpackChunkName: "resources" */
"
@/views/Resources.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Resources
"
,
title
:
"
Platform One: Resources
"
,
bodyClass
:
"
resources-page
"
,
bodyClass
:
"
resources-page
"
,
...
@@ -48,8 +61,9 @@ export default [
...
@@ -48,8 +61,9 @@ export default [
path
:
"
/help
"
,
path
:
"
/help
"
,
name
:
"
Help Center
"
,
name
:
"
Help Center
"
,
// route level code-splitting
// route level code-splitting
component
:
()
=>
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "help-center" */
"
@/views/HelpCenter.vue
"
),
import
(
/* webpackChunkName: "help-center" */
"
@/views/HelpCenter.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Help Center
"
,
title
:
"
Platform One: Help Center
"
,
bodyClass
:
"
help-page
"
,
bodyClass
:
"
help-page
"
,
...
@@ -59,8 +73,9 @@ export default [
...
@@ -59,8 +73,9 @@ export default [
path
:
"
/settings
"
,
path
:
"
/settings
"
,
name
:
"
Settings
"
,
name
:
"
Settings
"
,
// route level code-splitting
// route level code-splitting
component
:
()
=>
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "settings" */
"
@/views/Settings.vue
"
),
import
(
/* webpackChunkName: "settings" */
"
@/views/Settings.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Settings
"
,
title
:
"
Platform One: Settings
"
,
bodyClass
:
"
settings-page
"
,
bodyClass
:
"
settings-page
"
,
...
@@ -70,8 +85,9 @@ export default [
...
@@ -70,8 +85,9 @@ export default [
{
{
path
:
"
/teams
"
,
path
:
"
/teams
"
,
name
:
"
Teams
"
,
name
:
"
Teams
"
,
component
:
()
=>
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "teams" */
"
@/views/super-admin/Teams.vue
"
),
import
(
/* webpackChunkName: "teams" */
"
@/views/super-admin/Teams.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Teams
"
,
title
:
"
Platform One: Teams
"
,
bodyClass
:
"
teams-page
"
,
bodyClass
:
"
teams-page
"
,
...
@@ -81,7 +97,9 @@ export default [
...
@@ -81,7 +97,9 @@ export default [
{
{
path
:
"
/teams/details/:teamId
"
,
path
:
"
/teams/details/:teamId
"
,
name
:
"
TeamDetails
"
,
name
:
"
TeamDetails
"
,
component
:
()
=>
import
(
/* webpackChunkName: "team" */
"
@/views/Team.vue
"
),
component
:
importHelper
(()
=>
import
(
/* webpackChunkName: "team" */
"
@/views/Team.vue
"
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Team Details
"
,
title
:
"
Platform One: Team Details
"
,
bodyClass
:
"
team-page
"
,
bodyClass
:
"
team-page
"
,
...
@@ -90,10 +108,11 @@ export default [
...
@@ -90,10 +108,11 @@ export default [
{
{
path
:
"
/training
"
,
path
:
"
/training
"
,
name
:
"
Courses
"
,
name
:
"
Courses
"
,
component
:
()
=>
component
:
importHelper
(
()
=>
import
(
import
(
/* webpackChunkName: "training" */
"
@/views/super-admin/Training.vue
"
/* webpackChunkName: "training" */
"
@/views/super-admin/Training.vue
"
),
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Training
"
,
title
:
"
Platform One: Training
"
,
bodyClass
:
"
training-page
"
,
bodyClass
:
"
training-page
"
,
...
@@ -103,10 +122,11 @@ export default [
...
@@ -103,10 +122,11 @@ export default [
{
{
path
:
"
/training/details/:trainingId
"
,
path
:
"
/training/details/:trainingId
"
,
name
:
"
TrainingDetails
"
,
name
:
"
TrainingDetails
"
,
component
:
()
=>
component
:
importHelper
(
()
=>
import
(
import
(
/* webpackChunkName: "training-details" */
"
@/views/TrainingDetails.vue
"
/* webpackChunkName: "training-details" */
"
@/views/TrainingDetails.vue
"
),
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Training Details
"
,
title
:
"
Platform One: Training Details
"
,
bodyClass
:
"
training-details-page
"
,
bodyClass
:
"
training-details-page
"
,
...
@@ -116,10 +136,11 @@ export default [
...
@@ -116,10 +136,11 @@ export default [
{
{
path
:
"
/personnel
"
,
path
:
"
/personnel
"
,
name
:
"
Personnel
"
,
name
:
"
Personnel
"
,
component
:
()
=>
component
:
importHelper
(
()
=>
import
(
import
(
/* webpackChunkName: "personnel" */
"
@/views/super-admin/Personnel.vue
"
/* webpackChunkName: "personnel" */
"
@/views/super-admin/Personnel.vue
"
),
)
),
meta
:
{
meta
:
{
title
:
"
Platform One: Personnel
"
,
title
:
"
Platform One: Personnel
"
,
bodyClass
:
"
personnel
"
,
bodyClass
:
"
personnel
"
,
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment