More work on group sessions
This commit is contained in:
parent
15024b3a84
commit
742faa7bf3
@ -287,7 +287,7 @@ class Controller {
|
|||||||
|
|
||||||
@GetMapping("/grpob/valid/{id}")
|
@GetMapping("/grpob/valid/{id}")
|
||||||
fun checkGroupObservationValidityById(@PathVariable id: Int): Map<String, Any> {
|
fun checkGroupObservationValidityById(@PathVariable id: Int): Map<String, Any> {
|
||||||
if(GroupSessionManager.isValid(id)){
|
if (GroupSessionManager.isValid(id)) {
|
||||||
return mapOf("titles" to GroupSessionManager.scenarioTitles!!)
|
return mapOf("titles" to GroupSessionManager.scenarioTitles!!)
|
||||||
}
|
}
|
||||||
logger.warn("Group observation requested with id $id but there is no valid session")
|
logger.warn("Group observation requested with id $id but there is no valid session")
|
||||||
|
266
frontend/package-lock.json
generated
266
frontend/package-lock.json
generated
@ -769,6 +769,14 @@
|
|||||||
"to-fast-properties": "^2.0.0"
|
"to-fast-properties": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@chenfengyuan/vue-qrcode": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@chenfengyuan/vue-qrcode/-/vue-qrcode-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-Ph+W4ltPIyn9YjjITuLewhw8MeEXxJ1L5z6ZM+trmVWcKLfoIDi3yLHDPFKFjesWqsdH8irIX67PCBZ80TY8kw==",
|
||||||
|
"requires": {
|
||||||
|
"qrcode": "^1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@intervolga/optimize-cssnano-plugin": {
|
"@intervolga/optimize-cssnano-plugin": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz",
|
||||||
@ -3024,6 +3032,14 @@
|
|||||||
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"can-promise": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/can-promise/-/can-promise-0.0.1.tgz",
|
||||||
|
"integrity": "sha512-gzVrHyyrvgt0YpDm7pn04MQt8gjh0ZAhN4ZDyCRtGl6YnuuK6b4aiUTD7G52r9l4YNmxfTtEscb92vxtAlL6XQ==",
|
||||||
|
"requires": {
|
||||||
|
"window-or-global": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"caniuse-api": {
|
"caniuse-api": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
|
||||||
@ -3394,7 +3410,6 @@
|
|||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||||
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
"integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^2.1.1",
|
"string-width": "^2.1.1",
|
||||||
"strip-ansi": "^4.0.0",
|
"strip-ansi": "^4.0.0",
|
||||||
@ -3425,8 +3440,7 @@
|
|||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@ -3801,7 +3815,6 @@
|
|||||||
"version": "6.0.5",
|
"version": "6.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"nice-try": "^1.0.4",
|
"nice-try": "^1.0.4",
|
||||||
"path-key": "^2.0.1",
|
"path-key": "^2.0.1",
|
||||||
@ -4259,8 +4272,7 @@
|
|||||||
"decamelize": {
|
"decamelize": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"decode-uri-component": {
|
"decode-uri-component": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
@ -4465,6 +4477,11 @@
|
|||||||
"randombytes": "^2.0.0"
|
"randombytes": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dijkstrajs": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-082BIh4+pAdCz83lVtTpnpjdxxs="
|
||||||
|
},
|
||||||
"dir-glob": {
|
"dir-glob": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
|
||||||
@ -4710,7 +4727,6 @@
|
|||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
|
||||||
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "^1.4.0"
|
"once": "^1.4.0"
|
||||||
}
|
}
|
||||||
@ -6490,8 +6506,7 @@
|
|||||||
"get-caller-file": {
|
"get-caller-file": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
||||||
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
|
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"get-stdin": {
|
"get-stdin": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
@ -6616,9 +6631,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"handlebars": {
|
"handlebars": {
|
||||||
"version": "4.0.12",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
|
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz",
|
||||||
"integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
|
"integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"async": "^2.5.0",
|
"async": "^2.5.0",
|
||||||
@ -7850,8 +7865,7 @@
|
|||||||
"isexe": {
|
"isexe": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"isobject": {
|
"isobject": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
@ -8980,7 +8994,6 @@
|
|||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
|
||||||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-defer": "^1.0.0"
|
"p-defer": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -9404,8 +9417,7 @@
|
|||||||
"nice-try": {
|
"nice-try": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"no-case": {
|
"no-case": {
|
||||||
"version": "2.3.2",
|
"version": "2.3.2",
|
||||||
@ -9573,7 +9585,6 @@
|
|||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-key": "^2.0.0"
|
"path-key": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -9596,8 +9607,7 @@
|
|||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
||||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
|
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"nwsapi": {
|
"nwsapi": {
|
||||||
"version": "2.0.9",
|
"version": "2.0.9",
|
||||||
@ -9753,7 +9763,6 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@ -9994,20 +10003,17 @@
|
|||||||
"p-defer": {
|
"p-defer": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
|
||||||
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
|
"integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"p-finally": {
|
"p-finally": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
|
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"p-is-promise": {
|
"p-is-promise": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
|
||||||
"integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
|
"integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
@ -10132,8 +10138,7 @@
|
|||||||
"path-exists": {
|
"path-exists": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
@ -10150,8 +10155,7 @@
|
|||||||
"path-key": {
|
"path-key": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"path-parse": {
|
"path-parse": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
@ -10254,6 +10258,11 @@
|
|||||||
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
|
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"pngjs": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-1n3Z4p3IOxArEs1VRXnZ/RXdfEniAUS9jb68g58FIXMNkPJeZd+Qh4Uq7/e0LVxAQGos1eIUrqrt4FpjdnEd+Q=="
|
||||||
|
},
|
||||||
"popper.js": {
|
"popper.js": {
|
||||||
"version": "1.14.4",
|
"version": "1.14.4",
|
||||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz",
|
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz",
|
||||||
@ -11563,6 +11572,160 @@
|
|||||||
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
|
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"qrcode": {
|
||||||
|
"version": "1.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.3.3.tgz",
|
||||||
|
"integrity": "sha512-SH7V13AcJusH3GT8bMNOGz4w0L+LjcpNOU/NiOgtBhT/5DoWeZE6D5ntMJnJ84AMkoaM4kjJJoHoh9g++8lWFg==",
|
||||||
|
"requires": {
|
||||||
|
"can-promise": "0.0.1",
|
||||||
|
"dijkstrajs": "^1.0.1",
|
||||||
|
"isarray": "^2.0.1",
|
||||||
|
"pngjs": "^3.3.0",
|
||||||
|
"yargs": "^12.0.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"camelcase": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="
|
||||||
|
},
|
||||||
|
"execa": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
|
||||||
|
"requires": {
|
||||||
|
"cross-spawn": "^6.0.0",
|
||||||
|
"get-stream": "^4.0.0",
|
||||||
|
"is-stream": "^1.1.0",
|
||||||
|
"npm-run-path": "^2.0.0",
|
||||||
|
"p-finally": "^1.0.0",
|
||||||
|
"signal-exit": "^3.0.0",
|
||||||
|
"strip-eof": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"find-up": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"get-stream": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||||
|
"requires": {
|
||||||
|
"pump": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"invert-kv": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
|
||||||
|
},
|
||||||
|
"isarray": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz",
|
||||||
|
"integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA=="
|
||||||
|
},
|
||||||
|
"lcid": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
|
||||||
|
"requires": {
|
||||||
|
"invert-kv": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"locate-path": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "^3.0.0",
|
||||||
|
"path-exists": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mem": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz",
|
||||||
|
"integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==",
|
||||||
|
"requires": {
|
||||||
|
"map-age-cleaner": "^0.1.1",
|
||||||
|
"mimic-fn": "^1.0.0",
|
||||||
|
"p-is-promise": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"os-locale": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
|
||||||
|
"requires": {
|
||||||
|
"execa": "^1.0.0",
|
||||||
|
"lcid": "^2.0.0",
|
||||||
|
"mem": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==",
|
||||||
|
"requires": {
|
||||||
|
"p-try": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-try": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ=="
|
||||||
|
},
|
||||||
|
"pump": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||||
|
"requires": {
|
||||||
|
"end-of-stream": "^1.1.0",
|
||||||
|
"once": "^1.3.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs": {
|
||||||
|
"version": "12.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
|
||||||
|
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
|
||||||
|
"requires": {
|
||||||
|
"cliui": "^4.0.0",
|
||||||
|
"decamelize": "^1.2.0",
|
||||||
|
"find-up": "^3.0.0",
|
||||||
|
"get-caller-file": "^1.0.1",
|
||||||
|
"os-locale": "^3.0.0",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"require-main-filename": "^1.0.1",
|
||||||
|
"set-blocking": "^2.0.0",
|
||||||
|
"string-width": "^2.0.0",
|
||||||
|
"which-module": "^2.0.0",
|
||||||
|
"y18n": "^3.2.1 || ^4.0.0",
|
||||||
|
"yargs-parser": "^11.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yargs-parser": {
|
||||||
|
"version": "11.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
|
||||||
|
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
|
||||||
|
"requires": {
|
||||||
|
"camelcase": "^5.0.0",
|
||||||
|
"decamelize": "^1.2.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.5.2",
|
"version": "6.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||||
@ -12282,8 +12445,7 @@
|
|||||||
"require-directory": {
|
"require-directory": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||||
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
|
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"require-from-string": {
|
"require-from-string": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
@ -12294,8 +12456,7 @@
|
|||||||
"require-main-filename": {
|
"require-main-filename": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
|
||||||
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
|
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"require-uncached": {
|
"require-uncached": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@ -12840,8 +13001,7 @@
|
|||||||
"semver": {
|
"semver": {
|
||||||
"version": "5.5.1",
|
"version": "5.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
|
||||||
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
|
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"send": {
|
"send": {
|
||||||
"version": "0.16.2",
|
"version": "0.16.2",
|
||||||
@ -12940,8 +13100,7 @@
|
|||||||
"set-blocking": {
|
"set-blocking": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
|
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"set-value": {
|
"set-value": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -12992,7 +13151,6 @@
|
|||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"shebang-regex": "^1.0.0"
|
"shebang-regex": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -13000,8 +13158,7 @@
|
|||||||
"shebang-regex": {
|
"shebang-regex": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"shell-quote": {
|
"shell-quote": {
|
||||||
"version": "1.6.1",
|
"version": "1.6.1",
|
||||||
@ -13561,8 +13718,7 @@
|
|||||||
"strip-eof": {
|
"strip-eof": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
|
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"strip-indent": {
|
"strip-indent": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@ -15394,7 +15550,6 @@
|
|||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"isexe": "^2.0.0"
|
"isexe": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -15402,8 +15557,12 @@
|
|||||||
"which-module": {
|
"which-module": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
|
||||||
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
|
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
|
||||||
"dev": true
|
},
|
||||||
|
"window-or-global": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/window-or-global/-/window-or-global-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-2+RboqKRqrxW1iz2bEW3+jIpRt4="
|
||||||
},
|
},
|
||||||
"wordwrap": {
|
"wordwrap": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@ -15424,7 +15583,6 @@
|
|||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
"resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||||
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^1.0.1",
|
"string-width": "^1.0.1",
|
||||||
"strip-ansi": "^3.0.1"
|
"strip-ansi": "^3.0.1"
|
||||||
@ -15433,14 +15591,12 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"is-fullwidth-code-point": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
@ -15449,7 +15605,6 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "^1.0.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
@ -15460,7 +15615,6 @@
|
|||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "^2.0.0"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
@ -15470,8 +15624,7 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"write": {
|
"write": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
@ -15523,8 +15676,7 @@
|
|||||||
"y18n": {
|
"y18n": {
|
||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
|
||||||
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
|
"integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"test:unit": "vue-cli-service test:unit"
|
"test:unit": "vue-cli-service test:unit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@chenfengyuan/vue-qrcode": "^1.0.0",
|
||||||
"axios": "^0.18.0",
|
"axios": "^0.18.0",
|
||||||
"bootstrap-vue": "^2.0.0-rc.11",
|
"bootstrap-vue": "^2.0.0-rc.11",
|
||||||
"chart.js": "^2.7.3",
|
"chart.js": "^2.7.3",
|
||||||
|
@ -11,6 +11,7 @@ const ObservationComplete = () => import("./views/ObservationComplete.vue");
|
|||||||
const DBError = () => import("./views/DatabaseUnavailable.vue");
|
const DBError = () => import("./views/DatabaseUnavailable.vue");
|
||||||
const About = () => import("./views/About.vue");
|
const About = () => import("./views/About.vue");
|
||||||
const GroupSession = () => import("./views/GroupSession.vue")
|
const GroupSession = () => import("./views/GroupSession.vue")
|
||||||
|
const GroupSessionInput = () => import("./views/GroupSessionInput.vue")
|
||||||
|
|
||||||
Vue.use(Router);
|
Vue.use(Router);
|
||||||
|
|
||||||
@ -70,6 +71,12 @@ export default new Router({
|
|||||||
path: "/groupsession",
|
path: "/groupsession",
|
||||||
name: "groupsession",
|
name: "groupsession",
|
||||||
component: GroupSession
|
component: GroupSession
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/groupsession/:id",
|
||||||
|
name: "groupsessioninput",
|
||||||
|
component: GroupSessionInput,
|
||||||
|
props: true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
@ -1,32 +1,162 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<b-container>
|
||||||
|
<b-row v-if="active">
|
||||||
|
<b-col cols="3">
|
||||||
|
<vue-qrcode v-model="qrdata" :options="{ width: 250 }"></vue-qrcode>
|
||||||
|
<p>Scan the code or navigate to
|
||||||
|
<br>
|
||||||
|
{{ qrdata }}
|
||||||
|
</p>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row v-else>
|
||||||
|
<b-col>
|
||||||
|
<b-form id="submission-form" novalidate>
|
||||||
|
<b-row align-h="center">
|
||||||
|
<b-col>
|
||||||
|
<b-form-group label="Site">
|
||||||
|
<b-form-select
|
||||||
|
v-model="site"
|
||||||
|
:options="siteOptions"
|
||||||
|
style="text-align:center;"
|
||||||
|
required
|
||||||
|
></b-form-select>
|
||||||
|
</b-form-group>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row align-h="center">
|
||||||
|
<b-col>
|
||||||
|
<b-form-group label="Type">
|
||||||
|
<b-form-select v-model="type" style="text-align:center;" required>
|
||||||
|
<option :value="null">Select a training type</option>
|
||||||
|
<option value="INITIAL">INITIAL</option>
|
||||||
|
<option value="CONTINUING">CONTINUING</option>
|
||||||
|
</b-form-select>
|
||||||
|
</b-form-group>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row align-h="center">
|
||||||
|
<b-col>
|
||||||
|
<b-form-group label="Tutor(s)">
|
||||||
|
<p v-if="site == null">Select a site first.</p>
|
||||||
|
<b-form-checkbox-group v-model="tutors" :options="tutorOptions"></b-form-checkbox-group>
|
||||||
|
</b-form-group>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row align-h="center">
|
||||||
|
<b-col>
|
||||||
|
<b-button type="submit" size="lg" variant="primary">Start</b-button>
|
||||||
|
</b-col>
|
||||||
|
<b-col>
|
||||||
|
<b-button size="lg" variant="secondary">Connect to Previous Session</b-button>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-form>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-container>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import webstomp from 'webstomp-client'
|
import Vue from "vue";
|
||||||
import SockJS from "sockjs-client"
|
import VueQrcode from "@chenfengyuan/vue-qrcode";
|
||||||
|
import webstomp from "webstomp-client";
|
||||||
|
import SockJS from "sockjs-client";
|
||||||
export default {
|
export default {
|
||||||
name: "groupsession",
|
name: "groupsession",
|
||||||
title: "Group Session",
|
title: "Group Session",
|
||||||
|
components: { VueQrcode },
|
||||||
data: function() {
|
data: function() {
|
||||||
return {
|
return {
|
||||||
|
active: false,
|
||||||
stompclient: null,
|
stompclient: null,
|
||||||
data: []
|
qrdata: "N/A",
|
||||||
|
data: [],
|
||||||
|
site: null,
|
||||||
|
tutors: null,
|
||||||
|
siteOptions: [],
|
||||||
|
tutorOptions: [],
|
||||||
|
scenarioTitles: null,
|
||||||
|
type: null,
|
||||||
|
submitPassword: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
site: function() {
|
||||||
|
this.tutorOptions = [];
|
||||||
|
this.getTutors();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log("loading")
|
console.log("loading");
|
||||||
this.stompclient = webstomp.over(new SockJS('/websocket', {heartbeat: false}))
|
var self = this;
|
||||||
var self = this
|
this.stompclient.connect(
|
||||||
this.stompclient.connect([], function() {
|
[],
|
||||||
self.stompclient.subscribe("/ws/observations", function (incomingData) {
|
function() {
|
||||||
self.data.push(incomingData)
|
self.stompclient.subscribe("/ws/observations", function(incomingData) {
|
||||||
|
self.data = incomingData.content.observations;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Vue.axios
|
||||||
|
.get("/site")
|
||||||
|
.then(response => {
|
||||||
|
this.siteOptions = response.data;
|
||||||
})
|
})
|
||||||
})
|
.catch(error => {
|
||||||
|
if (error.response.status === 404) {
|
||||||
|
this.$router.push("/dberror");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
startSession: function() {
|
||||||
|
let axiosConfig = {
|
||||||
|
auth: {
|
||||||
|
username: "admin",
|
||||||
|
password: this.submitPassword
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Vue.axios
|
||||||
|
.post(
|
||||||
|
"/grpob/start",
|
||||||
|
{
|
||||||
|
site: this.site,
|
||||||
|
tutors: this.tutors,
|
||||||
|
scenarioTitles: this.whom,
|
||||||
|
type: this.type
|
||||||
|
},
|
||||||
|
axiosConfig
|
||||||
|
)
|
||||||
|
.then(function(response) {
|
||||||
|
console.log(response);
|
||||||
|
this.qrdata =
|
||||||
|
"http://" + response.ip + ":" + response.port + "/#/" + response.id;
|
||||||
|
})
|
||||||
|
.catch(function(error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getTutors: function() {
|
||||||
|
if (this.site != null) {
|
||||||
|
Vue.axios
|
||||||
|
.get("/site/" + this.site + "/tutors")
|
||||||
|
.then(response => {
|
||||||
|
this.tutorOptions = response.data;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
if (error.response.status === 404) {
|
||||||
|
this.$router.push("/dberror");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
if(this.stompclient != null){
|
if (this.stompclient != null) {
|
||||||
this.stompclient.disconnect()
|
this.stompclient.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
440
frontend/src/views/GroupSessionInput.vue
Normal file
440
frontend/src/views/GroupSessionInput.vue
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
<template>
|
||||||
|
<b-container fluid>
|
||||||
|
<b-container
|
||||||
|
v-for="(item, index) in scenarios"
|
||||||
|
v-bind:key="index"
|
||||||
|
class="border bottom-buffer"
|
||||||
|
fluid
|
||||||
|
>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-input
|
||||||
|
v-model="item.title"
|
||||||
|
type="text"
|
||||||
|
placeholder="Enter scenario description."
|
||||||
|
readonly
|
||||||
|
></b-form-input>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Monitoring</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.monitoring.rating"
|
||||||
|
v-on:newselection="item.monitoring.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.monitoring.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.monitoring.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Control Procedural</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.controlProcedural.rating"
|
||||||
|
v-on:newselection="item.controlProcedural.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.controlProcedural.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.controlProcedural.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Control</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.control.rating"
|
||||||
|
v-on:newselection="item.control.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.control.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.control.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Conservatism</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.conservatism.rating"
|
||||||
|
v-on:newselection="item.conservatism.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.conservatism.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.conservatism.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Teamwork Communications</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.teamworkCommunications.rating"
|
||||||
|
v-on:newselection="item.teamworkCommunications.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkCommunications.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkCommunications.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Teamwork Leadership</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.teamworkLeadership.rating"
|
||||||
|
v-on:newselection="item.teamworkLeadership.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkLeadership.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkLeadership.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Teamwork Workload</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.teamworkWorkload.rating"
|
||||||
|
v-on:newselection="item.teamworkWorkload.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkWorkload.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.teamworkWorkload.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
<b-col cols="6" class="border">
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h5>Knowledge</h5>
|
||||||
|
<score-selector
|
||||||
|
:score-value="item.knowledge.rating"
|
||||||
|
v-on:newselection="item.knowledge.rating = $event;"
|
||||||
|
></score-selector>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.knowledge.strengths"
|
||||||
|
placeholder="Strengths"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="strength"
|
||||||
|
></b-form-textarea>
|
||||||
|
<b-form-textarea
|
||||||
|
v-model="item.knowledge.improvements"
|
||||||
|
placeholder="AFIs"
|
||||||
|
:rows="1"
|
||||||
|
:max-rows="2"
|
||||||
|
no-resize
|
||||||
|
class="afi"
|
||||||
|
></b-form-textarea>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-container>
|
||||||
|
</b-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Vue from "vue";
|
||||||
|
import ScoreSelector from "../components/ScoreSelector.vue";
|
||||||
|
export default {
|
||||||
|
name: "groupsessioninput",
|
||||||
|
title: "Group Session - Input",
|
||||||
|
props: ["id"],
|
||||||
|
components: { ScoreSelector },
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
scenarios: [],
|
||||||
|
totals: [0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
warningBound: 2.5,
|
||||||
|
submitPassword: null
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
/*
|
||||||
|
if (this.id != null) {
|
||||||
|
Vue.axios
|
||||||
|
.get("/grpob/valid/" + this.id)
|
||||||
|
.then(response => {
|
||||||
|
response.titles.forEach(function(x) {
|
||||||
|
this.addAnotherObservation(x);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
if (error.response.status === 404) {
|
||||||
|
this.$router.push("/dberror");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
this.addAnotherObservation("Sample Entry");
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addAnotherObservation: function(newTitle) {
|
||||||
|
this.scenarios.push({
|
||||||
|
title: newTitle,
|
||||||
|
monitoring: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
controlProcedural: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
control: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
conservatism: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
teamworkCommunications: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
teamworkLeadership: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
teamworkWorkload: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
},
|
||||||
|
knowledge: {
|
||||||
|
rating: null,
|
||||||
|
strengths: "",
|
||||||
|
improvements: ""
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
updateTotals: function() {
|
||||||
|
var iTotals = [0, 0, 0, 0, 0, 0, 0, 0];
|
||||||
|
var counts = [0, 0, 0, 0, 0, 0, 0, 0];
|
||||||
|
this.scenarios.forEach(function(element) {
|
||||||
|
if (element.monitoring.rating) {
|
||||||
|
iTotals[0] += parseInt(element.monitoring.rating);
|
||||||
|
counts[0] += 1;
|
||||||
|
}
|
||||||
|
if (element.controlProcedural.rating) {
|
||||||
|
iTotals[1] += parseInt(element.controlProcedural.rating);
|
||||||
|
counts[1] += 1;
|
||||||
|
}
|
||||||
|
if (element.control.rating) {
|
||||||
|
iTotals[2] += parseInt(element.control.rating);
|
||||||
|
counts[2] += 1;
|
||||||
|
}
|
||||||
|
if (element.conservatism.rating) {
|
||||||
|
iTotals[3] += parseInt(element.conservatism.rating);
|
||||||
|
counts[3] += 1;
|
||||||
|
}
|
||||||
|
if (element.teamworkCommunications.rating) {
|
||||||
|
iTotals[4] += parseInt(element.teamworkCommunications.rating);
|
||||||
|
counts[4] += 1;
|
||||||
|
}
|
||||||
|
if (element.teamworkLeadership.rating) {
|
||||||
|
iTotals[5] += parseInt(element.teamworkLeadership.rating);
|
||||||
|
counts[5] += 1;
|
||||||
|
}
|
||||||
|
if (element.teamworkWorkload.rating) {
|
||||||
|
iTotals[6] += parseInt(element.teamworkWorkload.rating);
|
||||||
|
counts[6] += 1;
|
||||||
|
}
|
||||||
|
if (element.knowledge.rating) {
|
||||||
|
iTotals[7] += parseInt(element.knowledge.rating);
|
||||||
|
counts[7] += 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
for (var i = 0; i < iTotals.length; i++) {
|
||||||
|
if (counts[i] !== 0) {
|
||||||
|
Vue.set(this.totals, i, (iTotals[i] / counts[i]).toFixed(1));
|
||||||
|
} else {
|
||||||
|
Vue.set(this.totals, i, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSubmit: function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
var form = document.getElementById("submission-form");
|
||||||
|
if (form.checkValidity()) {
|
||||||
|
this.showModal();
|
||||||
|
}
|
||||||
|
form.classList.add("was-validated");
|
||||||
|
},
|
||||||
|
showModal() {
|
||||||
|
this.$refs.submissionModal.show();
|
||||||
|
},
|
||||||
|
handleSubmit() {
|
||||||
|
var form = document.getElementById("submission-form");
|
||||||
|
if (form.checkValidity()) {
|
||||||
|
var self = this;
|
||||||
|
Vue.axios
|
||||||
|
.post("/observation", {
|
||||||
|
person: this.whom,
|
||||||
|
scenarios: JSON.parse(JSON.stringify(this.scenarios))
|
||||||
|
})
|
||||||
|
.then(function(response) {
|
||||||
|
self.$router.push("/complete");
|
||||||
|
console.log(response);
|
||||||
|
})
|
||||||
|
.catch(function(error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
form.classList.add("was-validated");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
};
|
||||||
|
</script>
|
Loading…
Reference in New Issue
Block a user