summaryrefslogtreecommitdiffstats
path: root/src/models
diff options
context:
space:
mode:
authorRichard Steinmetz <richard@steinmetz.cloud>2022-09-30 12:24:23 +0200
committerRichard Steinmetz <richard@steinmetz.cloud>2022-09-30 12:30:04 +0200
commit1bd8340fb3e6465719581a98c306c4c6c4c8f779 (patch)
tree96ccb1142bd40be898349e1d33d4401f5b61f9bc /src/models
parent58bd04f358af07fc01e94d8a819f393114e6151a (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.js21
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,