summaryrefslogtreecommitdiffstats
path: root/src/components/Settings/SettingsAddressbookShare.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Settings/SettingsAddressbookShare.vue')
-rw-r--r--src/components/Settings/SettingsAddressbookShare.vue40
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)