Add authenicated user to person list for search filtering

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>
pull/42167/head
fenn-cs 6 months ago
parent 527c51a18e
commit c0374c79d7

@ -22,6 +22,7 @@
import { generateOcsUrl, generateUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
import { getCurrentUser } from '@nextcloud/auth'
/**
* Create a cancel token
@ -103,5 +104,20 @@ export async function getContacts({ searchTerm }) {
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
}

@ -194,7 +194,7 @@ export default {
filteredProviders: [],
searching: false,
searchQuery: '',
placesFilter: '',
placessearchTerm: '',
dateTimeFilter: null,
filters: [],
results: [],
@ -244,7 +244,7 @@ export default {
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)
})
@ -364,7 +364,7 @@ export default {
})
},
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)
})

Loading…
Cancel
Save