Added multiple search terms capability

This commit is contained in:
Douglas Barone 2022-05-04 13:56:11 +00:00
parent 1ac36f1b7d
commit a4d2bde654

View File

@ -21,28 +21,36 @@ export async function userPresence(_, { search, onlyServants }) {
({ extensionAttribute2 }) => extensionAttribute2 == 'Técnico-administrativo' || extensionAttribute2 == 'Docente' ({ extensionAttribute2 }) => extensionAttribute2 == 'Técnico-administrativo' || extensionAttribute2 == 'Docente'
) )
search = search.toLowerCase().trim()
const filteredUsers = search const searchTerms = search.split(' ')
? usersWithWifiDevices.filter(
user => let filteredUsers = usersWithWifiDevices
Object.keys(user).some(
key => typeof user[key] == 'string' && user[key].contains(search) if (search) {
) || search = search.toLowerCase().trim()
user.wifiDevices?.some(
device => for (const term of searchTerms) {
device.status != 'OFFLINE' &&
( filteredUsers = filteredUsers.filter(
device.ip?.startsWith(search) || user =>
device.apName?.contains(search) || Object.keys(user).some(
device.essid?.contains(search) || key => typeof user[key] == 'string' && user[key].contains(term)
device.hostname?.contains(search) || ) ||
device.accessPoint?.name?.contains(search) || user.wifiDevices?.some(
device.accessPoint?.local?.contains(search) device =>
) device.status != 'OFFLINE' &&
) (
) device.ip?.startsWith(term) ||
: usersWithWifiDevices device.apName?.contains(term) ||
device.essid?.contains(term) ||
device.hostname?.contains(term) ||
device.accessPoint?.name?.contains(term) ||
device.accessPoint?.local?.contains(term)
)
)
)
}
}
const sortedUsers = filteredUsers const sortedUsers = filteredUsers
.sort((a, b) => b.displayName.localeCompare(a.displayName)) .sort((a, b) => b.displayName.localeCompare(a.displayName))