diff --git a/server/src/utils/wifiUtils.js b/server/src/utils/wifiUtils.js index 4d92638..03afdd5 100644 --- a/server/src/utils/wifiUtils.js +++ b/server/src/utils/wifiUtils.js @@ -51,6 +51,7 @@ async function updateDBWithOnlineDevices() { }, update: { ...device, + hostname: device.hostname || device.mac, user } }) diff --git a/web/src/views/WifiDevices.vue b/web/src/views/WifiDevices.vue index a4791a5..d6ff00d 100644 --- a/web/src/views/WifiDevices.vue +++ b/web/src/views/WifiDevices.vue @@ -4,12 +4,20 @@ :items="computedWifiDevices" :items-per-page.sync="itemsPerPage" :page="page" + :loading="$apollo.queries.wifiDevices.loading" > - @@ -51,6 +148,7 @@ export default { name: 'WifiDevices', components: { Avatar }, data: () => ({ + search: '', itemsPerPage: 24, itemsPerPageArray: [15, 30, 60, 120], page: 1 @@ -84,15 +182,26 @@ export default { }, computed: { computedWifiDevices() { - return this.wifiDevices?.map(device => ({ - ...device, - hostname: device.hostname || 'Desconhecido', - user: device.user || { - displayName: 'Não identificado', - sAMAccountName: null, - thumbnailPhoto: null - } - })) + const filter = this.search.toLowerCase() + + return this.wifiDevices + ?.map(device => ({ + ...device, + hostname: device.hostname || 'Desconhecido', + isOnline: device.status == 'ONLINE', + user: device.user || { + displayName: 'Não autenticado', + sAMAccountName: null, + thumbnailPhoto: null + } + })) + .filter( + ({ ip, mac, user }) => + ip.includes(filter) || + mac.includes(filter) || + user.displayName.toLowerCase().includes(filter) || + user.sAMAccountName?.includes(filter) + ) } } }