As expected, a user does not see themselves in their contact list,
however, when using the contact list for filtering search, a user,
might want to limit the search to things that pertain to them.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
import { generateOcsUrl, generateUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
+import { getCurrentUser } from '@nextcloud/auth'
/**
* Create a cancel token
const { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), {
filter: searchTerm,
})
+ /*
+ * Add authenticated user to list of contacts for search filter
+ * If authtenicated user is searching/filtering, do not add them to the list
+ */
+ if (!searchTerm) {
+ let authenticatedUser = getCurrentUser()
+ authenticatedUser = {
+ id: authenticatedUser.uid,
+ fullName: 'Me',
+ emailAddresses: [],
+ }
+ contacts.unshift(authenticatedUser)
+ return contacts
+ }
+
return contacts
}
filteredProviders: [],
searching: false,
searchQuery: '',
- placesFilter: '',
+ placessearchTerm: '',
dateTimeFilter: null,
filters: [],
results: [],
this.providers = providers
console.debug('Search providers', this.providers)
})
- getContacts({ filter: '' }).then((contacts) => {
+ getContacts({ searchTerm: '' }).then((contacts) => {
this.contacts = this.mapContacts(contacts)
console.debug('Contacts', this.contacts)
})
})
},
filterContacts(query) {
- getContacts({ filter: query }).then((contacts) => {
+ getContacts({ searchTerm: query }).then((contacts) => {
this.contacts = this.mapContacts(contacts)
console.debug(`Contacts filtered by ${query}`, this.contacts)
})