diff options
Diffstat (limited to 'src/components/Settings/SettingsAddressbookShare.vue')
-rw-r--r-- | src/components/Settings/SettingsAddressbookShare.vue | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/src/components/Settings/SettingsAddressbookShare.vue b/src/components/Settings/SettingsAddressbookShare.vue index 81087f54..c48ad657 100644 --- a/src/components/Settings/SettingsAddressbookShare.vue +++ b/src/components/Settings/SettingsAddressbookShare.vue @@ -21,7 +21,7 @@ --> <template> - <div class="addressbook__shares"> + <div class="addressbook-shares"> <multiselect id="users-groups-search" :options="usersOrGroups" @@ -58,12 +58,7 @@ import clickOutside from 'vue-click-outside' import api from '../../services/api' import Multiselect from 'vue-multiselect' -import addressbookSharee from './SettingsAddressbookSharee' - -import clickOutside from 'vue-click-outside' - -import api from '../../services/api' - +import addressBookSharee from './SettingsAddressbookSharee' export default { name: 'SettingsShareAddressbook', components: { @@ -102,12 +97,9 @@ export default { * * @param {Object} chosenUserOrGroup */ - shareAddressbook(chosenUserOrGroup) { + shareAddressbook({ sharee, id, group }) { let addressbook = this.addressbook - let sharee = chosenUserOrGroup.match - let group = chosenUserOrGroup.matchgroup - this.$store.dispatch('shareAddressbook', { addressbook, sharee, group }) - + this.$store.dispatch('shareAddressbook', { addressbook, sharee, id, group }) }, /** @@ -122,22 +114,18 @@ export default { return } let regex = new RegExp(query, 'i') - let existingSharees = [] - for (let j = 0; j < this.addressbook.shares.length; j++) { - existingSharees.push(this.addressbook.shares[j].displayname + this.addressbook.shares[j].group) - } + let existingSharees = this.addressbook.shares.map(share => share.id + share.group) + matches.filter(share => existingSharees.indexOf(share.id + group) === -1) for (let i = 0; i < matches.length; i++) { - if (existingSharees.indexOf(matches[i] + group) !== -1) { - continue - } - let matchResult = matches[i].split(regex) + let matchResult = matches[i].displayname.split(regex) let newMatch = { - match: matches[i], + sharee: matches[i].displayname, + id: matches[i].id, matchstart: matchResult[0], - matchpattern: matches[i].match(regex)[0], + matchpattern: matches[i].displayname.match(regex)[0], matchend: matchResult[1], matchtag: group ? '(group)' : '(user)', - matchgroup: group + group: group } this.usersOrGroups.push(newMatch) } @@ -153,10 +141,10 @@ export default { this.usersOrGroups = [] if (query.length > 0) { api.all([ - api.get(OC.linkToOCS('cloud', 2) + 'users?search=' + query), - api.get(OC.linkToOCS('cloud', 2) + 'groups?search=' + query) + api.get(OC.linkToOCS('cloud', 2) + 'users/details?search=' + query), + api.get(OC.linkToOCS('cloud', 2) + 'groups/details?search=' + query) ]).then(response => { - let matchingUsers = response[0].data.ocs.data.users + let matchingUsers = Object.values(response[0].data.ocs.data.users) let matchingGroups = response[1].data.ocs.data.groups try { this.formatMatchResults(matchingUsers, query, false) |