@@ -1,3 +1,4 @@
|
||||
SERVICE_WORKER_FILE='sw.js'
|
||||
APP_ID='1'
|
||||
VUE_APP_URL='prova SVILUPPO!'
|
||||
PROVA_PAOLO='PROVA SVILUPPO'
|
||||
|
||||
@@ -34,6 +34,9 @@ Thanks to the Quasar Framework and TypeScript !
|
||||
|
||||
[](https://github.com/standard/standard)
|
||||
|
||||
[](https://circleci.com/gh/paoloar77/freeplanet/tree/master)
|
||||
[](https://codecov.io/gh/paoloar77/freeplanet/branch/master)
|
||||
|
||||
</div>
|
||||
|
||||
## Features ⚡️
|
||||
|
||||
425
package-lock.json
generated
425
package-lock.json
generated
@@ -4788,6 +4788,15 @@
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-align": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
|
||||
"integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "2.1.1"
|
||||
}
|
||||
},
|
||||
"ansi-colors": {
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
|
||||
@@ -6230,6 +6239,29 @@
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
|
||||
},
|
||||
"boxen": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
|
||||
"integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-align": "2.0.0",
|
||||
"camelcase": "4.1.0",
|
||||
"chalk": "2.4.1",
|
||||
"cli-boxes": "1.0.0",
|
||||
"string-width": "2.1.1",
|
||||
"term-size": "1.2.0",
|
||||
"widest-line": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
|
||||
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@@ -6801,6 +6833,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"cli-boxes": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
|
||||
"integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
|
||||
"dev": true
|
||||
},
|
||||
"cli-cursor": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
|
||||
@@ -7527,6 +7565,12 @@
|
||||
"randomfill": "1.0.4"
|
||||
}
|
||||
},
|
||||
"crypto-random-string": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
|
||||
"integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
|
||||
"dev": true
|
||||
},
|
||||
"css": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
|
||||
@@ -8088,6 +8132,12 @@
|
||||
"integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
|
||||
"dev": true
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
||||
"dev": true
|
||||
},
|
||||
"deep-is": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
@@ -8274,6 +8324,11 @@
|
||||
"integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
|
||||
"dev": true
|
||||
},
|
||||
"dexie": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/dexie/-/dexie-2.0.4.tgz",
|
||||
"integrity": "sha512-aQ/s1U2wHxwBKRrt2Z/mwFNHMQWhESerFsMYzE+5P5OsIe5o1kgpFMWkzKTtkvkyyEni6mWr/T4HUJuY9xIHLA=="
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
@@ -11151,6 +11206,11 @@
|
||||
"integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
|
||||
"dev": true
|
||||
},
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
|
||||
},
|
||||
"import-cwd": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
|
||||
@@ -11179,6 +11239,12 @@
|
||||
"resolve-from": "3.0.0"
|
||||
}
|
||||
},
|
||||
"import-lazy": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
|
||||
"integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
|
||||
"dev": true
|
||||
},
|
||||
"import-local": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
|
||||
@@ -11580,6 +11646,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"is-npm": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
|
||||
"integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
|
||||
"dev": true
|
||||
},
|
||||
"is-number": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
||||
@@ -13432,6 +13504,15 @@
|
||||
"webpack-sources": "1.3.0"
|
||||
}
|
||||
},
|
||||
"latest-version": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
|
||||
"integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"package-json": "4.0.1"
|
||||
}
|
||||
},
|
||||
"launch-editor": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz",
|
||||
@@ -13487,6 +13568,14 @@
|
||||
"type-check": "0.3.2"
|
||||
}
|
||||
},
|
||||
"lie": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
|
||||
"requires": {
|
||||
"immediate": "3.0.6"
|
||||
}
|
||||
},
|
||||
"listr": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/listr/-/listr-0.12.0.tgz",
|
||||
@@ -13764,6 +13853,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"localforage": {
|
||||
"version": "1.7.3",
|
||||
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz",
|
||||
"integrity": "sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==",
|
||||
"requires": {
|
||||
"lie": "3.1.1"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
@@ -13776,8 +13873,7 @@
|
||||
"lodash": {
|
||||
"version": "4.17.11",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
||||
},
|
||||
"lodash._reinterpolate": {
|
||||
"version": "3.0.0",
|
||||
@@ -18208,6 +18304,18 @@
|
||||
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
|
||||
"integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ=="
|
||||
},
|
||||
"package-json": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
|
||||
"integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"got": "6.7.1",
|
||||
"registry-auth-token": "3.3.2",
|
||||
"registry-url": "3.1.0",
|
||||
"semver": "5.6.0"
|
||||
}
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz",
|
||||
@@ -20966,6 +21074,26 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"deep-extend": "0.6.0",
|
||||
"ini": "1.3.5",
|
||||
"minimist": "1.2.0",
|
||||
"strip-json-comments": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||
@@ -21192,6 +21320,25 @@
|
||||
"resolved": "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.5.2.tgz",
|
||||
"integrity": "sha512-XNqSZHJsFGnvEGkg/2IrCp6G8Ya3qLj4mq0bSHil/dfdO82LOxGnMnJjAD9MYCvf/8cDCO8pL+1i65yzmP7rPQ=="
|
||||
},
|
||||
"registry-auth-token": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
|
||||
"integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"rc": "1.2.8",
|
||||
"safe-buffer": "5.1.2"
|
||||
}
|
||||
},
|
||||
"registry-url": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
|
||||
"integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"rc": "1.2.8"
|
||||
}
|
||||
},
|
||||
"regjsgen": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
|
||||
@@ -21564,6 +21711,21 @@
|
||||
"aproba": "1.2.0"
|
||||
}
|
||||
},
|
||||
"rx-lite": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
|
||||
"integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
|
||||
"dev": true
|
||||
},
|
||||
"rx-lite-aggregates": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
|
||||
"integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"rx-lite": "4.0.8"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "5.5.12",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
|
||||
@@ -21810,6 +21972,15 @@
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
|
||||
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
|
||||
},
|
||||
"semver-diff": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
|
||||
"integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"semver": "5.6.0"
|
||||
}
|
||||
},
|
||||
"send": {
|
||||
"version": "0.16.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||
@@ -22810,6 +22981,43 @@
|
||||
"inherits": "2.0.3"
|
||||
}
|
||||
},
|
||||
"term-size": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
|
||||
"integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "0.7.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
|
||||
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "4.1.5",
|
||||
"shebang-command": "1.2.0",
|
||||
"which": "1.3.1"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
|
||||
"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "5.1.0",
|
||||
"get-stream": "3.0.0",
|
||||
"is-stream": "1.1.0",
|
||||
"npm-run-path": "2.0.2",
|
||||
"p-finally": "1.0.0",
|
||||
"signal-exit": "3.0.2",
|
||||
"strip-eof": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"terser": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-3.11.0.tgz",
|
||||
@@ -23686,6 +23894,15 @@
|
||||
"imurmurhash": "0.1.4"
|
||||
}
|
||||
},
|
||||
"unique-string": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
|
||||
"integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"crypto-random-string": "1.0.0"
|
||||
}
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
@@ -23754,6 +23971,66 @@
|
||||
"integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
|
||||
"dev": true
|
||||
},
|
||||
"update-notifier": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
|
||||
"integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"boxen": "1.3.0",
|
||||
"chalk": "2.4.1",
|
||||
"configstore": "3.1.2",
|
||||
"import-lazy": "2.1.0",
|
||||
"is-ci": "1.0.10",
|
||||
"is-installed-globally": "0.1.0",
|
||||
"is-npm": "1.0.0",
|
||||
"latest-version": "3.1.0",
|
||||
"semver-diff": "2.1.0",
|
||||
"xdg-basedir": "3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"configstore": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
|
||||
"integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"dot-prop": "4.2.0",
|
||||
"graceful-fs": "4.1.15",
|
||||
"make-dir": "1.3.0",
|
||||
"unique-string": "1.0.0",
|
||||
"write-file-atomic": "2.3.0",
|
||||
"xdg-basedir": "3.0.0"
|
||||
}
|
||||
},
|
||||
"dot-prop": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
|
||||
"integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-obj": "1.0.1"
|
||||
}
|
||||
},
|
||||
"write-file-atomic": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
|
||||
"integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.15",
|
||||
"imurmurhash": "0.1.4",
|
||||
"signal-exit": "3.0.2"
|
||||
}
|
||||
},
|
||||
"xdg-basedir": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
|
||||
"integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"upper-case": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
|
||||
@@ -23956,6 +24233,17 @@
|
||||
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.4.0.tgz",
|
||||
"integrity": "sha512-MiBI1v2pY22aAEbNrcy7GX9qigoUQE9PbmrAydrBuYNRwn0RbD1RZpMemtmGW3Ju6LBA1yn7TZOPa3lxWrT0Eg=="
|
||||
},
|
||||
"vue-idb": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-idb/-/vue-idb-0.2.0.tgz",
|
||||
"integrity": "sha1-Mtqa+N8ZxG/1HYo8xJbfvm6JDTU=",
|
||||
"requires": {
|
||||
"dexie": "2.0.4",
|
||||
"lodash": "4.17.11",
|
||||
"vue": "2.5.21",
|
||||
"vuex": "3.0.1"
|
||||
}
|
||||
},
|
||||
"vue-jest": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.2.tgz",
|
||||
@@ -25030,6 +25318,15 @@
|
||||
"string-width": "2.1.1"
|
||||
}
|
||||
},
|
||||
"widest-line": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
|
||||
"integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"string-width": "2.1.1"
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
@@ -25150,6 +25447,130 @@
|
||||
"workbox-core": "3.6.3"
|
||||
}
|
||||
},
|
||||
"workbox-cli": {
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/workbox-cli/-/workbox-cli-3.6.3.tgz",
|
||||
"integrity": "sha512-l97OZ4sGnnHzlHsqHCOuK0s2hh7OjZTPhP3w6iKqzD9uR2JctXvUB7gB2MmD00ihD3kTyaR8HLCmEI2uZCzkbw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.4.1",
|
||||
"common-tags": "1.4.0",
|
||||
"fs-extra": "4.0.3",
|
||||
"glob": "7.1.3",
|
||||
"inquirer": "3.3.0",
|
||||
"meow": "3.7.0",
|
||||
"ora": "1.4.0",
|
||||
"pretty-bytes": "4.0.2",
|
||||
"update-notifier": "2.5.0",
|
||||
"workbox-build": "3.6.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-escapes": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
|
||||
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
|
||||
"dev": true
|
||||
},
|
||||
"chardet": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
|
||||
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
|
||||
"dev": true
|
||||
},
|
||||
"external-editor": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
|
||||
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chardet": "0.4.2",
|
||||
"iconv-lite": "0.4.24",
|
||||
"tmp": "0.0.33"
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
||||
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "1.0.5"
|
||||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
|
||||
"integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.15",
|
||||
"jsonfile": "4.0.0",
|
||||
"universalify": "0.1.2"
|
||||
}
|
||||
},
|
||||
"inquirer": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
|
||||
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-escapes": "3.1.0",
|
||||
"chalk": "2.4.1",
|
||||
"cli-cursor": "2.1.0",
|
||||
"cli-width": "2.2.0",
|
||||
"external-editor": "2.2.0",
|
||||
"figures": "2.0.0",
|
||||
"lodash": "4.17.11",
|
||||
"mute-stream": "0.0.7",
|
||||
"run-async": "2.3.0",
|
||||
"rx-lite": "4.0.8",
|
||||
"rx-lite-aggregates": "4.0.8",
|
||||
"string-width": "2.1.1",
|
||||
"strip-ansi": "4.0.0",
|
||||
"through": "2.3.8"
|
||||
}
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
|
||||
"integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.15"
|
||||
}
|
||||
},
|
||||
"ora": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
|
||||
"integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.4.1",
|
||||
"cli-cursor": "2.1.0",
|
||||
"cli-spinners": "1.3.1",
|
||||
"log-symbols": "2.2.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "3.0.0"
|
||||
}
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-tmpdir": "1.0.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"workbox-core": {
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.6.3.tgz",
|
||||
|
||||
31
package.json
31
package.json
@@ -10,15 +10,13 @@
|
||||
"pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa",
|
||||
"test:unit": "jest",
|
||||
"test:cover": "jest --coverage",
|
||||
"build": "quasar build -m pwa",
|
||||
"build": "quasar build -m pwa && workbox generateSW workbox-config.js",
|
||||
"build:clean": "quasar clean",
|
||||
"serve": "quasar serve ./dist/pwa-mat",
|
||||
"serve:coverage": "quasar serve test/coverage/lcov-report/ --cache 0 --port 8788",
|
||||
"deploy": "deploy.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"quasar-extras": "^2.0.8",
|
||||
"quasar-framework": "0.17.17",
|
||||
"@types/vuelidate": "^0.7.0",
|
||||
"acorn": "^6.0.0",
|
||||
"axios": "^0.18.0",
|
||||
@@ -26,19 +24,23 @@
|
||||
"bcrypt": "^3.0.2",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"dotenv": "^6.1.0",
|
||||
"graphql": "^0.13.2",
|
||||
"graphql-tag": "^2.8.0",
|
||||
"element-ui": "^2.3.6",
|
||||
"google-translate-api": "^2.3.0",
|
||||
"graphql": "^0.13.2",
|
||||
"graphql-tag": "^2.8.0",
|
||||
"js-cookie": "^2.2.0",
|
||||
"localforage": "^1.7.3",
|
||||
"normalize.css": "^8.0.0",
|
||||
"npm": "^6.4.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"quasar-extras": "^2.0.8",
|
||||
"quasar-framework": "0.17.17",
|
||||
"register-service-worker": "^1.0.0",
|
||||
"vee-validate": "^2.1.2",
|
||||
"vue": "^2.5.17",
|
||||
"vue-class-component": "^6.3.2",
|
||||
"vue-i18n": "^8.1.0",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-property-decorator": "^7.2.0",
|
||||
"vue-router": "^3.0.1",
|
||||
"vue-svgicon": "^3.1.0",
|
||||
@@ -50,25 +52,24 @@
|
||||
"vuex-typex": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/runtime": "7.0.0-beta.54",
|
||||
"@babel/core": "7.0.0-beta.50",
|
||||
"@babel/code-frame": "7.0.0-beta.54",
|
||||
"@babel/core": "7.0.0-beta.50",
|
||||
"@babel/generator": "7.0.0-beta.54",
|
||||
"@babel/helpers": "7.0.0-beta.54",
|
||||
"@babel/parser": "7.0.0-beta.54",
|
||||
"@babel/preset-env": "7.0.0-beta.54",
|
||||
"@babel/preset-react": "7.0.0",
|
||||
"@babel/runtime": "7.0.0-beta.54",
|
||||
"@babel/template": "7.0.0-beta.54",
|
||||
"@babel/traverse": "7.0.0-beta.54",
|
||||
"@babel/types": "7.0.0-beta.54",
|
||||
"@babel/preset-env": "7.0.0-beta.54",
|
||||
"@vue/babel-preset-app": "3.1.1",
|
||||
"@babel/preset-react": "7.0.0",
|
||||
"babel-plugin-transform-imports": "1.5.1",
|
||||
"@types/dotenv": "^4.0.3",
|
||||
"@types/jest": "^23.1.4",
|
||||
"@types/js-cookie": "^2.1.0",
|
||||
"@types/node": "^10.12.2",
|
||||
"@types/nprogress": "^0.0.29",
|
||||
"@types/webpack-env": "^1.13.6",
|
||||
"@vue/babel-preset-app": "3.1.1",
|
||||
"@vue/cli-plugin-babel": "^3.0.1",
|
||||
"@vue/cli-plugin-e2e-cypress": "^3.0.1",
|
||||
"@vue/cli-plugin-pwa": "^3.0.1",
|
||||
@@ -77,14 +78,15 @@
|
||||
"@vue/cli-service": "^3.0.1",
|
||||
"@vue/test-utils": "^1.0.0-beta.20",
|
||||
"babel-loader": "^8.0.0-beta.2",
|
||||
"babel-plugin-transform-imports": "1.5.1",
|
||||
"eslint": "^5.5.0",
|
||||
"html-webpack-plugin": "^2.8.1",
|
||||
"http-proxy-middleware": "^0.17.0",
|
||||
"jest": "^23.6.0",
|
||||
"json-loader": "^0.5.4",
|
||||
"node-sass": "^4.9.0",
|
||||
"node-sass": "^4.11.0",
|
||||
"quasar-cli": "^0.17.20",
|
||||
"sass-loader": "^7.0.1",
|
||||
"sass-loader": "^7.1.0",
|
||||
"strip-ansi": "=3.0.1",
|
||||
"ts-jest": "^23.0.0",
|
||||
"ts-loader": "^5.3.0",
|
||||
@@ -98,7 +100,8 @@
|
||||
"webpack": "^4.0.0",
|
||||
"webpack-dev-middleware": "^3.2.0",
|
||||
"webpack-hot-middleware": "^2.24.3",
|
||||
"webpack-merge": "^4.0.0"
|
||||
"webpack-merge": "^4.0.0",
|
||||
"workbox-cli": "^3.6.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.0",
|
||||
|
||||
@@ -59,7 +59,7 @@ module.exports = function (ctx) {
|
||||
store: 'src/store/index.ts'
|
||||
},
|
||||
// app plugins (/src/plugins)
|
||||
plugins: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler'],
|
||||
plugins: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'indexdb', 'vue-idb'],
|
||||
css: [
|
||||
'app.styl'
|
||||
],
|
||||
@@ -145,6 +145,7 @@ module.exports = function (ctx) {
|
||||
'QInnerLoading',
|
||||
'QSpinnerGears',
|
||||
'QDatetime',
|
||||
'QSlideTransition',
|
||||
],
|
||||
directives: [
|
||||
'Ripple',
|
||||
|
||||
13
src/App.vue
13
src/App.vue
@@ -18,9 +18,9 @@
|
||||
<script lang="ts">
|
||||
import Vue from "vue"
|
||||
import { Component } from 'vue-property-decorator'
|
||||
import { UserStore } from '@store'
|
||||
import { EventBus, RootState, storeBuilder, DebugMode } from '@store'
|
||||
import router from "./router"
|
||||
import { UserStore } from '@store'
|
||||
|
||||
import $ from "jquery"
|
||||
|
||||
@@ -37,16 +37,21 @@
|
||||
|
||||
created() {
|
||||
//this.title = 'My Vue and CosmosDB Heroes App'
|
||||
if (process.env.DEV){
|
||||
if (process.env.DEV) {
|
||||
console.info("SESSIONE IN SVILUPPO ! (DEV)")
|
||||
console.info(process.env)
|
||||
}
|
||||
if (process.env.PROD){
|
||||
if (process.env.PROD) {
|
||||
console.info("SESSIONE IN PRODUZIONE!")
|
||||
console.info(process.env)
|
||||
}
|
||||
|
||||
UserStore.mutations.autologin()
|
||||
UserStore.actions.autologin()
|
||||
.then((loginEseguito) => {
|
||||
if (loginEseguito) {
|
||||
// this.$router.replace('/')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
id="g4561-6-7-0">
|
||||
<g
|
||||
transform="translate(16.233481,0)"
|
||||
style="font-style:normal;font-weight:normal;font-size:50.25774765px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#263238;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
style="font-style:normal;font-weight:normal;font-size:50.25774765px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#2632AA;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="flowRoot4513-6-6-08">
|
||||
<path
|
||||
d="m -402.73125,631.46823 q -0.6125,0.0438 -1.3125,0.0875 -0.65625,0 -1.4,0 l -9.31875,0 q -12.81875,0 -12.81875,-8.44375 l 0,-13.475 q 0,-8.26875 12.6,-8.26875 l 9.75625,0 q 12.6,0 12.6,8.26875 l 0,13.475 q 0,5.03125 -4.4625,7.04375 l 3.10625,2.14375 q 1.35625,0.83125 1.35625,1.70625 0,0.875 -0.7,1.3125 -0.65625,0.48125 -1.88125,0.48125 -0.30625,0 -0.7875,-0.13125 -0.4375,-0.0875 -1.05,-0.48125 l -5.6875,-3.71875 z m 5.38125,-21.74375 q 0,-4.76875 -7.9625,-4.76875 l -9.58125,0 q -7.9625,0 -7.9625,4.76875 l 0,13.3875 q 0,4.94375 8.3125,4.94375 l 8.88125,0 q 8.3125,0 8.3125,-4.94375 l 0,-13.3875 z"
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<q-layout-header>
|
||||
<q-toolbar
|
||||
color="primary"
|
||||
@@ -40,10 +41,9 @@
|
||||
|
||||
</q-layout-header>
|
||||
|
||||
|
||||
<q-layout-drawer side="left"
|
||||
v-model="leftDrawerOpen"
|
||||
:content-class="['bg-grey-3', 'q-pa-sm']"
|
||||
:content-class="['bg-grey-1', 'q-pa-sm']"
|
||||
:content-style="{padding: '0px'}"
|
||||
>
|
||||
<drawer></drawer>
|
||||
@@ -59,6 +59,9 @@
|
||||
import drawer from '../layouts/drawer/drawer.vue'
|
||||
import messagePopover from '../layouts/toolbar/messagePopover/messagePopover.vue'
|
||||
|
||||
import { GlobalStore } from '@modules'
|
||||
import { rescodes } from '../store/Modules/rescodes'
|
||||
|
||||
@Component({
|
||||
components: {
|
||||
drawer,
|
||||
@@ -76,7 +79,15 @@
|
||||
{ label: 'Spanish', icon: 'fa-flag-es', value: 'es' },
|
||||
{ label: 'Italian', icon: 'fa-facebook', value: 'it' }
|
||||
]
|
||||
public leftDrawerOpen = false;
|
||||
|
||||
get leftDrawerOpen() {
|
||||
return GlobalStore.state.leftDrawerOpen
|
||||
}
|
||||
|
||||
set leftDrawerOpen(value) {
|
||||
GlobalStore.state.leftDrawerOpen = value
|
||||
localStorage.setItem(rescodes.localStorage.leftDrawerOpen, value.toString())
|
||||
}
|
||||
|
||||
get lang() {
|
||||
return this.$q.i18n.lang
|
||||
@@ -103,17 +114,23 @@
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style lang="scss">
|
||||
.layout-padding {
|
||||
padding: 1em 4em;
|
||||
}
|
||||
|
||||
.item-content {
|
||||
font-size: 0.8rem;
|
||||
font-weight: 350;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.layout-padding {
|
||||
padding: 1.5em .5em;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@-webkit-keyframes moveFromLeftFade {
|
||||
from {
|
||||
opacity: 0.3;
|
||||
@@ -129,6 +146,21 @@
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes moveFromTopFade {
|
||||
from {
|
||||
opacity: 0.3;
|
||||
-webkit-transform: translateY(0%);
|
||||
}
|
||||
}
|
||||
@keyframes moveFromTopFade {
|
||||
from {
|
||||
opacity: 0.3;
|
||||
-webkit-transform: translateY(0%);
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@-webkit-keyframes moveToRight {
|
||||
from {
|
||||
}
|
||||
@@ -167,6 +199,25 @@
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes moveToBottom {
|
||||
from {
|
||||
}
|
||||
to {
|
||||
opacity: .5;
|
||||
-webkit-transform: translateY(-100%);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes moveToBottom {
|
||||
from {
|
||||
}
|
||||
to {
|
||||
opacity: .5;
|
||||
-webkit-transform: translateY(-100%);
|
||||
transform: translateY(-100%);
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes moveFromRight {
|
||||
from {
|
||||
opacity: .7;
|
||||
@@ -181,17 +232,18 @@
|
||||
transform: translateX(100%);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
.drawer-closer .item-content {
|
||||
margin-left: 50px !important;
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
.drawer-content .list-label {
|
||||
line-height: 45px;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
.drawer-content .item {
|
||||
height: 45px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.router-link-active .item-primary {
|
||||
@@ -272,7 +324,7 @@
|
||||
}
|
||||
|
||||
.toolbar {
|
||||
min-height: 40px;
|
||||
min-height: 30px;
|
||||
}
|
||||
|
||||
.right-itens a, .right-itens button {
|
||||
@@ -291,4 +343,6 @@
|
||||
.fa-flag-it:before {
|
||||
content: url('../statics/icons/flag_it.svg');
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
3
src/components/categories/category/category.scss
Normal file
3
src/components/categories/category/category.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
.mycard {
|
||||
visibility: hidden;
|
||||
}
|
||||
67
src/components/categories/category/category.ts
Normal file
67
src/components/categories/category/category.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import Vue from 'vue'
|
||||
import { Component } from 'vue-property-decorator'
|
||||
|
||||
require('./category.scss')
|
||||
|
||||
|
||||
@Component({})
|
||||
export default class Category extends Vue {
|
||||
filter: boolean = false
|
||||
category: string = ''
|
||||
categories_arr: any[] = null
|
||||
|
||||
created() {
|
||||
this.loadCat()
|
||||
}
|
||||
|
||||
async loadCat() {
|
||||
await this.$db.categories.toArray().then(ris => this.categories_arr = ris)
|
||||
|
||||
this.updatetable()
|
||||
}
|
||||
|
||||
async insertCategory() {
|
||||
|
||||
let myid = 0
|
||||
const mycat = this.category
|
||||
// Add to Indexdb
|
||||
await this.$db.categories.add(
|
||||
{ descr_it: mycat }
|
||||
).then(ris => {
|
||||
myid = ris
|
||||
})
|
||||
|
||||
// created_at: new Date(),
|
||||
|
||||
// Add into the memory
|
||||
this.categories_arr.push({ descr_it: mycat, id: myid })
|
||||
|
||||
this.updatetable()
|
||||
}
|
||||
|
||||
updatetable() {
|
||||
|
||||
this.filterCategories()
|
||||
|
||||
}
|
||||
|
||||
async filterCategories() {
|
||||
|
||||
if (this.filter) {
|
||||
// #Todo If need to filter the output database ...
|
||||
this.$db.categories
|
||||
.where('descr_it').notEqual('nonlovedi')
|
||||
.toArray()
|
||||
.then((response) => {
|
||||
Promise.all(response.map(key => key))
|
||||
.then((myarr) => {
|
||||
this.categories_arr = [...myarr]
|
||||
return this.categories_arr
|
||||
})
|
||||
})
|
||||
} else {
|
||||
return this.categories_arr
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
20
src/components/categories/category/category.vue
Normal file
20
src/components/categories/category/category.vue
Normal file
@@ -0,0 +1,20 @@
|
||||
<template>
|
||||
<q-page>
|
||||
<div class="panel">
|
||||
<p class="caption">Category:</p>
|
||||
|
||||
<q-input v-model="category" inverted float-label="Inserisci la Categoria"
|
||||
:after="[{icon: 'arrow_forward', content: true, handler () {}}]"
|
||||
v-on:keyup.enter="insertCategory"/>
|
||||
|
||||
<ul>
|
||||
Lista:
|
||||
<li v-for="item in categories_arr" :key="item.id"> {{ item.descr_it }} </li>
|
||||
</ul>
|
||||
</div>
|
||||
</q-page>
|
||||
|
||||
|
||||
</template>
|
||||
<script lang="ts" src="./category.ts">
|
||||
</script>
|
||||
@@ -1 +1,4 @@
|
||||
// app global css
|
||||
/*------------------------------------------------------------------
|
||||
[Table of contents]
|
||||
# overwrite some style of stylus
|
||||
|
||||
@@ -14,6 +14,7 @@ const messages = {
|
||||
SignIn: 'Login',
|
||||
vreg: 'Verifica Reg',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
},
|
||||
components: {
|
||||
authentication:{
|
||||
@@ -98,6 +99,7 @@ const messages = {
|
||||
SignIn: 'SignIn',
|
||||
vreg: 'Verify Reg',
|
||||
Test: 'Test',
|
||||
Category: 'Category',
|
||||
},
|
||||
components: {
|
||||
authentication:{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova) { %>, viewport-fit=cover<% } %>">
|
||||
content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
<link rel="icon" href="statics/quasar-logo.png" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="statics/icons/favicon-32x32.png">
|
||||
@@ -16,6 +16,8 @@
|
||||
<script defer src="statics/js/material.min.js"></script>
|
||||
<script src="statics/js/promise.js"></script>
|
||||
<script src="statics/js/fetch.js"></script>
|
||||
<script src="statics/js/idb.js"></script>
|
||||
|
||||
<link type="text/css" rel="stylesheet" href="statics/firebaseui.css" />
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<template lang="pug">
|
||||
q-layout(view="lHh Lpr lFf")
|
||||
q-layout-header
|
||||
q-toolbar.row(color="primary", glossy)
|
||||
q-toolbar-title.col
|
||||
span Quasar TypeScript
|
||||
div(slot="subtitle") Quasar v{{ $q.version }}
|
||||
|
||||
q-btn-dropdown(ref="selectLanguages", v-if="hasMultipleLanguages", icon="language", :label="currentLanguage.code", flat, dense)
|
||||
q-list(link)
|
||||
q-item(v-close-overlay, v-for="(language, index) in availableLanguages", :key="index", @click.native="setLanguage(language.code)")
|
||||
q-item-main
|
||||
q-item-tile(label) {{ language.name }}
|
||||
q-item-side(v-if="language.code === currentLanguage.code", right, icon="done", color="primary")
|
||||
q-page-container
|
||||
router-view
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { Vue, Component, Mixins } from 'vue-property-decorator'
|
||||
import { Mixin as i18nMixin } from '@/plugins/i18n'
|
||||
|
||||
@Component
|
||||
export default class MainLayout extends Mixins(i18nMixin) {}
|
||||
</script>
|
||||
@@ -7,8 +7,8 @@
|
||||
<span class="text-white"> {{ Username }} </span>
|
||||
<hr>
|
||||
<span class="text-white" v-if="Verificato"> {{$t('reg.verificato')}} </span>
|
||||
<span class="text-white" v-else> {{$t('reg.non_verificato')}} </span>
|
||||
<span class="text-white"> {{ Email }} </span>
|
||||
<span class="text-white background-red" v-else> {{$t('reg.non_verificato')}} </span>
|
||||
<!-- <span class="text-white"> {{ Email }} </span>-->
|
||||
</div>
|
||||
<div id="user-actions">
|
||||
<q-btn round color="primary" icon="person"></q-btn>
|
||||
@@ -19,6 +19,10 @@
|
||||
|
||||
<menu-one :links="links"></menu-one>
|
||||
|
||||
<!--<footer>
|
||||
<small>- Small</small>
|
||||
</footer>-->
|
||||
|
||||
<div class="fixed-bottom text-center light text-italic">
|
||||
Powered by Perseo
|
||||
</div>
|
||||
@@ -31,8 +35,8 @@
|
||||
|
||||
import Vue from 'vue'
|
||||
import { Component, Watch, Prop } from 'vue-property-decorator'
|
||||
import {Store} from 'vuex'
|
||||
import { UserStore } from '@modules';
|
||||
import { Store } from 'vuex'
|
||||
import { UserStore } from '@modules'
|
||||
import { GlobalStore } from '@modules'
|
||||
|
||||
|
||||
@@ -43,9 +47,9 @@
|
||||
})
|
||||
export default class Drawer extends Vue {
|
||||
public $q
|
||||
$t: any;
|
||||
$t: any
|
||||
|
||||
created () {
|
||||
created() {
|
||||
console.log('Drawer created...')
|
||||
}
|
||||
|
||||
@@ -54,34 +58,36 @@
|
||||
links = {
|
||||
Dashboard: {
|
||||
routes: [
|
||||
{route: '/', faIcon: 'fa fa-home', materialIcon: 'home', name: 'pages.home'},
|
||||
{route: '/signup', faIcon: 'fa fa-signup', materialIcon: 'login', name: 'pages.SignUp'},
|
||||
{route: '/signin', faIcon: 'fa fa-login', materialIcon: 'login', name: 'pages.SignIn'},
|
||||
{ route: '/', faIcon: 'fa fa-home', materialIcon: 'home', name: 'pages.home' },
|
||||
{ route: '/category', faIcon: 'fa fa-list-alt', materialIcon: 'category', name: 'pages.Category' },
|
||||
{ route: '/signup', faIcon: 'fa fa-registered', materialIcon: 'home', name: 'pages.SignUp' },
|
||||
{ route: '/signin', faIcon: 'fa fa-anchor', materialIcon: 'home', name: 'pages.SignIn' },
|
||||
/* {route: '/vreg?idlink=aaa', faIcon: 'fa fa-login', materialIcon: 'login', name: 'pages.vreg'},*/
|
||||
],
|
||||
],
|
||||
show: true
|
||||
},
|
||||
Forms: {
|
||||
routes: [
|
||||
{route: '/prec', faIcon: 'fa fa-search', materialIcon: 'search', name: 'pages.Test'},
|
||||
],
|
||||
{ route: '/prec', faIcon: 'fa fa-search', materialIcon: 'search', name: 'pages.Test' },
|
||||
],
|
||||
show: false
|
||||
},
|
||||
}
|
||||
|
||||
get MenuCollapse () {
|
||||
get MenuCollapse() {
|
||||
return GlobalStore.state.menuCollapse
|
||||
// return true
|
||||
}
|
||||
get Username () {
|
||||
|
||||
get Username() {
|
||||
return UserStore.state.username
|
||||
}
|
||||
|
||||
get Verificato () {
|
||||
get Verificato() {
|
||||
return UserStore.state.verifiedEmail
|
||||
}
|
||||
|
||||
get Email () {
|
||||
get Email() {
|
||||
return UserStore.state.email
|
||||
}
|
||||
|
||||
@@ -91,7 +97,12 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
<style scoped lang="scss">
|
||||
.background-red {
|
||||
background-color: red;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.fixed-bottom {
|
||||
margin-bottom: 1%;
|
||||
}
|
||||
@@ -127,4 +138,10 @@
|
||||
#menu-collapse {
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
footer {
|
||||
small {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
<template>
|
||||
|
||||
<div class="list no-border platform-delimiter light-paragraph">
|
||||
<q-icon name="action"/>
|
||||
<template v-for="(parent, index) in links">
|
||||
<q-list>
|
||||
<div class="list-label cursor-pointer" @click="parent.show = !parent.show">
|
||||
{{replaceUnderlineToSpace(index)}}
|
||||
{{replaceUnderlineToSpace(index)}} <div class="menu_freccina"><i aria-hidden="true" class="v-icon material-icons theme--light">keyboard_arrow_down</i></div>
|
||||
</div>
|
||||
<template v-for="child in parent.routes">
|
||||
<transition name="menu">
|
||||
<q-slide-transition :duration=200>
|
||||
<div v-show="parent.show">
|
||||
<q-item link :to="child.route" exact class="item item-link drawer-closer cursor-pointer">
|
||||
<i :class="child.faIcon" class="item-primary"></i>
|
||||
<div class="item-content">{{$t(child.name)}}</div>
|
||||
</q-item>
|
||||
<q-item link :to="child.route" exact
|
||||
class="item item-link drawer-closer cursor-pointer">
|
||||
<i :class="child.faIcon" class="item-primary"></i>
|
||||
<div class="item-content">{{$t(child.name)}}</div>
|
||||
</q-item>
|
||||
</div>
|
||||
</transition>
|
||||
</q-slide-transition>
|
||||
</template>
|
||||
</q-list>
|
||||
<hr>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
@@ -60,6 +61,11 @@
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
.menu-hr{
|
||||
border-color: #dedede;
|
||||
height: 0.5px;
|
||||
}
|
||||
|
||||
.router-link-active {
|
||||
color: #027be3;
|
||||
background-color: #dadada !important;
|
||||
@@ -68,19 +74,21 @@
|
||||
|
||||
.list-label:first-child {
|
||||
line-height: 20px;
|
||||
padding:5px;
|
||||
margin:1px;
|
||||
padding: 5px;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
/*
|
||||
.menu-enter-active, .scale-enter {
|
||||
-webkit-animation: moveFromLeftFade .2s ease both;
|
||||
animation: moveFromLeftFade .2s ease both;
|
||||
-webkit-animation: moveFromTopFade .5s ease both;
|
||||
animation: moveFromTopFade .5s ease both;
|
||||
}
|
||||
|
||||
.menu-leave-to, .scale-leave-active {
|
||||
-webkit-animation: moveToLeft .2s ease both;
|
||||
animation: moveToLeft .2s ease both;
|
||||
-webkit-animation: moveToBottom .5s ease both;
|
||||
animation: moveToBottom .5s ease both;
|
||||
}
|
||||
*/
|
||||
|
||||
.router-link-active {
|
||||
color: #027be3;
|
||||
@@ -91,4 +99,14 @@
|
||||
.router-link-active .item-primary {
|
||||
color: #027be3;
|
||||
}
|
||||
|
||||
.menu_freccina {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
display: inline-block;
|
||||
padding: 0 0px 0px 0px;
|
||||
-webkit-transform: rotate(-180deg);
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -8,6 +8,7 @@ export interface IGlobalState {
|
||||
layoutNeeded: boolean
|
||||
mobileMode: boolean
|
||||
menuCollapse: boolean
|
||||
leftDrawerOpen: boolean
|
||||
posts: IPost[]
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<template>
|
||||
<q-page>Prova pagina</q-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
// name: 'PageName',
|
||||
}
|
||||
</script>
|
||||
5
src/plugins/indexdb.js
Normal file
5
src/plugins/indexdb.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import VueIdb from 'vue-idb'
|
||||
|
||||
export default ({ Vue }) => {
|
||||
Vue.use(VueIdb)
|
||||
}
|
||||
28
src/plugins/vue-idb.js
Normal file
28
src/plugins/vue-idb.js
Normal file
@@ -0,0 +1,28 @@
|
||||
import Vue from 'vue'
|
||||
import VueIdb from 'vue-idb'
|
||||
|
||||
export default ({ Vue }) => {
|
||||
Vue.use(VueIdb)
|
||||
|
||||
// Insert here the database for IndexDB
|
||||
new VueIdb({
|
||||
version: 1,
|
||||
database: 'test',
|
||||
schemas: [
|
||||
{ categories: '++id, sub_categ_id, descr_it' }
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
export default new VueIdb({
|
||||
version: 1,
|
||||
database: 'test',
|
||||
schemas: [
|
||||
{ categories: '++id, sub_categ_id, descr_it' }
|
||||
]
|
||||
})
|
||||
*/
|
||||
@@ -28,6 +28,11 @@ export const RouteConfig: VueRouteConfig[] = [
|
||||
path: '/vreg',
|
||||
component: () => import('@/views/login/vreg/vreg.vue'),
|
||||
meta: { name: 'Verify Reg' }
|
||||
},
|
||||
{
|
||||
path: '/category',
|
||||
component: () => import('@/components/categories/category/category.vue'),
|
||||
meta: { name: 'Categories' }
|
||||
}
|
||||
/*
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@ const state: IGlobalState = {
|
||||
layoutNeeded: true,
|
||||
mobileMode: false,
|
||||
menuCollapse: true,
|
||||
leftDrawerOpen: true,
|
||||
posts: []
|
||||
}
|
||||
|
||||
@@ -31,8 +32,13 @@ namespace Mutations {
|
||||
state.conta = num
|
||||
}
|
||||
|
||||
function setleftDrawerOpen(state: IGlobalState, bool: boolean) {
|
||||
state.leftDrawerOpen = bool
|
||||
}
|
||||
|
||||
export const mutations = {
|
||||
setConta: b.commit(setConta)
|
||||
setConta: b.commit(setConta),
|
||||
setleftDrawerOpen: b.commit(setleftDrawerOpen)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import router from '@router'
|
||||
|
||||
import { serv_constants } from '../Modules/serv_constants'
|
||||
import { rescodes } from '../Modules/rescodes'
|
||||
import { UserStore } from "@store"
|
||||
import { GlobalStore, UserStore } from '@store'
|
||||
|
||||
const bcrypt = require('bcryptjs')
|
||||
|
||||
@@ -109,37 +109,6 @@ namespace Mutations {
|
||||
state.verifiedEmail = false
|
||||
}
|
||||
|
||||
function autologin (state: IUserState) {
|
||||
// INIT
|
||||
UserStore.mutations.setlang(process.env.LANG_DEFAULT)
|
||||
// ++Todo: Estrai la Lang dal Localstorage
|
||||
const lang = localStorage.getItem('lang')
|
||||
if (lang) {
|
||||
UserStore.mutations.setlang(lang)
|
||||
}
|
||||
|
||||
const token = localStorage.getItem('token')
|
||||
if (!token) {
|
||||
return
|
||||
}
|
||||
const expirationDateStr = localStorage.getItem('expirationDate')
|
||||
let expirationDate = new Date(String(expirationDateStr))
|
||||
const now = new Date()
|
||||
if (now >= expirationDate) {
|
||||
return
|
||||
}
|
||||
const userId = Number(localStorage.getItem('userId'))
|
||||
const username = String(localStorage.getItem('username'))
|
||||
const verifiedEmail = localStorage.getItem('verificato') === '1'
|
||||
|
||||
mutations.authUser({
|
||||
username: username,
|
||||
userId: userId,
|
||||
idToken: token,
|
||||
verifiedEmail: verifiedEmail
|
||||
})
|
||||
}
|
||||
|
||||
export const mutations = {
|
||||
authUser: b.commit(authUser),
|
||||
setpassword: b.commit(setpassword),
|
||||
@@ -147,8 +116,7 @@ namespace Mutations {
|
||||
setlang: b.commit(setlang),
|
||||
UpdatePwd: b.commit(UpdatePwd),
|
||||
setServerCode: b.commit(setServerCode),
|
||||
clearAuthData: b.commit(clearAuthData),
|
||||
autologin: b.commit(autologin)
|
||||
clearAuthData: b.commit(clearAuthData)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -200,7 +168,7 @@ namespace Actions {
|
||||
})
|
||||
.then((body) => {
|
||||
Mutations.mutations.UpdatePwd({ idToken: x_auth_token })
|
||||
localStorage.setItem('token', x_auth_token)
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
|
||||
return { code: body.code, msg: body.msg }
|
||||
}).catch((err) => {
|
||||
@@ -278,7 +246,10 @@ namespace Actions {
|
||||
// console.log("RITORNO 2 ");
|
||||
// mutations.setServerCode(myres);
|
||||
if (body.code === serv_constants.RIS_CODE_EMAIL_VERIFIED) {
|
||||
localStorage.setItem('verificato', '1')
|
||||
console.log('VERIFICATO !!')
|
||||
localStorage.setItem(rescodes.localStorage.verifiedEmail, '1')
|
||||
} else {
|
||||
console.log('Risultato di vreg: ', body.code)
|
||||
}
|
||||
return { code: body.code, msg: body.msg }
|
||||
}).catch((err) => {
|
||||
@@ -353,12 +324,12 @@ namespace Actions {
|
||||
|
||||
const now = new Date()
|
||||
// const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000);
|
||||
const expirationDate = new Date(now.getTime() + 1000)
|
||||
localStorage.setItem('username', username)
|
||||
localStorage.setItem('token', x_auth_token)
|
||||
localStorage.setItem('userId', iduser)
|
||||
localStorage.setItem('expirationDate', expirationDate.toString())
|
||||
localStorage.setItem('verificato', '0')
|
||||
const expirationDate = new Date(now.getTime() * 1000)
|
||||
localStorage.setItem(rescodes.localStorage.username, username)
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
localStorage.setItem(rescodes.localStorage.userId, iduser)
|
||||
localStorage.setItem(rescodes.localStorage.expirationDate, expirationDate.toString())
|
||||
localStorage.setItem(rescodes.localStorage.verifiedEmail, '0')
|
||||
// dispatch('storeUser', authData);
|
||||
// dispatch('setLogoutTimer', myres.data.expiresIn);
|
||||
|
||||
@@ -438,7 +409,7 @@ namespace Actions {
|
||||
if (myres.status === 200) {
|
||||
let iduser = body._id
|
||||
let username = authData.username
|
||||
let verifiedEmail = body.verifiedEmail === 'true' || body.verifiedEmail === true
|
||||
let verifiedEmail = body.verified_email === 'true' || body.verified_email === true
|
||||
if (process.env.DEV) {
|
||||
console.log('USERNAME = ' + username)
|
||||
console.log('IDUSER= ' + iduser)
|
||||
@@ -452,13 +423,13 @@ namespace Actions {
|
||||
|
||||
const now = new Date()
|
||||
// const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000);
|
||||
const expirationDate = new Date(now.getTime() + 1000)
|
||||
localStorage.setItem('username', username)
|
||||
localStorage.setItem('token', x_auth_token)
|
||||
localStorage.setItem('userId', iduser)
|
||||
localStorage.setItem('expirationDate', expirationDate.toString())
|
||||
localStorage.setItem('isLoggedin', String(true))
|
||||
localStorage.setItem('verificato', String(verifiedEmail))
|
||||
const expirationDate = new Date(now.getTime() * 1000)
|
||||
localStorage.setItem(rescodes.localStorage.username, username)
|
||||
localStorage.setItem(rescodes.localStorage.token, x_auth_token)
|
||||
localStorage.setItem(rescodes.localStorage.userId, iduser)
|
||||
localStorage.setItem(rescodes.localStorage.expirationDate, expirationDate.toString())
|
||||
localStorage.setItem(rescodes.localStorage.isLogged, String(true))
|
||||
localStorage.setItem(rescodes.localStorage.verifiedEmail, Number(verifiedEmail).toString())
|
||||
|
||||
// dispatch('storeUser', authData);
|
||||
// dispatch('setLogoutTimer', myres.data.expiresIn);
|
||||
@@ -507,16 +478,60 @@ namespace Actions {
|
||||
Mutations.mutations.clearAuthData()
|
||||
})
|
||||
|
||||
localStorage.removeItem('expirationDate')
|
||||
localStorage.removeItem('token')
|
||||
localStorage.removeItem('userId')
|
||||
localStorage.removeItem('username')
|
||||
localStorage.removeItem('isLoggedin')
|
||||
localStorage.removeItem('verifiedEmail')
|
||||
localStorage.removeItem(rescodes.localStorage.expirationDate)
|
||||
localStorage.removeItem(rescodes.localStorage.token)
|
||||
localStorage.removeItem(rescodes.localStorage.userId)
|
||||
localStorage.removeItem(rescodes.localStorage.username)
|
||||
localStorage.removeItem(rescodes.localStorage.isLogged)
|
||||
// localStorage.removeItem(rescodes.localStorage.leftDrawerOpen)
|
||||
localStorage.removeItem(rescodes.localStorage.verifiedEmail)
|
||||
|
||||
router.push('/signin')
|
||||
}
|
||||
|
||||
function setGlobal() {
|
||||
GlobalStore.mutations.setleftDrawerOpen(localStorage.getItem(rescodes.localStorage.leftDrawerOpen) === 'true')
|
||||
}
|
||||
|
||||
async function autologin (context) {
|
||||
try {
|
||||
// INIT
|
||||
UserStore.mutations.setlang(process.env.LANG_DEFAULT)
|
||||
// ++Todo: Estrai la Lang dal Localstorage
|
||||
const lang = localStorage.getItem('lang')
|
||||
if (lang) {
|
||||
UserStore.mutations.setlang(lang)
|
||||
}
|
||||
|
||||
const token = localStorage.getItem(rescodes.localStorage.token)
|
||||
if (!token) {
|
||||
return false
|
||||
}
|
||||
const expirationDateStr = localStorage.getItem(rescodes.localStorage.expirationDate)
|
||||
let expirationDate = new Date(String(expirationDateStr))
|
||||
const now = new Date()
|
||||
if (now >= expirationDate) {
|
||||
return false
|
||||
}
|
||||
const userId = Number(localStorage.getItem(rescodes.localStorage.userId))
|
||||
const username = String(localStorage.getItem(rescodes.localStorage.username))
|
||||
const verifiedEmail = localStorage.getItem(rescodes.localStorage.verifiedEmail) === '1'
|
||||
|
||||
setGlobal()
|
||||
|
||||
Mutations.mutations.authUser({
|
||||
username: username,
|
||||
userId: userId,
|
||||
idToken: token,
|
||||
verifiedEmail: verifiedEmail
|
||||
})
|
||||
return true
|
||||
} catch (e) {
|
||||
console.error('ERR autologin ', e.message)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const actions = {
|
||||
resetpwd: b.dispatch(resetpwd),
|
||||
@@ -524,7 +539,8 @@ namespace Actions {
|
||||
vreg: b.dispatch(vreg),
|
||||
signup: b.dispatch(signup),
|
||||
signin: b.dispatch(signin),
|
||||
logout: b.dispatch(logout)
|
||||
logout: b.dispatch(logout),
|
||||
autologin: b.dispatch(autologin)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,15 @@ export const rescodes = {
|
||||
OK: 20,
|
||||
ERR_GENERICO: -1,
|
||||
DUPLICATE_EMAIL_ID: 11000,
|
||||
DUPLICATE_USERNAME_ID: 11100
|
||||
DUPLICATE_USERNAME_ID: 11100,
|
||||
|
||||
localStorage: {
|
||||
verifiedEmail: 'vf',
|
||||
isLogged: 'ilog',
|
||||
expirationDate: 'expdate',
|
||||
leftDrawerOpen: 'ldo',
|
||||
userId: 'uid',
|
||||
token: 'tk',
|
||||
username: 'uname'
|
||||
}
|
||||
}
|
||||
|
||||
7
src/typings/libs/vue-idb.d.ts
vendored
Normal file
7
src/typings/libs/vue-idb.d.ts
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import { VueIdb } from 'vue-idb'
|
||||
|
||||
declare module 'vue/types/vue' {
|
||||
interface Vue {
|
||||
$db: VueIdb
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,7 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
<style scoped>
|
||||
#map {
|
||||
height: 180px;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
>
|
||||
<q-input
|
||||
v-model="signin.password"
|
||||
type="password"
|
||||
:before="[{icon: 'vpn_key', handler () {}}]"
|
||||
@blur="$v.signin.password.$touch"
|
||||
:error="$v.signin.password.$error"
|
||||
|
||||
@@ -72,7 +72,8 @@
|
||||
riscode: 0,
|
||||
emailsent: false,
|
||||
form: {
|
||||
email: '',
|
||||
password: '',
|
||||
repeatPassword: '',
|
||||
tokenforgot: 0,
|
||||
},
|
||||
}
|
||||
@@ -87,8 +88,12 @@
|
||||
},
|
||||
validations: {
|
||||
form: {
|
||||
email: {
|
||||
required, email,
|
||||
password: {
|
||||
required,
|
||||
},
|
||||
repeatPassword: {
|
||||
required,
|
||||
sameAsPassword: sameAs('password')
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@@ -51,7 +51,7 @@ export default class Vreg extends Vue {
|
||||
|
||||
if (this.verificatook) {
|
||||
setTimeout(() => {
|
||||
this.$router.replace('/')
|
||||
this.$router.replace('/signin')
|
||||
}, 3000)
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"@modules": ["./store/Modules/index.ts"]
|
||||
},
|
||||
"sourceMap": true,
|
||||
// "usePostCSS": true,
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"types": [
|
||||
|
||||
Reference in New Issue
Block a user