diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-11-09 18:03:34 +0100 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-11-09 18:03:34 +0100 |
commit | 3890564d56bc12c7704cbfe41094b18bd0e6013d (patch) | |
tree | f45b5849998dd1080c11c155629b8928846fd9d5 | |
parent | 74e055d024050f9d936f5e5d6c5b7f93d6c207d8 (diff) | |
parent | 38ea18f362d5c506582cfa715f30789fb85beae3 (diff) |
Merge branch 'master' of https://github.com/nextcloud/contacts into disabled-ab-should-not-be-suggested
28 files changed, 177 insertions, 148 deletions
diff --git a/.eslintrc.js b/.eslintrc.js index 6c62cc72..4df12943 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,15 +16,28 @@ module.exports = { }, parserOptions: { parser: 'babel-eslint', - ecmaVersion: 6 + ecmaVersion: 8 }, extends: [ 'eslint:recommended', + 'plugin:import/errors', + 'plugin:import/warnings', 'plugin:node/recommended', 'plugin:vue/essential', 'plugin:vue/recommended', 'standard' ], + settings: { + 'import/resolver': { + webpack: { + config: 'webpack.common.js' + }, + node: { + paths: ['src'], + extensions: ['.js', '.vue'] + } + } + }, plugins: ['vue', 'node'], rules: { // space before function () diff --git a/css/Settings/SettingsAddressbookShares.scss b/css/Settings/SettingsAddressbookShares.scss index dae91720..9a311bb6 100644 --- a/css/Settings/SettingsAddressbookShares.scss +++ b/css/Settings/SettingsAddressbookShares.scss @@ -41,7 +41,7 @@ width: 14px; } - .multiselect.multiselect-vue { + .multiselect { width: inherit; .multiselect__tags:focus-within, .multiselect__tags:hover { diff --git a/package-lock.json b/package-lock.json index b6420acc..eabbe7dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2907,6 +2907,12 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -4983,6 +4989,49 @@ "resolve": "^1.5.0" } }, + "eslint-import-resolver-webpack": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.10.1.tgz", + "integrity": "sha512-RN49nnyQpBCP3TqVhct+duJjH8kaVg08fFevWvA+4Cr1xeN7OFQRse4wMvzBto9/4VmOJWvqPfdmNTEG3jc8SQ==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.4.0", + "semver": "^5.3.0" + }, + "dependencies": { + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "http://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + } + } + }, "eslint-loader": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", @@ -5622,6 +5671,12 @@ "pkg-dir": "^2.0.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -5787,12 +5842,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5807,17 +5864,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5934,7 +5994,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5946,6 +6007,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5960,6 +6022,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5967,12 +6030,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -5991,6 +6056,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -6071,7 +6137,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -6083,6 +6150,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -6204,6 +6272,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -8300,9 +8369,9 @@ } }, "nextcloud-vue": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/nextcloud-vue/-/nextcloud-vue-0.3.1.tgz", - "integrity": "sha512-cMPtVfTU2hN0O2TQMHK4/IX3vXBYiSTSnekg8n8rxL9T1ihrzE8ZOsYiwC8iR40wcVqMDda60kQzi9PzqRu19A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/nextcloud-vue/-/nextcloud-vue-0.4.0.tgz", + "integrity": "sha512-v0zF+z3COv7Dxbz0fKd+8oCy/Wx6K7iFcnzPUPQnRlRY2xfbPymE7CtPGcYjso70iA/GbspFZh7wX0PFL30z5A==", "requires": { "@babel/polyfill": "^7.0.0", "md5": "^2.2.1", diff --git a/package.json b/package.json index 28817dfa..c56690ad 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "debounce": "^1.2.0", "ical.js": "^1.3.0", "moment": "^2.22.2", - "nextcloud-vue": "^0.3.1", + "nextcloud-vue": "^0.4.0", "p-limit": "^2.0.0", "uuid": "^3.3.2", "v-tooltip": "^2.0.0-rc.33", @@ -58,7 +58,7 @@ "ie >= 11" ], "engines": { - "node": ">=10.0.0" + "node": ">=11.0.0" }, "devDependencies": { "@babel/core": "^7.1.5", @@ -72,6 +72,7 @@ "eslint": "^4.19.1", "eslint-config-standard": "^11.0.0", "eslint-friendly-formatter": "^4.0.1", + "eslint-import-resolver-webpack": "^0.10.1", "eslint-loader": "^2.1.1", "eslint-plugin-import": "^2.14.0", "eslint-plugin-node": "^8.0.0", diff --git a/src/components/ContactDetails.vue b/src/components/ContactDetails.vue index b85fc5aa..556a627c 100644 --- a/src/components/ContactDetails.vue +++ b/src/components/ContactDetails.vue @@ -107,10 +107,6 @@ </template> <script> -import { PopoverMenu } from 'nextcloud-vue' -import ClickOutside from 'vue-click-outside' -import Vue from 'vue' -import VTooltip from 'v-tooltip' import debounce from 'debounce' import rfcProps from '../models/rfcProps.js' @@ -121,13 +117,10 @@ import PropertySelect from './Properties/PropertySelect' import PropertyGroups from './Properties/PropertyGroups' import ContactAvatar from './ContactDetails/ContactDetailsAvatar' -Vue.use(VTooltip) - export default { name: 'ContactDetails', components: { - PopoverMenu, ContactProperty, PropertySelect, PropertyGroups, @@ -135,10 +128,6 @@ export default { ContactAvatar }, - directives: { - ClickOutside - }, - props: { loading: { type: Boolean, diff --git a/src/components/ContactDetails/ContactDetailsAddNewProp.vue b/src/components/ContactDetails/ContactDetailsAddNewProp.vue index 404e1a14..c9d5404c 100644 --- a/src/components/ContactDetails/ContactDetailsAddNewProp.vue +++ b/src/components/ContactDetails/ContactDetailsAddNewProp.vue @@ -30,7 +30,7 @@ <div class="property__label" /> <!-- type selector --> - <multiselect :options="availableProperties" :placeholder="t('contacts', 'Choose property type')" class="multiselect-vue property__value" + <multiselect :options="availableProperties" :placeholder="t('contacts', 'Choose property type')" class="property__value" track-by="id" label="name" @input="addProp" /> </div> </div> @@ -39,16 +39,13 @@ <script> import rfcProps from '../../models/rfcProps.js' import Contact from '../../models/contact' -import propertyTitle from '../Properties/PropertyTitle' - -import Multiselect from 'vue-multiselect' +import PropertyTitle from 'Components/Properties/PropertyTitle' export default { name: 'ContactDetailsAddNewProp', components: { - propertyTitle, - Multiselect + PropertyTitle }, props: { diff --git a/src/components/ContactDetails/ContactDetailsProperty.vue b/src/components/ContactDetails/ContactDetailsProperty.vue index 3a4df0c2..e2eee5b6 100644 --- a/src/components/ContactDetails/ContactDetailsProperty.vue +++ b/src/components/ContactDetails/ContactDetailsProperty.vue @@ -35,11 +35,11 @@ import { Property } from 'ical.js' import rfcProps from '../../models/rfcProps.js' import Contact from '../../models/contact' -import PropertyText from '../Properties/PropertyText' -import PropertyMultipleText from '../Properties/PropertyMultipleText' -import PropertyDateTime from '../Properties/PropertyDateTime' -import propertyGroups from '../Properties/PropertyGroups' -import PropertySelect from '../Properties/PropertySelect' +import PropertyText from 'Components/Properties/PropertyText' +import PropertyMultipleText from 'Components/Properties/PropertyMultipleText' +import PropertyDateTime from 'Components/Properties/PropertyDateTime' +import propertyGroups from 'Components/Properties/PropertyGroups' +import PropertySelect from 'Components/Properties/PropertySelect' export default { name: 'ContactDetailsProperty', diff --git a/src/components/ContentList.vue b/src/components/ContentList.vue index 891c9502..92941911 100644 --- a/src/components/ContentList.vue +++ b/src/components/ContentList.vue @@ -31,13 +31,15 @@ </template> <script> -import contentListItem from './ContentList/ContentListItem' +import ContentListItem from './ContentList/ContentListItem' export default { name: 'ContentList', + components: { - 'content-list-item': contentListItem + ContentListItem }, + props: { list: { type: Array, diff --git a/src/components/ImportScreen.vue b/src/components/ImportScreen.vue index 954b165b..e8566438 100644 --- a/src/components/ImportScreen.vue +++ b/src/components/ImportScreen.vue @@ -33,11 +33,6 @@ </template> <script> -import Vue from 'vue' -import VTooltip from 'v-tooltip' - -Vue.use(VTooltip) - export default { name: 'ImportScreen', computed: { diff --git a/src/components/Properties/PropertyDateTime.vue b/src/components/Properties/PropertyDateTime.vue index e912c192..4a68f594 100644 --- a/src/components/Properties/PropertyDateTime.vue +++ b/src/components/Properties/PropertyDateTime.vue @@ -30,7 +30,7 @@ <!-- type selector --> <multiselect v-if="propModel.options" v-model="localType" :options="options" :searchable="false" :placeholder="t('contacts', 'Select type')" - class="multiselect-vue property__label" track-by="id" label="name" + class="property__label" track-by="id" label="name" @input="updateType" /> <!-- if we do not support any type on our model but one is set anyway --> @@ -51,13 +51,12 @@ </template> <script> -import Multiselect from 'vue-multiselect' -import { DatetimePicker } from 'nextcloud-vue' import debounce from 'debounce' import moment from 'moment' +import { DatetimePicker } from 'nextcloud-vue' import { VCardTime } from 'ical.js' -import propertyTitle from './PropertyTitle' +import PropertyTitle from './PropertyTitle' /** * Format time with locale to display only @@ -134,9 +133,8 @@ export default { name: 'PropertyDateTime', components: { - Multiselect, - propertyTitle, - DatetimePicker + DatetimePicker, + PropertyTitle }, props: { diff --git a/src/components/Properties/PropertyGroups.vue b/src/components/Properties/PropertyGroups.vue index 7675bbf1..b4de6185 100644 --- a/src/components/Properties/PropertyGroups.vue +++ b/src/components/Properties/PropertyGroups.vue @@ -29,7 +29,7 @@ <!-- multiselect taggable groups with a limit to 3 groups shown --> <multiselect v-model="localValue" :options="groups" :placeholder="t('contacts', 'Add contact in group')" :limit="3" :multiple="true" :taggable="true" - :close-on-select="false" tag-placeholder="create" class="multiselect-vue property__value" + :close-on-select="false" tag-placeholder="create" class="property__value" @input="updateValue" @tag="validateGroup" @select="addContactToGroup" @remove="removeContactToGroup"> @@ -42,17 +42,12 @@ </template> <script> -import Multiselect from 'vue-multiselect' import debounce from 'debounce' import Contact from '../../models/contact' export default { name: 'PropertyGroups', - components: { - Multiselect - }, - props: { propModel: { type: Object, diff --git a/src/components/Properties/PropertyMultipleText.vue b/src/components/Properties/PropertyMultipleText.vue index 50e2b71e..79386ba2 100644 --- a/src/components/Properties/PropertyMultipleText.vue +++ b/src/components/Properties/PropertyMultipleText.vue @@ -30,7 +30,7 @@ <!-- type selector --> <multiselect v-if="propModel.options" v-model="localType" :options="options" :searchable="false" :placeholder="t('contacts', 'Select type')" - class="multiselect-vue property__label" track-by="id" label="name" + class="property__label" track-by="id" label="name" @input="updateType" /> <!-- if we do not support any type on our model but one is set anyway --> @@ -69,16 +69,14 @@ </template> <script> -import Multiselect from 'vue-multiselect' -import propertyTitle from './PropertyTitle' +import PropertyTitle from './PropertyTitle' import debounce from 'debounce' export default { name: 'PropertyText', components: { - Multiselect, - propertyTitle + PropertyTitle }, props: { diff --git a/src/components/Properties/PropertySelect.vue b/src/components/Properties/PropertySelect.vue index c365445f..92508124 100644 --- a/src/components/Properties/PropertySelect.vue +++ b/src/components/Properties/PropertySelect.vue @@ -45,16 +45,14 @@ </template> <script> -import Multiselect from 'vue-multiselect' -import propertyTitle from './PropertyTitle' +import PropertyTitle from './PropertyTitle' import debounce from 'debounce' export default { name: 'PropertySelect', components: { - Multiselect, - propertyTitle + PropertyTitle }, props: { diff --git a/src/components/Properties/PropertyText.vue b/src/components/Properties/PropertyText.vue index d2681784..b67514f0 100644 --- a/src/components/Properties/PropertyText.vue +++ b/src/components/Properties/PropertyText.vue @@ -30,7 +30,7 @@ <!-- type selector --> <multiselect v-if="propModel.options" v-model="localType" :options="options" :searchable="false" :placeholder="t('contacts', 'Select type')" - class="multiselect-vue property__label" track-by="id" label="name" + class="property__label" track-by="id" label="name" @input="updateType" /> <!-- if we do not support any type on our model but one is set anyway --> @@ -55,16 +55,14 @@ </template> <script> -import Multiselect from 'vue-multiselect' -import propertyTitle from './PropertyTitle' +import PropertyTitle from './PropertyTitle' import debounce from 'debounce' export default { name: 'PropertyText', components: { - Multiselect, - propertyTitle + PropertyTitle }, props: { diff --git a/src/components/Settings/SettingsAddressbook.vue b/src/components/Settings/SettingsAddressbook.vue index 26931977..aaf9cd4c 100644 --- a/src/components/Settings/SettingsAddressbook.vue +++ b/src/components/Settings/SettingsAddressbook.vue @@ -42,24 +42,15 @@ </template> <script> -import Vue from 'vue' -import { PopoverMenu } from 'nextcloud-vue' -import ClickOutside from 'vue-click-outside' -import VueClipboard from 'vue-clipboard2' - import ShareAddressBook from './SettingsAddressbookShare' -Vue.use(VueClipboard) - export default { name: 'SettingsAddressbook', + components: { - PopoverMenu, ShareAddressBook }, - directives: { - ClickOutside - }, + props: { addressbook: { type: Object, diff --git a/src/components/Settings/SettingsAddressbookShare.vue b/src/components/Settings/SettingsAddressbookShare.vue index 12bbc921..0c87d799 100644 --- a/src/components/Settings/SettingsAddressbookShare.vue +++ b/src/components/Settings/SettingsAddressbookShare.vue @@ -34,7 +34,6 @@ :placeholder="placeholder" :class="{ 'showContent': inputGiven, 'icon-loading': isLoading }" open-direction="bottom" - class="multiselect-vue" @search-change="asyncFind" @input="shareAddressbook"> <template slot="singleLabel" slot-scope="props"> @@ -57,23 +56,17 @@ </template> <script> -import clickOutside from 'vue-click-outside' -import api from '../../services/api' -import Multiselect from 'vue-multiselect' + +import api from 'Services/api' + import addressBookSharee from './SettingsAddressbookSharee' import debounce from 'debounce' export default { name: 'SettingsShareAddressbook', components: { - clickOutside, - Multiselect, addressBookSharee }, - directives: { - clickOutside, - debounce - }, props: { addressbook: { type: Object, diff --git a/src/components/Settings/SettingsAddressbookSharee.vue b/src/components/Settings/SettingsAddressbookSharee.vue index c9a4870d..613bd301 100644 --- a/src/components/Settings/SettingsAddressbookSharee.vue +++ b/src/components/Settings/SettingsAddressbookSharee.vue @@ -40,27 +40,23 @@ </template> <script> -import clickOutside from 'vue-click-outside' export default { name: 'SettingsShareSharee', - components: { - clickOutside - }, - directives: { - clickOutside - }, + props: { sharee: { type: Object, required: true } }, + computed: { writeable() { return this.sharee.writeable } }, + methods: { deleteSharee() { setTimeout(() => { this.$store.dispatch('removeSharee', this.sharee) }, 500) diff --git a/src/components/Settings/Setting |