Wifi views OK
This commit is contained in:
parent
c4efe7f168
commit
adb6289e99
|
@ -110,7 +110,6 @@ const Query = {
|
||||||
|
|
||||||
wifiUsers: () => {
|
wifiUsers: () => {
|
||||||
return prisma.user.findMany({
|
return prisma.user.findMany({
|
||||||
orderBy: { displayName: 'asc' },
|
|
||||||
where: { wifiDevices: { some: { NOT: { lastSeen: null } } } },
|
where: { wifiDevices: { some: { NOT: { lastSeen: null } } } },
|
||||||
include: { wifiDevices: true }
|
include: { wifiDevices: true }
|
||||||
})
|
})
|
||||||
|
|
|
@ -228,7 +228,8 @@ export default {
|
||||||
isOnline: device.status == 'ONLINE',
|
isOnline: device.status == 'ONLINE',
|
||||||
displayName: device.user?.displayName || 'Não autenticado',
|
displayName: device.user?.displayName || 'Não autenticado',
|
||||||
sAMAccountName: device.user?.sAMAccountName,
|
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>
|
<template>
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<v-data-iterator
|
<v-data-iterator
|
||||||
:items="computedWifiUsers"
|
:items="sortedWifiUsers"
|
||||||
:loading="$apollo.queries.wifiUsers.loading"
|
:loading="$apollo.queries.wifiUsers.loading"
|
||||||
:search="search"
|
:search="search"
|
||||||
>
|
>
|
||||||
|
@ -68,11 +68,111 @@
|
||||||
:key="device.mac"
|
:key="device.mac"
|
||||||
>
|
>
|
||||||
<v-expansion-panel-header>
|
<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-header>
|
||||||
<v-expansion-panel-content>{{
|
<v-expansion-panel-content
|
||||||
device
|
><v-list dense>
|
||||||
}}</v-expansion-panel-content>
|
<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-panel>
|
||||||
</v-expansion-panels>
|
</v-expansion-panels>
|
||||||
</v-expansion-panel-content>
|
</v-expansion-panel-content>
|
||||||
|
@ -93,10 +193,19 @@ export default {
|
||||||
search: ''
|
search: ''
|
||||||
}),
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
computedWifiUsers() {
|
sortedWifiUsers() {
|
||||||
return this.wifiUsers?.sort(
|
return this.wifiUsers
|
||||||
(a, b) => b.wifiDevices.length - a.wifiDevices.length
|
?.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: {
|
apollo: {
|
||||||
|
@ -116,6 +225,7 @@ export default {
|
||||||
firstSeen
|
firstSeen
|
||||||
lastSeen
|
lastSeen
|
||||||
status
|
status
|
||||||
|
apName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user