Wifi views OK
This commit is contained in:
parent
c4efe7f168
commit
adb6289e99
|
@ -110,7 +110,6 @@ const Query = {
|
|||
|
||||
wifiUsers: () => {
|
||||
return prisma.user.findMany({
|
||||
orderBy: { displayName: 'asc' },
|
||||
where: { wifiDevices: { some: { NOT: { lastSeen: null } } } },
|
||||
include: { wifiDevices: true }
|
||||
})
|
||||
|
|
|
@ -228,7 +228,8 @@ export default {
|
|||
isOnline: device.status == 'ONLINE',
|
||||
displayName: device.user?.displayName || 'Não autenticado',
|
||||
sAMAccountName: device.user?.sAMAccountName,
|
||||
thumbnailPhoto: device.user?.thumbnailPhoto
|
||||
thumbnailPhoto: device.user?.thumbnailPhoto,
|
||||
ip: device.ip == 'Unknown' ? 'Sem endereço IP' : device.ip
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<v-container fluid>
|
||||
<v-data-iterator
|
||||
:items="computedWifiUsers"
|
||||
:items="sortedWifiUsers"
|
||||
:loading="$apollo.queries.wifiUsers.loading"
|
||||
:search="search"
|
||||
>
|
||||
|
@ -68,11 +68,111 @@
|
|||
:key="device.mac"
|
||||
>
|
||||
<v-expansion-panel-header>
|
||||
{{ device.hostname || device.mac }} {{ device.oui }}
|
||||
<div>
|
||||
<v-icon
|
||||
left
|
||||
:color="device.status == 'ONLINE' ? 'green' : ''"
|
||||
>mdi-cellphone-wireless</v-icon
|
||||
>
|
||||
{{ device.hostname || device.mac }} {{ device.oui }}
|
||||
</div>
|
||||
</v-expansion-panel-header>
|
||||
<v-expansion-panel-content>{{
|
||||
device
|
||||
}}</v-expansion-panel-content>
|
||||
<v-expansion-panel-content
|
||||
><v-list dense>
|
||||
<v-list-item v-if="device.isOnline">
|
||||
<v-list-item-action>
|
||||
<v-icon color="green darken-1">mdi-wifi</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.essid }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle> SSID </v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item v-else>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-wifi-off</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.essid }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
Dispositivo off-line
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-access-point</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.apName }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
Access Point ({{ device.controller }})
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-ip-network</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.ip }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
Último endereço IP conhecido
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-expansion-card-variant</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.mac }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
{{ device.oui }}
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-eye</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.lastSeen | dateAndTime }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
Visto pela última vez
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
<v-list-item>
|
||||
<v-list-item-action>
|
||||
<v-icon>mdi-check-decagram</v-icon>
|
||||
</v-list-item-action>
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>
|
||||
{{ device.firstSeen | dateAndTime }}
|
||||
</v-list-item-title>
|
||||
<v-list-item-subtitle>
|
||||
Visto pela primeira vez
|
||||
</v-list-item-subtitle>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</v-list></v-expansion-panel-content
|
||||
>
|
||||
</v-expansion-panel>
|
||||
</v-expansion-panels>
|
||||
</v-expansion-panel-content>
|
||||
|
@ -93,10 +193,19 @@ export default {
|
|||
search: ''
|
||||
}),
|
||||
computed: {
|
||||
computedWifiUsers() {
|
||||
return this.wifiUsers?.sort(
|
||||
(a, b) => b.wifiDevices.length - a.wifiDevices.length
|
||||
)
|
||||
sortedWifiUsers() {
|
||||
return this.wifiUsers
|
||||
?.sort(
|
||||
(a, b) =>
|
||||
b.wifiDevices.filter(device => device.status == 'ONLINE').length -
|
||||
a.wifiDevices.filter(device => device.status == 'ONLINE').length
|
||||
)
|
||||
.map(user => ({
|
||||
...user,
|
||||
wifiDevices: user.wifiDevices.sort(a =>
|
||||
a.status == 'ONLINE' ? -1 : 1
|
||||
)
|
||||
}))
|
||||
}
|
||||
},
|
||||
apollo: {
|
||||
|
@ -116,6 +225,7 @@ export default {
|
|||
firstSeen
|
||||
lastSeen
|
||||
status
|
||||
apName
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user