From fd2321cd204f562f6a10550d0d99e129e3aeda41 Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Sat, 5 Jan 2019 20:11:41 +0100 Subject: [PATCH] - starting add Categories - improved layout drawer --- .env.development | 1 + package-lock.json | 425 +++++++++++++++++- package.json | 31 +- quasar.conf.js | 3 +- src/assets/quasar-logo-full.svg | 2 +- src/components/Header.vue | 66 ++- .../categories/category/category.scss | 3 + .../categories/category/category.ts | 62 +++ .../categories/category/category.vue | 16 + src/css/app.styl | 3 + src/i18n.js | 2 + src/index.template.html | 4 +- src/layouts/drawer/drawer.vue | 44 +- src/layouts/drawer/menuOne.vue | 46 +- src/plugins/indexdb.js | 5 + src/router/route-config.ts | 5 + src/store/Modules/UserStore.ts | 53 ++- src/store/Modules/rescodes.ts | 12 +- src/views/form/simpleForm/simpleForm.vue | 2 +- src/views/login/updatepassword.vue | 11 +- tsconfig.json | 1 + 21 files changed, 706 insertions(+), 91 deletions(-) create mode 100644 src/components/categories/category/category.scss create mode 100644 src/components/categories/category/category.ts create mode 100644 src/components/categories/category/category.vue create mode 100644 src/plugins/indexdb.js diff --git a/.env.development b/.env.development index 79519a9..13c95d3 100644 --- a/.env.development +++ b/.env.development @@ -1,3 +1,4 @@ +SERVICE_WORKER_FILE='sw.js' APP_ID='1' VUE_APP_URL='prova SVILUPPO!' PROVA_PAOLO='PROVA SVILUPPO' diff --git a/package-lock.json b/package-lock.json index fec10dd..74763de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index f9bd040..8311ec7 100644 --- a/package.json +++ b/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", diff --git a/quasar.conf.js b/quasar.conf.js index 982c92c..425d31f 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -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'], css: [ 'app.styl' ], @@ -145,6 +145,7 @@ module.exports = function (ctx) { 'QInnerLoading', 'QSpinnerGears', 'QDatetime', + 'QSlideTransition', ], directives: [ 'Ripple', diff --git a/src/assets/quasar-logo-full.svg b/src/assets/quasar-logo-full.svg index a3eac92..30d7561 100644 --- a/src/assets/quasar-logo-full.svg +++ b/src/assets/quasar-logo-full.svg @@ -74,7 +74,7 @@ id="g4561-6-7-0">
+ - @@ -60,6 +60,7 @@ import messagePopover from '../layouts/toolbar/messagePopover/messagePopover.vue' import { GlobalStore } from '@modules' + import { rescodes } from '../store/Modules/rescodes' @Component({ components: { @@ -78,12 +79,14 @@ { label: 'Spanish', icon: 'fa-flag-es', value: 'es' }, { label: 'Italian', icon: 'fa-facebook', value: 'it' } ] - get leftDrawerOpen () { + + get leftDrawerOpen() { return GlobalStore.state.leftDrawerOpen } - set leftDrawerOpen (value) { + + set leftDrawerOpen(value) { GlobalStore.state.leftDrawerOpen = value - localStorage.setItem('leftDrawerOpen', value.toString()) + localStorage.setItem(rescodes.localStorage.leftDrawerOpen, value.toString()) } get lang() { @@ -111,17 +114,23 @@ - + diff --git a/src/components/categories/category/category.scss b/src/components/categories/category/category.scss new file mode 100644 index 0000000..6580a26 --- /dev/null +++ b/src/components/categories/category/category.scss @@ -0,0 +1,3 @@ +.mycard { + visibility: hidden; +} diff --git a/src/components/categories/category/category.ts b/src/components/categories/category/category.ts new file mode 100644 index 0000000..74a0a34 --- /dev/null +++ b/src/components/categories/category/category.ts @@ -0,0 +1,62 @@ +import Vue from 'vue' +import { Component } from 'vue-property-decorator' +import { GlobalStore } from '@store' + +import VueIdb from 'vue-idb' + +Vue.use(VueIdb) + +require('./category.scss') + +@Component({}) +export default class Category extends Vue { + idb = null + category: string = '' + $t: any + + created() { + this.createdb() + + this.caricaCat() + } + + createdb() { + // Inserisci la Categoria nel DB + this.idb = new VueIdb({ + version: 1, + database: 'test', + schemas: [ + { categories: '++id, sub_categ_id, descr_it' } + ] + }) + + } + + + caricaCat() { + let mythis = this + this.idb.open().then(function () { + + return mythis.idb.categories + .toArray() + + }).then(function () { + + console.log('FINE LOAD') + }) + } + + insertCategory(): any { + let mythis = this + + this.idb.open().then(function () { + console.log('Inserisci Cat: ', mythis.category) + return mythis.idb.categories.add({ descr_it: mythis.category }) + + }).then(function () { + + console.log('FINE') + }) + } + +} diff --git a/src/components/categories/category/category.vue b/src/components/categories/category/category.vue new file mode 100644 index 0000000..3009cc3 --- /dev/null +++ b/src/components/categories/category/category.vue @@ -0,0 +1,16 @@ + + diff --git a/src/css/app.styl b/src/css/app.styl index e3e5a1e..167e673 100644 --- a/src/css/app.styl +++ b/src/css/app.styl @@ -1 +1,4 @@ // app global css +/*------------------------------------------------------------------ +[Table of contents] +# overwrite some style of stylus diff --git a/src/i18n.js b/src/i18n.js index c7fb400..a26446d 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -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:{ diff --git a/src/index.template.html b/src/index.template.html index 29168b8..a31bd4b 100644 --- a/src/index.template.html +++ b/src/index.template.html @@ -8,7 +8,7 @@ + content="user-scalable=no, initial-scale=1, minimum-scale=1, width=device-width<% if (htmlWebpackPlugin.options.ctx.mode.cordova) { %>, viewport-fit=cover<% } %>"> @@ -16,6 +16,8 @@ + + diff --git a/src/layouts/drawer/drawer.vue b/src/layouts/drawer/drawer.vue index 0c4ef6e..4845368 100644 --- a/src/layouts/drawer/drawer.vue +++ b/src/layouts/drawer/drawer.vue @@ -19,6 +19,10 @@ + +
Powered by Perseo
@@ -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,8 +97,8 @@ } } - diff --git a/src/layouts/drawer/menuOne.vue b/src/layouts/drawer/menuOne.vue index 9f5d6d9..08fd065 100644 --- a/src/layouts/drawer/menuOne.vue +++ b/src/layouts/drawer/menuOne.vue @@ -1,23 +1,24 @@ @@ -60,6 +61,11 @@ diff --git a/src/plugins/indexdb.js b/src/plugins/indexdb.js new file mode 100644 index 0000000..9f322d5 --- /dev/null +++ b/src/plugins/indexdb.js @@ -0,0 +1,5 @@ +import VueIdb from 'vue-idb' + +export default ({ Vue }) => { + Vue.use(VueIdb) +} diff --git a/src/router/route-config.ts b/src/router/route-config.ts index 18d9383..2c91947 100644 --- a/src/router/route-config.ts +++ b/src/router/route-config.ts @@ -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' } } /* { diff --git a/src/store/Modules/UserStore.ts b/src/store/Modules/UserStore.ts index 2d323c2..a57d7a1 100644 --- a/src/store/Modules/UserStore.ts +++ b/src/store/Modules/UserStore.ts @@ -168,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) => { @@ -247,7 +247,7 @@ namespace Actions { // mutations.setServerCode(myres); if (body.code === serv_constants.RIS_CODE_EMAIL_VERIFIED) { console.log('VERIFICATO !!') - localStorage.setItem('verificato', '1') + localStorage.setItem(rescodes.localStorage.verifiedEmail, '1') } else { console.log('Risultato di vreg: ', body.code) } @@ -325,11 +325,11 @@ 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') + 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); @@ -424,13 +424,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('isLoggedin', String(true)) - localStorage.setItem('verificato', Number(verifiedEmail).toString()) - + 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); @@ -479,19 +478,19 @@ 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('leftDrawerOpen') === 'true') - + GlobalStore.mutations.setleftDrawerOpen(localStorage.getItem(rescodes.localStorage.leftDrawerOpen) === 'true') } async function autologin (context) { @@ -504,19 +503,19 @@ namespace Actions { UserStore.mutations.setlang(lang) } - const token = localStorage.getItem('token') + const token = localStorage.getItem(rescodes.localStorage.token) if (!token) { return false } - const expirationDateStr = localStorage.getItem('expirationDate') + 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('userId')) - const username = String(localStorage.getItem('username')) - const verifiedEmail = localStorage.getItem('verificato') === '1' + 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() diff --git a/src/store/Modules/rescodes.ts b/src/store/Modules/rescodes.ts index 930ca9b..8b0afe2 100644 --- a/src/store/Modules/rescodes.ts +++ b/src/store/Modules/rescodes.ts @@ -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' + } } diff --git a/src/views/form/simpleForm/simpleForm.vue b/src/views/form/simpleForm/simpleForm.vue index 438e412..72665e6 100644 --- a/src/views/form/simpleForm/simpleForm.vue +++ b/src/views/form/simpleForm/simpleForm.vue @@ -85,7 +85,7 @@ } } -