Added multiple search terms capability
This commit is contained in:
parent
1ac36f1b7d
commit
a4d2bde654
|
@ -21,28 +21,36 @@ export async function userPresence(_, { search, onlyServants }) {
|
|||
({ extensionAttribute2 }) => extensionAttribute2 == 'Técnico-administrativo' || extensionAttribute2 == 'Docente'
|
||||
)
|
||||
|
||||
|
||||
const searchTerms = search.split(' ')
|
||||
|
||||
let filteredUsers = usersWithWifiDevices
|
||||
|
||||
if (search) {
|
||||
search = search.toLowerCase().trim()
|
||||
|
||||
const filteredUsers = search
|
||||
? usersWithWifiDevices.filter(
|
||||
for (const term of searchTerms) {
|
||||
|
||||
filteredUsers = filteredUsers.filter(
|
||||
user =>
|
||||
Object.keys(user).some(
|
||||
key => typeof user[key] == 'string' && user[key].contains(search)
|
||||
key => typeof user[key] == 'string' && user[key].contains(term)
|
||||
) ||
|
||||
user.wifiDevices?.some(
|
||||
device =>
|
||||
device.status != 'OFFLINE' &&
|
||||
(
|
||||
device.ip?.startsWith(search) ||
|
||||
device.apName?.contains(search) ||
|
||||
device.essid?.contains(search) ||
|
||||
device.hostname?.contains(search) ||
|
||||
device.accessPoint?.name?.contains(search) ||
|
||||
device.accessPoint?.local?.contains(search)
|
||||
device.ip?.startsWith(term) ||
|
||||
device.apName?.contains(term) ||
|
||||
device.essid?.contains(term) ||
|
||||
device.hostname?.contains(term) ||
|
||||
device.accessPoint?.name?.contains(term) ||
|
||||
device.accessPoint?.local?.contains(term)
|
||||
)
|
||||
)
|
||||
)
|
||||
: usersWithWifiDevices
|
||||
}
|
||||
}
|
||||
|
||||
const sortedUsers = filteredUsers
|
||||
.sort((a, b) => b.displayName.localeCompare(a.displayName))
|
||||
|
|
Loading…
Reference in New Issue
Block a user