diff options
author | Richard Steinmetz <richard@steinmetz.cloud> | 2022-09-30 12:24:23 +0200 |
---|---|---|
committer | Richard Steinmetz <richard@steinmetz.cloud> | 2022-09-30 12:30:04 +0200 |
commit | 1bd8340fb3e6465719581a98c306c4c6c4c8f779 (patch) | |
tree | 96ccb1142bd40be898349e1d33d4401f5b61f9bc /src/models | |
parent | 58bd04f358af07fc01e94d8a819f393114e6151a (diff) |
Refactor manger property select logic
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'src/models')
-rw-r--r-- | src/models/rfcProps.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/models/rfcProps.js b/src/models/rfcProps.js index 13ec5bb0..861d74b0 100644 --- a/src/models/rfcProps.js +++ b/src/models/rfcProps.js @@ -21,6 +21,7 @@ */ import { VCardTime } from 'ical.js' import { loadState } from '@nextcloud/initial-state' +import { otherContacts } from '../utils/chartUtils' import ActionCopyNtoFN from '../components/Actions/ActionCopyNtoFN' import ActionToggleYear from '../components/Actions/ActionToggleYear' @@ -226,7 +227,25 @@ const properties = { readableName: t('contacts', 'Manager'), icon: 'icon-category-monitoring', default: false, - options: [], + options({ contact, $store, selectType }) { + // Only allow contacts of the same address book + const contacts = otherContacts({ + $store, + self: contact, + }) + + // Reduce to an object to eliminate duplicates + return Object.values(contacts.reduce((prev, { key }) => { + const contact = $store.getters.getContact(key) + return { + ...prev, + [contact.uid]: { + id: contact.key, + name: contact.displayName, + }, + } + }, selectType ? { [selectType.value]: selectType } : {})) + }, }, 'x-socialprofile': { multiple: true, |