refactoring maintenance
This commit is contained in:
parent
63e53e696e
commit
70e77ed35d
13
.babelrc.js
13
.babelrc.js
|
@ -1,13 +1,8 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: ['@babel/plugin-syntax-dynamic-import'],
|
plugins: [
|
||||||
|
'@babel/plugin-syntax-dynamic-import',
|
||||||
|
],
|
||||||
presets: [
|
presets: [
|
||||||
[
|
[ '@babel/preset-env', { useBuiltIns: 'usage', corejs: 3 } ],
|
||||||
'@babel/preset-env',
|
|
||||||
{
|
|
||||||
targets: {
|
|
||||||
browsers: ['last 2 versions', 'ie >= 11']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,6 @@ module.exports = {
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
// no ending html tag on a new line (was warn in "vue/strongly-recommended")
|
// no ending html tag on a new line (was warn in "vue/strongly-recommended")
|
||||||
'vue/html-closing-bracket-newline': ['error', { multiline: 'always' }]
|
'vue/html-closing-bracket-newline': ['error', { multiline: 'always' }],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
filter:
|
|
||||||
excluded_paths:
|
|
||||||
- 'js/*'
|
|
||||||
- 'templates/*'
|
|
||||||
- 'l10n/*'
|
|
||||||
- 'tests/*'
|
|
||||||
|
|
||||||
build:
|
|
||||||
nodes:
|
|
||||||
analysis:
|
|
||||||
tests:
|
|
||||||
override:
|
|
||||||
- php-scrutinizer-run
|
|
||||||
|
|
||||||
tools:
|
|
||||||
external_code_coverage: false
|
|
||||||
js_hint: false
|
|
9
Makefile
9
Makefile
|
@ -14,9 +14,7 @@ appstore: clean lint build-js-production
|
||||||
rsync -a \
|
rsync -a \
|
||||||
--exclude=.babelrc.js \
|
--exclude=.babelrc.js \
|
||||||
--exclude=build \
|
--exclude=build \
|
||||||
--exclude=composer.json \
|
--exclude=composer.* \
|
||||||
--exclude=composer.lock \
|
|
||||||
--exclude=composer.phar \
|
|
||||||
--exclude=CONTRIBUTING.md \
|
--exclude=CONTRIBUTING.md \
|
||||||
--exclude=.editorconfig \
|
--exclude=.editorconfig \
|
||||||
--exclude=.eslintrc.js \
|
--exclude=.eslintrc.js \
|
||||||
|
@ -27,7 +25,6 @@ appstore: clean lint build-js-production
|
||||||
--exclude=Makefile \
|
--exclude=Makefile \
|
||||||
--exclude=node_modules \
|
--exclude=node_modules \
|
||||||
--exclude=package*.json \
|
--exclude=package*.json \
|
||||||
--exclude=phpcs.xml \
|
|
||||||
--exclude=phpunit*xml \
|
--exclude=phpunit*xml \
|
||||||
--exclude=.scrutinizer.yml \
|
--exclude=.scrutinizer.yml \
|
||||||
--exclude=src \
|
--exclude=src \
|
||||||
|
@ -108,11 +105,11 @@ lint-php-ncversion:
|
||||||
|
|
||||||
lint-php-phan:
|
lint-php-phan:
|
||||||
# PHAN
|
# PHAN
|
||||||
vendor/bin/phan --allow-polyfill-parser -k .phan/config.php --no-progress-bar -m checkstyle | vendor/bin/cs2pr
|
vendor/bin/phan --allow-polyfill-parser -k tests/phan-config.php --no-progress-bar -m checkstyle | vendor/bin/cs2pr
|
||||||
|
|
||||||
lint-php-phpcs:
|
lint-php-phpcs:
|
||||||
# PHP CodeSniffer
|
# PHP CodeSniffer
|
||||||
vendor/bin/phpcs --standard=phpcs.xml appinfo/ lib/ --report=checkstyle | vendor/bin/cs2pr
|
vendor/bin/phpcs --standard=tests/phpcs.xml appinfo/ lib/ --report=checkstyle | vendor/bin/cs2pr
|
||||||
|
|
||||||
|
|
||||||
lint-js:
|
lint-js:
|
||||||
|
|
|
@ -22,8 +22,8 @@ Before reporting bugs:
|
||||||
|
|
||||||
## :busts_in_silhouette: Maintainers
|
## :busts_in_silhouette: Maintainers
|
||||||
- [Kristof Hamann](https://github.com/korelstar)
|
- [Kristof Hamann](https://github.com/korelstar)
|
||||||
- [Hendrik Leppelsack](https://github.com/Henni)
|
- [Hendrik Leppelsack](https://github.com/Henni) (formerly)
|
||||||
- [Lukas Reschke](https://github.com/LukasReschke)
|
- [Lukas Reschke](https://github.com/LukasReschke) (formerly)
|
||||||
|
|
||||||
|
|
||||||
## :warning: Developer Info
|
## :warning: Developer Info
|
||||||
|
|
|
@ -1964,15 +1964,6 @@
|
||||||
"@babel/helper-plugin-utils": "^7.8.3"
|
"@babel/helper-plugin-utils": "^7.8.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/polyfill": {
|
|
||||||
"version": "7.8.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.3.tgz",
|
|
||||||
"integrity": "sha512-0QEgn2zkCzqGIkSWWAEmvxD7e00Nm9asTtQvi7HdlYvMhjy/J38V/1Y9ode0zEJeIuxAI0uftiAzqc7nVeWUGg==",
|
|
||||||
"requires": {
|
|
||||||
"core-js": "^2.6.5",
|
|
||||||
"regenerator-runtime": "^0.13.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@babel/preset-env": {
|
"@babel/preset-env": {
|
||||||
"version": "7.8.4",
|
"version": "7.8.4",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz",
|
||||||
|
@ -2184,6 +2175,22 @@
|
||||||
"integrity": "sha512-f+sKpdLZXkODV+OY39K1M+Spmd4RgxmtEXmNn4Bviv4R7uBFHXuw+JX9ZdfDeOryfHjJ/TRQxQEp0GMpBwZFUw==",
|
"integrity": "sha512-f+sKpdLZXkODV+OY39K1M+Spmd4RgxmtEXmNn4Bviv4R7uBFHXuw+JX9ZdfDeOryfHjJ/TRQxQEp0GMpBwZFUw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@nextcloud/dialogs": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-RjA+AEBwIkT2YEtMcfni3KQxn8o2SgbnVGp0n00z9tEhuvx9g3Z7Eh5+bY7zzanedFqryJSazMhk0voUyxr8Ow==",
|
||||||
|
"requires": {
|
||||||
|
"core-js": "3.6.4",
|
||||||
|
"toastify-js": "^1.6.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"core-js": {
|
||||||
|
"version": "3.6.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
|
||||||
|
"integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@nextcloud/eslint-config": {
|
"@nextcloud/eslint-config": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@nextcloud/eslint-config/-/eslint-config-1.0.0.tgz",
|
||||||
|
@ -2303,9 +2310,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "13.7.0",
|
"version": "13.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.4.tgz",
|
||||||
"integrity": "sha512-GnZbirvmqZUzMgkFn70c74OQpTTUcCzlhQliTzYjQMqg+hVKcDnxdL19Ne3UdYzdMA/+W3eb646FWn/ZaT1NfQ==",
|
"integrity": "sha512-oVeL12C6gQS/GAExndigSaLxTrKpQPxewx9bOcwfvJiJge4rr7wNaph4J+ns5hrmIV2as5qxqN8YKthn9qh0jw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/normalize-package-data": {
|
"@types/normalize-package-data": {
|
||||||
|
@ -3184,14 +3191,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
"version": "4.8.6",
|
"version": "4.8.7",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz",
|
||||||
"integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==",
|
"integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"caniuse-lite": "^1.0.30001023",
|
"caniuse-lite": "^1.0.30001027",
|
||||||
"electron-to-chromium": "^1.3.341",
|
"electron-to-chromium": "^1.3.349",
|
||||||
"node-releases": "^1.1.47"
|
"node-releases": "^1.1.49"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer": {
|
"buffer": {
|
||||||
|
@ -3316,9 +3323,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"caniuse-lite": {
|
"caniuse-lite": {
|
||||||
"version": "1.0.30001027",
|
"version": "1.0.30001028",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001028.tgz",
|
||||||
"integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==",
|
"integrity": "sha512-Vnrq+XMSHpT7E+LWoIYhs3Sne8h9lx9YJV3acH3THNCwU/9zV93/ta4xVfzTtnqd3rvnuVpVjE3DFqf56tr3aQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"caseless": {
|
"caseless": {
|
||||||
|
@ -3688,9 +3695,10 @@
|
||||||
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
|
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
|
||||||
},
|
},
|
||||||
"core-js": {
|
"core-js": {
|
||||||
"version": "2.6.11",
|
"version": "3.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
|
||||||
"integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
|
"integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"core-js-compat": {
|
"core-js-compat": {
|
||||||
"version": "3.6.4",
|
"version": "3.6.4",
|
||||||
|
@ -4111,15 +4119,6 @@
|
||||||
"domelementtype": "1"
|
"domelementtype": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"duplexify": {
|
"duplexify": {
|
||||||
"version": "3.7.1",
|
"version": "3.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
||||||
|
@ -4153,9 +4152,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electron-to-chromium": {
|
"electron-to-chromium": {
|
||||||
"version": "1.3.348",
|
"version": "1.3.355",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.348.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.355.tgz",
|
||||||
"integrity": "sha512-6O0IInybavGdYtcbI4ryF/9e3Qi8/soi6C68ELRseJuTwQPKq39uGgVVeQHG28t69Sgsky09nXBRhUiFXsZyFQ==",
|
"integrity": "sha512-zKO/wS+2ChI/jz9WAo647xSW8t2RmgRLFdbUb/77cORkUTargO+SCj4ctTHjBn2VeNFrsLgDT7IuDVrd3F8mLQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
|
@ -4180,9 +4179,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"emojis-list": {
|
"emojis-list": {
|
||||||
"version": "2.1.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||||
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
|
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"end-of-stream": {
|
"end-of-stream": {
|
||||||
|
@ -4864,12 +4863,6 @@
|
||||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"fast-deep-equal": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
|
||||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"fast-glob": {
|
"fast-glob": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz",
|
||||||
|
@ -4945,35 +4938,39 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"file-loader": {
|
"file-loader": {
|
||||||
"version": "5.0.2",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-5.1.0.tgz",
|
||||||
"integrity": "sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg==",
|
"integrity": "sha512-u/VkLGskw3Ue59nyOwUwXI/6nuBCo7KBkniB/l7ICwr/7cPNGsL1WCXUp3GB0qgOOKU1TiP49bv4DZF/LJqprg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"loader-utils": "^1.2.3",
|
"loader-utils": "^1.4.0",
|
||||||
"schema-utils": "^2.5.0"
|
"schema-utils": "^2.5.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ajv": {
|
"emojis-list": {
|
||||||
"version": "6.10.2",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
|
||||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"json5": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^2.0.1",
|
"minimist": "^1.2.0"
|
||||||
"fast-json-stable-stringify": "^2.0.0",
|
|
||||||
"json-schema-traverse": "^0.4.1",
|
|
||||||
"uri-js": "^4.2.2"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"schema-utils": {
|
"loader-utils": {
|
||||||
"version": "2.6.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
|
||||||
"integrity": "sha512-UlPB1ME4i/71cih/Rv92gK8043CrJTc2mjkyxDp4pdJ7ZfzY0g0hdGjjDB23jX3X+NXSneCdQbScGhn6K2tbpQ==",
|
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "^6.10.2",
|
"big.js": "^5.2.2",
|
||||||
"ajv-keywords": "^3.4.1"
|
"emojis-list": "^3.0.0",
|
||||||
|
"json5": "^1.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5898,13 +5895,13 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"globule": {
|
"globule": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
|
||||||
"integrity": "sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==",
|
"integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "~7.1.1",
|
"glob": "~7.1.1",
|
||||||
"lodash": "~4.17.10",
|
"lodash": "~4.17.12",
|
||||||
"minimatch": "~3.0.2"
|
"minimatch": "~3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -6107,9 +6104,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"readable-stream": {
|
"readable-stream": {
|
||||||
"version": "3.5.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
||||||
"integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==",
|
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "^2.0.3",
|
"inherits": "^2.0.3",
|
||||||
|
@ -6478,12 +6475,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-obj": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"is-plain-obj": {
|
"is-plain-obj": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
|
||||||
|
@ -6823,13 +6814,13 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"loader-utils": {
|
"loader-utils": {
|
||||||
"version": "1.2.3",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
|
||||||
"integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
|
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"big.js": "^5.2.2",
|
"big.js": "^5.2.2",
|
||||||
"emojis-list": "^2.0.0",
|
"emojis-list": "^3.0.0",
|
||||||
"json5": "^1.0.1"
|
"json5": "^1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -7241,6 +7232,12 @@
|
||||||
"brorand": "^1.0.1"
|
"brorand": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mime": {
|
||||||
|
"version": "2.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
|
||||||
|
"integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"mime-db": {
|
"mime-db": {
|
||||||
"version": "1.43.0",
|
"version": "1.43.0",
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
|
||||||
|
@ -7491,9 +7488,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-releases": {
|
"node-releases": {
|
||||||
"version": "1.1.48",
|
"version": "1.1.49",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.48.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz",
|
||||||
"integrity": "sha512-Hr8BbmUl1ujAST0K0snItzEA5zkJTQup8VNTKNfT6Zw8vTJkIiagUPNfxHmgDOyfFYNfKAul40sD0UEYTvwebw==",
|
"integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^6.3.0"
|
"semver": "^6.3.0"
|
||||||
|
@ -7696,9 +7693,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"object-hash": {
|
"object-hash": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz",
|
||||||
"integrity": "sha512-HgcGMooY4JC2PBt9sdUdJ6PMzpin+YtY3r/7wg0uTifP+HJWW8rammseSEHuyt0UeShI183UGssCJqm1bJR7QA==",
|
"integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"object-inspect": {
|
"object-inspect": {
|
||||||
|
@ -8051,9 +8048,9 @@
|
||||||
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
||||||
},
|
},
|
||||||
"postcss": {
|
"postcss": {
|
||||||
"version": "7.0.26",
|
"version": "7.0.27",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
|
||||||
"integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==",
|
"integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.4.2",
|
"chalk": "^2.4.2",
|
||||||
|
@ -8246,12 +8243,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"postcss-selector-parser": {
|
"postcss-selector-parser": {
|
||||||
"version": "3.1.1",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
|
||||||
"integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
|
"integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"dot-prop": "^4.1.1",
|
"cssesc": "^3.0.0",
|
||||||
"indexes-of": "^1.0.1",
|
"indexes-of": "^1.0.1",
|
||||||
"uniq": "^1.0.1"
|
"uniq": "^1.0.1"
|
||||||
}
|
}
|
||||||
|
@ -8263,9 +8260,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"postcss-value-parser": {
|
"postcss-value-parser": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
|
||||||
"integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
|
"integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"prelude-ls": {
|
"prelude-ls": {
|
||||||
|
@ -8619,9 +8616,9 @@
|
||||||
"integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="
|
"integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg=="
|
||||||
},
|
},
|
||||||
"regjsparser": {
|
"regjsparser": {
|
||||||
"version": "0.6.2",
|
"version": "0.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz",
|
||||||
"integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
|
"integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsesc": "~0.5.0"
|
"jsesc": "~0.5.0"
|
||||||
},
|
},
|
||||||
|
@ -8720,9 +8717,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"request": {
|
"request": {
|
||||||
"version": "2.88.0",
|
"version": "2.88.2",
|
||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
||||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"aws-sign2": "~0.7.0",
|
"aws-sign2": "~0.7.0",
|
||||||
|
@ -8732,7 +8729,7 @@
|
||||||
"extend": "~3.0.2",
|
"extend": "~3.0.2",
|
||||||
"forever-agent": "~0.6.1",
|
"forever-agent": "~0.6.1",
|
||||||
"form-data": "~2.3.2",
|
"form-data": "~2.3.2",
|
||||||
"har-validator": "~5.1.0",
|
"har-validator": "~5.1.3",
|
||||||
"http-signature": "~1.2.0",
|
"http-signature": "~1.2.0",
|
||||||
"is-typedarray": "~1.0.0",
|
"is-typedarray": "~1.0.0",
|
||||||
"isstream": "~0.1.2",
|
"isstream": "~0.1.2",
|
||||||
|
@ -8742,7 +8739,7 @@
|
||||||
"performance-now": "^2.1.0",
|
"performance-now": "^2.1.0",
|
||||||
"qs": "~6.5.2",
|
"qs": "~6.5.2",
|
||||||
"safe-buffer": "^5.1.2",
|
"safe-buffer": "^5.1.2",
|
||||||
"tough-cookie": "~2.4.3",
|
"tough-cookie": "~2.5.0",
|
||||||
"tunnel-agent": "^0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
"uuid": "^3.3.2"
|
"uuid": "^3.3.2"
|
||||||
}
|
}
|
||||||
|
@ -8766,9 +8763,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.15.0",
|
"version": "1.15.1",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
|
||||||
"integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
|
"integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-parse": "^1.0.6"
|
"path-parse": "^1.0.6"
|
||||||
}
|
}
|
||||||
|
@ -9495,9 +9492,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"stylelint": {
|
"stylelint": {
|
||||||
"version": "13.1.0",
|
"version": "13.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.2.0.tgz",
|
||||||
"integrity": "sha512-Ei+nCSQTyZYrsLSUIxq48/QfzCQD9r9sQiBqy7Z4IpIMcj+E0R6b0CHrSFeE7jNgREpBfJKJd6DpstuDrwUiew==",
|
"integrity": "sha512-isf31yjkm0DQesx+Yk1b/WQpFkf1MicwaAVR22Hprx9HRFGhhEkWdrVCyrkK6HFymL0rhzynG97Tu53q/WCsAg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"autoprefixer": "^9.7.4",
|
"autoprefixer": "^9.7.4",
|
||||||
|
@ -9534,7 +9531,7 @@
|
||||||
"postcss-safe-parser": "^4.0.1",
|
"postcss-safe-parser": "^4.0.1",
|
||||||
"postcss-sass": "^0.4.2",
|
"postcss-sass": "^0.4.2",
|
||||||
"postcss-scss": "^2.0.0",
|
"postcss-scss": "^2.0.0",
|
||||||
"postcss-selector-parser": "^3.1.0",
|
"postcss-selector-parser": "^6.0.2",
|
||||||
"postcss-syntax": "^0.36.2",
|
"postcss-syntax": "^0.36.2",
|
||||||
"postcss-value-parser": "^4.0.2",
|
"postcss-value-parser": "^4.0.2",
|
||||||
"resolve-from": "^5.0.0",
|
"resolve-from": "^5.0.0",
|
||||||
|
@ -9664,9 +9661,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"meow": {
|
"meow": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/meow/-/meow-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/meow/-/meow-6.0.1.tgz",
|
||||||
"integrity": "sha512-x4rYsjigPBDAxY+BGuK83YLhUIqui5wYyZoqb6QJCUOs+0fiYq+i/NV4Jt8OgIfObZFxG9iTyvLDu4UTohGTFw==",
|
"integrity": "sha512-kxGTFgT/b7/oSRSQsJ0qsT5IMU+bgZ1eAdSA3kIV7onkW0QWo/hL5RbGlMfvBjHJKPE1LaPX0kdecYFiqYWjUw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/minimist": "^1.2.0",
|
"@types/minimist": "^1.2.0",
|
||||||
|
@ -10146,22 +10143,19 @@
|
||||||
"repeat-string": "^1.6.1"
|
"repeat-string": "^1.6.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"toastify-js": {
|
||||||
|
"version": "1.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.6.2.tgz",
|
||||||
|
"integrity": "sha512-ECQzgjTjxaElfwp/8e8qoIYx7U5rU2G54e5aiPMv+UtmGOYEitrtNp/Kr8uMgntnQNrDZEQJNGjBtoNnEgR5EA=="
|
||||||
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
"version": "2.4.3",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"psl": "^1.1.24",
|
"psl": "^1.1.28",
|
||||||
"punycode": "^1.4.1"
|
"punycode": "^2.1.1"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"punycode": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
|
||||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trim": {
|
"trim": {
|
||||||
|
@ -10479,6 +10473,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"url-loader": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/url-loader/-/url-loader-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-a84JJbIA5xTFTWyjjcPdnsu+41o/SNE8SpXMdUvXs6Q+LuhCD9E2+0VCiuDWqgo3GGXVlFHzArDmBpj9PgWn4A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"loader-utils": "^1.2.3",
|
||||||
|
"mime": "^2.4.4",
|
||||||
|
"schema-utils": "^2.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"use": {
|
"use": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
||||||
|
@ -10670,9 +10675,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"vue-loader": {
|
"vue-loader": {
|
||||||
"version": "15.8.3",
|
"version": "15.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.0.tgz",
|
||||||
"integrity": "sha512-yFksTFbhp+lxlm92DrKdpVIWMpranXnTEuGSc0oW+Gk43M9LWaAmBTnfj5+FCdve715mTHvo78IdaXf5TbiTJg==",
|
"integrity": "sha512-FeDHvTSpwyLeF7LIV1PYkvqUQgTJ8UmOxhSlCyRSxaXCKk+M6NF4tDQsLsPPNeDPyR7TfRQ8MLg6v+8PsDV9xQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vue/component-compiler-utils": "^3.1.0",
|
"@vue/component-compiler-utils": "^3.1.0",
|
||||||
|
@ -10868,9 +10873,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webpack-cli": {
|
"webpack-cli": {
|
||||||
"version": "3.3.10",
|
"version": "3.3.11",
|
||||||
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz",
|
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz",
|
||||||
"integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==",
|
"integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "2.4.2",
|
"chalk": "2.4.2",
|
||||||
|
@ -10892,12 +10897,6 @@
|
||||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"camelcase": {
|
|
||||||
"version": "5.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
|
||||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"cliui": {
|
"cliui": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
|
||||||
|
@ -10909,6 +10908,12 @@
|
||||||
"wrap-ansi": "^5.1.0"
|
"wrap-ansi": "^5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"emojis-list": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"enhanced-resolve": {
|
"enhanced-resolve": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
|
||||||
|
@ -10932,6 +10937,15 @@
|
||||||
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
"integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"json5": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"minimist": "^1.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lcid": {
|
"lcid": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
|
||||||
|
@ -10941,6 +10955,17 @@
|
||||||
"invert-kv": "^2.0.0"
|
"invert-kv": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"loader-utils": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"big.js": "^5.2.2",
|
||||||
|
"emojis-list": "^2.0.0",
|
||||||
|
"json5": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"memory-fs": {
|
"memory-fs": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
|
||||||
|
@ -11074,12 +11099,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"webpack-node-externals": {
|
|
||||||
"version": "1.7.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz",
|
|
||||||
"integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"webpack-sources": {
|
"webpack-sources": {
|
||||||
"version": "1.4.3",
|
"version": "1.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
|
||||||
|
|
15
package.json
15
package.json
|
@ -12,8 +12,8 @@
|
||||||
"stylelint:fix": "stylelint 'src/**/*.vue' 'css/**/*.scss' --fix"
|
"stylelint:fix": "stylelint 'src/**/*.vue' 'css/**/*.scss' --fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/polyfill": "^7.8.3",
|
|
||||||
"@nextcloud/axios": "^1.3.1",
|
"@nextcloud/axios": "^1.3.1",
|
||||||
|
"@nextcloud/dialogs": "^1.1.0",
|
||||||
"@nextcloud/vue": "1.2.7",
|
"@nextcloud/vue": "1.2.7",
|
||||||
"easymde": "^2.9.0",
|
"easymde": "^2.9.0",
|
||||||
"markdown-it": "^10.0.0",
|
"markdown-it": "^10.0.0",
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
"@nextcloud/eslint-plugin": "^1.1.0",
|
"@nextcloud/eslint-plugin": "^1.1.0",
|
||||||
"babel-eslint": "^10.0.3",
|
"babel-eslint": "^10.0.3",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
|
"core-js": "^3.6.4",
|
||||||
"css-loader": "^3.4.2",
|
"css-loader": "^3.4.2",
|
||||||
"eslint": "^5.16.0",
|
"eslint": "^5.16.0",
|
||||||
"eslint-config-standard": "^12.0.0",
|
"eslint-config-standard": "^12.0.0",
|
||||||
|
@ -47,17 +48,17 @@
|
||||||
"eslint-plugin-promise": "^4.2.1",
|
"eslint-plugin-promise": "^4.2.1",
|
||||||
"eslint-plugin-standard": "^4.0.1",
|
"eslint-plugin-standard": "^4.0.1",
|
||||||
"eslint-plugin-vue": "^5.2.3",
|
"eslint-plugin-vue": "^5.2.3",
|
||||||
"file-loader": "^5.0.2",
|
"file-loader": "^5.1.0",
|
||||||
"node-sass": "^4.13.1",
|
"node-sass": "^4.13.1",
|
||||||
"sass-loader": "^8.0.2",
|
"sass-loader": "^8.0.2",
|
||||||
"stylelint": "^13.1.0",
|
"stylelint": "^13.2.0",
|
||||||
"stylelint-config-recommended-scss": "^4.2.0",
|
"stylelint-config-recommended-scss": "^4.2.0",
|
||||||
"stylelint-scss": "^3.14.2",
|
"stylelint-scss": "^3.14.2",
|
||||||
"vue-loader": "^15.8.3",
|
"url-loader": "^3.0.0",
|
||||||
|
"vue-loader": "^15.9.0",
|
||||||
"vue-template-compiler": "^2.6.11",
|
"vue-template-compiler": "^2.6.11",
|
||||||
"webpack": "^4.41.6",
|
"webpack": "^4.41.6",
|
||||||
"webpack-cli": "^3.3.10",
|
"webpack-cli": "^3.3.11",
|
||||||
"webpack-merge": "^4.2.2",
|
"webpack-merge": "^4.2.2"
|
||||||
"webpack-node-externals": "^1.7.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
17
src/App.vue
17
src/App.vue
|
@ -40,11 +40,12 @@ import {
|
||||||
AppNavigationNew,
|
AppNavigationNew,
|
||||||
Content,
|
Content,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
|
|
||||||
|
import { fetchNotes, noteExists, createNote } from './NotesService'
|
||||||
|
import { openNavbar } from './nextcloud'
|
||||||
import AppSettings from './components/AppSettings'
|
import AppSettings from './components/AppSettings'
|
||||||
import NavigationList from './components/NavigationList'
|
import NavigationList from './components/NavigationList'
|
||||||
import NotesService from './NotesService'
|
|
||||||
import store from './store'
|
import store from './store'
|
||||||
import { openNavbar } from './nextcloud'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
|
@ -128,7 +129,7 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
loadNotes() {
|
loadNotes() {
|
||||||
this.loading.notes = true
|
this.loading.notes = true
|
||||||
NotesService.fetchNotes()
|
fetchNotes()
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.notes !== null) {
|
if (data.notes !== null) {
|
||||||
this.error = false
|
this.error = false
|
||||||
|
@ -140,7 +141,7 @@ export default {
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
this.error = true
|
this.error = true
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.notes = false
|
this.loading.notes = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -154,8 +155,8 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
routeDefault(defaultNoteId) {
|
routeDefault(defaultNoteId) {
|
||||||
if (this.$route.name !== 'note' || !NotesService.noteExists(this.$route.params.noteId)) {
|
if (this.$route.name !== 'note' || !noteExists(this.$route.params.noteId)) {
|
||||||
if (NotesService.noteExists(defaultNoteId)) {
|
if (noteExists(defaultNoteId)) {
|
||||||
this.routeToNote(defaultNoteId)
|
this.routeToNote(defaultNoteId)
|
||||||
} else {
|
} else {
|
||||||
this.routeFirst()
|
this.routeFirst()
|
||||||
|
@ -194,13 +195,13 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.loading.create = true
|
this.loading.create = true
|
||||||
NotesService.createNote(this.filter.category)
|
createNote(this.filter.category)
|
||||||
.then(note => {
|
.then(note => {
|
||||||
this.routeToNote(note.id)
|
this.routeToNote(note.id)
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.create = false
|
this.loading.create = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,214 +2,212 @@ import AppGlobal from './mixins/AppGlobal'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
import axios from '@nextcloud/axios'
|
import axios from '@nextcloud/axios'
|
||||||
|
|
||||||
export default {
|
const t = AppGlobal.methods.t
|
||||||
|
|
||||||
t: AppGlobal.methods.t,
|
function url(url) {
|
||||||
|
url = `/apps/notes${url}`
|
||||||
url(url) {
|
return OC.generateUrl(url)
|
||||||
url = `/apps/notes${url}`
|
}
|
||||||
return OC.generateUrl(url)
|
|
||||||
},
|
function handleSyncError(message) {
|
||||||
|
OC.Notification.showTemporary(message + ' ' + t('notes', 'See JavaScript console for details.'))
|
||||||
handleSyncError(message) {
|
}
|
||||||
OC.Notification.showTemporary(message + ' ' + this.t('notes', 'See JavaScript console for details.'))
|
|
||||||
},
|
function handleInsufficientStorage() {
|
||||||
|
OC.Notification.showTemporary(t('notes', 'Saving the note has failed due to insufficient storage.'))
|
||||||
handleInsufficientStorage() {
|
}
|
||||||
OC.Notification.showTemporary(this.t('notes', 'Saving the note has failed due to insufficient storage.'))
|
|
||||||
},
|
export const setSettings = settings => {
|
||||||
|
return axios
|
||||||
setSettings(settings) {
|
.put(url('/settings'), settings)
|
||||||
return axios
|
.then(response => {
|
||||||
.put(this.url('/settings'), settings)
|
const settings = response.data
|
||||||
.then(response => {
|
store.commit('setSettings', settings)
|
||||||
const settings = response.data
|
return settings
|
||||||
store.commit('setSettings', settings)
|
})
|
||||||
return settings
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
handleSyncError(t('notes', 'Updating settings has failed.'))
|
||||||
console.error(err)
|
throw err
|
||||||
this.handleSyncError(this.t('notes', 'Updating settings has failed.'))
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
export const fetchNotes = () => {
|
||||||
|
return axios
|
||||||
fetchNotes() {
|
.get(url('/notes'))
|
||||||
return axios
|
.then(response => {
|
||||||
.get(this.url('/notes'))
|
store.commit('setSettings', response.data.settings)
|
||||||
.then(response => {
|
if (response.data.notes !== null) {
|
||||||
store.commit('setSettings', response.data.settings)
|
store.dispatch('addAll', response.data.notes)
|
||||||
if (response.data.notes !== null) {
|
}
|
||||||
store.dispatch('addAll', response.data.notes)
|
if (response.data.errorMessage) {
|
||||||
}
|
OC.Notification.showTemporary(response.data.errorMessage)
|
||||||
if (response.data.errorMessage) {
|
}
|
||||||
OC.Notification.showTemporary(response.data.errorMessage)
|
return response.data
|
||||||
}
|
})
|
||||||
return response.data
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
handleSyncError(t('notes', 'Fetching notes has failed.'))
|
||||||
console.error(err)
|
throw err
|
||||||
this.handleSyncError(this.t('notes', 'Fetching notes has failed.'))
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
export const fetchNote = noteId => {
|
||||||
|
return axios
|
||||||
fetchNote(noteId) {
|
.get(url('/notes/' + noteId))
|
||||||
return axios
|
.then(response => {
|
||||||
.get(this.url('/notes/' + noteId))
|
const localNote = store.getters.getNote(parseInt(noteId))
|
||||||
.then(response => {
|
// only overwrite if there are no unsaved changes
|
||||||
const localNote = store.getters.getNote(parseInt(noteId))
|
if (!localNote || !localNote.unsaved) {
|
||||||
// only overwrite if there are no unsaved changes
|
store.commit('add', response.data)
|
||||||
if (!localNote || !localNote.unsaved) {
|
}
|
||||||
store.commit('add', response.data)
|
return response.data
|
||||||
}
|
})
|
||||||
return response.data
|
.catch(err => {
|
||||||
})
|
if (err.response.status === 404) {
|
||||||
.catch(err => {
|
throw err
|
||||||
if (err.response.status === 404) {
|
} else {
|
||||||
throw err
|
console.error(err)
|
||||||
} else {
|
const msg = t('notes', 'Fetching note {id} has failed.', { id: noteId })
|
||||||
console.error(err)
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'error', value: true })
|
||||||
const msg = this.t('notes', 'Fetching note {id} has failed.', { id: noteId })
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'errorMessage', value: msg })
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'error', value: true })
|
return store.getter.getNote(noteId)
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'errorMessage', value: msg })
|
}
|
||||||
return store.getter.getNote(noteId)
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
export const createNote = category => {
|
||||||
|
return axios
|
||||||
createNote(category) {
|
.post(url('/notes'), { category: category })
|
||||||
return axios
|
.then(response => {
|
||||||
.post(this.url('/notes'), { category: category })
|
store.commit('add', response.data)
|
||||||
.then(response => {
|
return response.data
|
||||||
store.commit('add', response.data)
|
})
|
||||||
return response.data
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
if (err.response.status === 507) {
|
||||||
console.error(err)
|
handleInsufficientStorage()
|
||||||
if (err.response.status === 507) {
|
} else {
|
||||||
this.handleInsufficientStorage()
|
handleSyncError(t('notes', 'Creating new note has failed.'))
|
||||||
} else {
|
}
|
||||||
this.handleSyncError(this.t('notes', 'Creating new note has failed.'))
|
throw err
|
||||||
}
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
function _updateNote(note) {
|
||||||
|
return axios
|
||||||
_updateNote(note) {
|
.put(url('/notes/' + note.id), { content: note.content })
|
||||||
return axios
|
.then(response => {
|
||||||
.put(this.url('/notes/' + note.id), { content: note.content })
|
const updated = response.data
|
||||||
.then(response => {
|
note.saveError = false
|
||||||
const updated = response.data
|
note.title = updated.title
|
||||||
note.saveError = false
|
note.modified = updated.modified
|
||||||
note.title = updated.title
|
if (updated.content === note.content) {
|
||||||
note.modified = updated.modified
|
note.unsaved = false
|
||||||
if (updated.content === note.content) {
|
}
|
||||||
note.unsaved = false
|
store.commit('add', note)
|
||||||
}
|
return note
|
||||||
store.commit('add', note)
|
})
|
||||||
return note
|
.catch(err => {
|
||||||
})
|
store.commit('setNoteAttribute', { noteId: note.id, attribute: 'saveError', value: true })
|
||||||
.catch(err => {
|
console.error(err)
|
||||||
store.commit('setNoteAttribute', { noteId: note.id, attribute: 'saveError', value: true })
|
if (err.response.status === 507) {
|
||||||
console.error(err)
|
handleInsufficientStorage()
|
||||||
if (err.response.status === 507) {
|
} else {
|
||||||
this.handleInsufficientStorage()
|
handleSyncError(t('notes', 'Updating note {id} has failed.', { id: note.id }))
|
||||||
} else {
|
}
|
||||||
this.handleSyncError(this.t('notes', 'Updating note {id} has failed.', { id: note.id }))
|
})
|
||||||
}
|
}
|
||||||
})
|
|
||||||
},
|
export const prepareDeleteNote = noteId => {
|
||||||
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: 'prepare' })
|
||||||
prepareDeleteNote(noteId) {
|
}
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: 'prepare' })
|
|
||||||
},
|
export const undoDeleteNote = noteId => {
|
||||||
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: null })
|
||||||
undoDeleteNote(noteId) {
|
}
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: null })
|
|
||||||
},
|
export const deleteNote = noteId => {
|
||||||
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: 'deleting' })
|
||||||
deleteNote(noteId) {
|
return axios
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'deleting', value: 'deleting' })
|
.delete(url('/notes/' + noteId))
|
||||||
return axios
|
.then(() => {
|
||||||
.delete(this.url('/notes/' + noteId))
|
store.commit('remove', noteId)
|
||||||
.then(() => {
|
})
|
||||||
store.commit('remove', noteId)
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
handleSyncError(t('notes', 'Deleting note {id} has failed.', { id: noteId }))
|
||||||
console.error(err)
|
undoDeleteNote(noteId)
|
||||||
this.handleSyncError(this.t('notes', 'Deleting note {id} has failed.', { id: noteId }))
|
throw err
|
||||||
this.undoDeleteNote(noteId)
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
export const setFavorite = (noteId, favorite) => {
|
||||||
|
return axios
|
||||||
setFavorite(noteId, favorite) {
|
.put(url('/notes/' + noteId + '/favorite'), { favorite: favorite })
|
||||||
return axios
|
.then(response => {
|
||||||
.put(this.url('/notes/' + noteId + '/favorite'), { favorite: favorite })
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'favorite', value: response.data })
|
||||||
.then(response => {
|
})
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'favorite', value: response.data })
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
handleSyncError(t('notes', 'Toggling favorite for note {id} has failed.', { id: noteId }))
|
||||||
console.error(err)
|
throw err
|
||||||
this.handleSyncError(this.t('notes', 'Toggling favorite for note {id} has failed.', { id: noteId }))
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
export const setCategory = (noteId, category) => {
|
||||||
|
return axios
|
||||||
setCategory(noteId, category) {
|
.put(url('/notes/' + noteId + '/category'), { category: category })
|
||||||
return axios
|
.then(response => {
|
||||||
.put(this.url('/notes/' + noteId + '/category'), { category: category })
|
const realCategory = response.data
|
||||||
.then(response => {
|
if (category !== realCategory) {
|
||||||
const realCategory = response.data
|
handleSyncError(t('notes', 'Updating the note\'s category has failed. Is the target directory writable?'))
|
||||||
if (category !== realCategory) {
|
}
|
||||||
this.handleSyncError(this.t('notes', 'Updating the note\'s category has failed. Is the target directory writable?'))
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'category', value: realCategory })
|
||||||
}
|
})
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'category', value: realCategory })
|
.catch(err => {
|
||||||
})
|
console.error(err)
|
||||||
.catch(err => {
|
handleSyncError(t('notes', 'Updating the category for note {id} has failed.', { id: noteId }))
|
||||||
console.error(err)
|
throw err
|
||||||
this.handleSyncError(this.t('notes', 'Updating the category for note {id} has failed.', { id: noteId }))
|
})
|
||||||
throw err
|
}
|
||||||
})
|
|
||||||
},
|
export const saveNote = (noteId, manualSave = false) => {
|
||||||
|
store.commit('addUnsaved', noteId)
|
||||||
saveNote(noteId, manualSave = false) {
|
if (manualSave) {
|
||||||
store.commit('addUnsaved', noteId)
|
store.commit('setManualSave', true)
|
||||||
if (manualSave) {
|
}
|
||||||
store.commit('setManualSave', true)
|
_saveNotes()
|
||||||
}
|
}
|
||||||
this._saveNotes()
|
|
||||||
},
|
function _saveNotes() {
|
||||||
_saveNotes() {
|
const unsavedNotes = Object.values(store.state.unsaved)
|
||||||
const unsavedNotes = Object.values(store.state.unsaved)
|
if (store.state.isSaving || unsavedNotes.length === 0) {
|
||||||
if (store.state.isSaving || unsavedNotes.length === 0) {
|
return
|
||||||
return
|
}
|
||||||
}
|
store.commit('setSaving', true)
|
||||||
store.commit('setSaving', true)
|
const promises = unsavedNotes.map(note => _updateNote(note))
|
||||||
const promises = unsavedNotes.map(note => this._updateNote(note))
|
store.commit('clearUnsaved')
|
||||||
store.commit('clearUnsaved')
|
Promise.all(promises).then(() => {
|
||||||
Promise.all(promises).finally(() => {
|
store.commit('setSaving', false)
|
||||||
store.commit('setSaving', false)
|
store.commit('setManualSave', false)
|
||||||
store.commit('setManualSave', false)
|
_saveNotes()
|
||||||
this._saveNotes()
|
})
|
||||||
})
|
}
|
||||||
},
|
|
||||||
|
export const saveNoteManually = (noteId) => {
|
||||||
saveNoteManually(noteId) {
|
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'saveError', value: false })
|
||||||
store.commit('setNoteAttribute', { noteId: noteId, attribute: 'saveError', value: false })
|
saveNote(noteId, true)
|
||||||
this.saveNote(noteId, true)
|
}
|
||||||
},
|
|
||||||
|
export const noteExists = (noteId) => {
|
||||||
noteExists(noteId) {
|
return store.getters.noteExists(noteId)
|
||||||
return store.getters.noteExists(noteId)
|
}
|
||||||
},
|
|
||||||
|
export const getCategories = (maxLevel, details) => {
|
||||||
getCategories(maxLevel, details) {
|
return store.getters.getCategories(maxLevel, details)
|
||||||
return store.getters.getCategories(maxLevel, details)
|
}
|
||||||
},
|
|
||||||
|
export const categoryLabel = (category) => {
|
||||||
categoryLabel(category) {
|
return category === '' ? t('notes', 'Uncategorized') : category.replace(/\//g, ' / ')
|
||||||
return category === '' ? this.t('notes', 'Uncategorized') : category.replace(/\//g, ' / ')
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,8 @@
|
||||||
import {
|
import {
|
||||||
AppNavigationSettings,
|
AppNavigationSettings,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
|
import { setSettings } from '../NotesService'
|
||||||
import store from '../store'
|
import store from '../store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -60,10 +61,10 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
onChangeSettings() {
|
onChangeSettings() {
|
||||||
this.saving = true
|
this.saving = true
|
||||||
return NotesService.setSettings(this.settings)
|
return setSettings(this.settings)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.saving = false
|
this.saving = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -38,7 +38,9 @@ import {
|
||||||
AppNavigationItem,
|
AppNavigationItem,
|
||||||
AppNavigationCounter,
|
AppNavigationCounter,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
|
import { getCategories, categoryLabel } from '../NotesService'
|
||||||
|
|
||||||
import store from '../store'
|
import store from '../store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -68,17 +70,17 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
categories() {
|
categories() {
|
||||||
return NotesService.getCategories(1, true)
|
return getCategories(1, true)
|
||||||
},
|
},
|
||||||
|
|
||||||
title() {
|
title() {
|
||||||
return this.selectedCategory === null ? this.t('notes', 'Categories') : NotesService.categoryLabel(this.selectedCategory)
|
return this.selectedCategory === null ? this.t('notes', 'Categories') : categoryLabel(this.selectedCategory)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
categoryTitle(category) {
|
categoryTitle(category) {
|
||||||
return NotesService.categoryLabel(category)
|
return categoryLabel(category)
|
||||||
},
|
},
|
||||||
|
|
||||||
onToggleCategories() {
|
onToggleCategories() {
|
||||||
|
|
|
@ -59,9 +59,10 @@ import {
|
||||||
AppNavigationCaption,
|
AppNavigationCaption,
|
||||||
AppNavigationItem,
|
AppNavigationItem,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
|
|
||||||
|
import { categoryLabel } from '../NotesService'
|
||||||
import NavigationCategoriesItem from './NavigationCategoriesItem'
|
import NavigationCategoriesItem from './NavigationCategoriesItem'
|
||||||
import NavigationNoteItem from './NavigationNoteItem'
|
import NavigationNoteItem from './NavigationNoteItem'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
import store from '../store'
|
import store from '../store'
|
||||||
|
|
||||||
import { ObserveVisibility } from 'vue-observe-visibility'
|
import { ObserveVisibility } from 'vue-observe-visibility'
|
||||||
|
@ -176,11 +177,11 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
categoryTitle(category) {
|
categoryTitle(category) {
|
||||||
return NotesService.categoryLabel(category)
|
return categoryLabel(category)
|
||||||
},
|
},
|
||||||
|
|
||||||
categoryToLabel(category) {
|
categoryToLabel(category) {
|
||||||
return NotesService.categoryLabel(category.substring(this.category.length + 1))
|
return categoryLabel(category.substring(this.category.length + 1))
|
||||||
},
|
},
|
||||||
|
|
||||||
getTimeslotFromNote(note) {
|
getTimeslotFromNote(note) {
|
||||||
|
|
|
@ -27,7 +27,8 @@ import {
|
||||||
ActionButton,
|
ActionButton,
|
||||||
AppNavigationItem,
|
AppNavigationItem,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
|
import { categoryLabel, setFavorite, prepareDeleteNote, undoDeleteNote, deleteNote } from '../NotesService'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'NavigationNoteItem',
|
name: 'NavigationNoteItem',
|
||||||
|
@ -91,7 +92,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
actionCategoryText() {
|
actionCategoryText() {
|
||||||
return NotesService.categoryLabel(this.note.category)
|
return categoryLabel(this.note.category)
|
||||||
},
|
},
|
||||||
|
|
||||||
actionDeleteIcon() {
|
actionDeleteIcon() {
|
||||||
|
@ -102,10 +103,10 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
onToggleFavorite() {
|
onToggleFavorite() {
|
||||||
this.loading.favorite = true
|
this.loading.favorite = true
|
||||||
NotesService.setFavorite(this.note.id, !this.note.favorite)
|
setFavorite(this.note.id, !this.note.favorite)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.favorite = false
|
this.loading.favorite = false
|
||||||
this.actionsOpen = false
|
this.actionsOpen = false
|
||||||
})
|
})
|
||||||
|
@ -118,24 +119,24 @@ export default {
|
||||||
|
|
||||||
onDeleteNote() {
|
onDeleteNote() {
|
||||||
this.actionsOpen = false
|
this.actionsOpen = false
|
||||||
NotesService.prepareDeleteNote(this.note.id)
|
prepareDeleteNote(this.note.id)
|
||||||
this.undoTimer = setTimeout(this.onDeleteNoteFinally, 7000)
|
this.undoTimer = setTimeout(this.onDeleteNoteFinally, 7000)
|
||||||
this.$emit('note-deleted')
|
this.$emit('note-deleted')
|
||||||
},
|
},
|
||||||
|
|
||||||
onUndoDeleteNote() {
|
onUndoDeleteNote() {
|
||||||
clearTimeout(this.undoTimer)
|
clearTimeout(this.undoTimer)
|
||||||
NotesService.undoDeleteNote(this.note.id)
|
undoDeleteNote(this.note.id)
|
||||||
},
|
},
|
||||||
|
|
||||||
onDeleteNoteFinally() {
|
onDeleteNoteFinally() {
|
||||||
this.loading.delete = true
|
this.loading.delete = true
|
||||||
NotesService.deleteNote(this.note.id)
|
deleteNote(this.note.id)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.delete = false
|
this.loading.delete = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -57,11 +57,12 @@ import {
|
||||||
AppContent,
|
AppContent,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
|
|
||||||
|
import { fetchNote, saveNote, saveNoteManually } from '../NotesService'
|
||||||
|
import { closeNavbar } from '../nextcloud'
|
||||||
import TheEditor from './EditorEasyMDE'
|
import TheEditor from './EditorEasyMDE'
|
||||||
import ThePreview from './EditorMarkdownIt'
|
import ThePreview from './EditorMarkdownIt'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
import store from '../store'
|
import store from '../store'
|
||||||
import { closeNavbar } from '../nextcloud'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Note',
|
name: 'Note',
|
||||||
|
@ -137,7 +138,7 @@ export default {
|
||||||
this.onUpdateTitle(this.title)
|
this.onUpdateTitle(this.title)
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.preview = false
|
this.preview = false
|
||||||
NotesService.fetchNote(this.noteId)
|
fetchNote(this.noteId)
|
||||||
.then((note) => {
|
.then((note) => {
|
||||||
if (note.errorMessage) {
|
if (note.errorMessage) {
|
||||||
OC.Notification.showTemporary(note.errorMessage)
|
OC.Notification.showTemporary(note.errorMessage)
|
||||||
|
@ -146,7 +147,7 @@ export default {
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
// note not found
|
// note not found
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -213,7 +214,7 @@ export default {
|
||||||
unsaved: true,
|
unsaved: true,
|
||||||
}
|
}
|
||||||
store.commit('add', note)
|
store.commit('add', note)
|
||||||
setTimeout(NotesService.saveNote.bind(NotesService, note.id), 1000)
|
setTimeout(saveNote.bind(this, note.id), 1000)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -229,7 +230,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
onManualSave() {
|
onManualSave() {
|
||||||
NotesService.saveNoteManually(this.note.id)
|
saveNoteManually(this.note.id)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,8 @@ import {
|
||||||
Multiselect,
|
Multiselect,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
} from '@nextcloud/vue'
|
} from '@nextcloud/vue'
|
||||||
import NotesService from '../NotesService'
|
|
||||||
|
import { categoryLabel, getCategories, setFavorite, setCategory, saveNoteManually } from '../NotesService'
|
||||||
import store from '../store'
|
import store from '../store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -77,7 +78,7 @@ export default {
|
||||||
filters: {
|
filters: {
|
||||||
categoryOptionLabel: function(obj) {
|
categoryOptionLabel: function(obj) {
|
||||||
const category = obj.isTag ? obj.label : obj
|
const category = obj.isTag ? obj.label : obj
|
||||||
return NotesService.categoryLabel(category)
|
return categoryLabel(category)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -128,7 +129,7 @@ export default {
|
||||||
return t('notes', 'You can create subcategories by using “/” as delimiter between parent category and subcategory, e.g. “{parent}/{sub}”.', { parent: t('notes', 'Category'), sub: t('notes', 'Subcategory') })
|
return t('notes', 'You can create subcategories by using “/” as delimiter between parent category and subcategory, e.g. “{parent}/{sub}”.', { parent: t('notes', 'Category'), sub: t('notes', 'Subcategory') })
|
||||||
},
|
},
|
||||||
categories() {
|
categories() {
|
||||||
return [ '', ...NotesService.getCategories(0, false) ]
|
return [ '', ...getCategories(0, false) ]
|
||||||
},
|
},
|
||||||
sidebarOpen() {
|
sidebarOpen() {
|
||||||
return store.state.sidebarOpen
|
return store.state.sidebarOpen
|
||||||
|
@ -152,10 +153,10 @@ export default {
|
||||||
|
|
||||||
onSetFavorite(favorite) {
|
onSetFavorite(favorite) {
|
||||||
this.loading.favorite = true
|
this.loading.favorite = true
|
||||||
NotesService.setFavorite(this.note.id, favorite)
|
setFavorite(this.note.id, favorite)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.favorite = false
|
this.loading.favorite = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -165,17 +166,17 @@ export default {
|
||||||
if (category !== null && this.note.category !== category) {
|
if (category !== null && this.note.category !== category) {
|
||||||
this.loading.category = true
|
this.loading.category = true
|
||||||
this.note.category = category
|
this.note.category = category
|
||||||
NotesService.setCategory(this.note.id, category)
|
setCategory(this.note.id, category)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.then(() => {
|
||||||
this.loading.category = false
|
this.loading.category = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onManualSave() {
|
onManualSave() {
|
||||||
NotesService.saveNoteManually(this.note.id)
|
saveNoteManually(this.note.id)
|
||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import '@babel/polyfill'
|
|
||||||
|
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
|
|
|
@ -2,4 +2,3 @@
|
||||||
script('notes', 'notes');
|
script('notes', 'notes');
|
||||||
style('notes', 'notes');
|
style('notes', 'notes');
|
||||||
?>
|
?>
|
||||||
<div id="vue-content"></div>
|
|
||||||
|
|
|
@ -12,26 +12,27 @@ module.exports = {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
use: ['vue-style-loader', 'css-loader']
|
use: ['vue-style-loader', 'css-loader'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.scss$/,
|
test: /\.scss$/,
|
||||||
use: ['vue-style-loader', 'css-loader', 'sass-loader']
|
use: ['vue-style-loader', 'css-loader', 'sass-loader'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.vue$/,
|
test: /\.vue$/,
|
||||||
loader: 'vue-loader'
|
loader: 'vue-loader',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.js$/,
|
test: /\.js$/,
|
||||||
loader: 'babel-loader',
|
loader: 'babel-loader',
|
||||||
exclude: /node_modules/
|
exclude: /node_modules/,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.(png|jpg|gif|svg)$/,
|
test: /\.(png|jpg|gif|svg)$/,
|
||||||
loader: 'file-loader',
|
loader: 'url-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[ext]?[hash]'
|
name: '[name].[ext]?[hash]',
|
||||||
|
limit: 8192,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -41,5 +42,6 @@ module.exports = {
|
||||||
],
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: ['*', '.js', '.vue', '.json'],
|
extensions: ['*', '.js', '.vue', '.json'],
|
||||||
|
symlinks: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue