diff --git a/server/src/resolvers/Query/wifiDevices.js b/server/src/resolvers/Query/wifiDevices.js index ea6e9ff..35360fc 100644 --- a/server/src/resolvers/Query/wifiDevices.js +++ b/server/src/resolvers/Query/wifiDevices.js @@ -1,6 +1,6 @@ import prisma from '../../prisma' -export async function wifiDevices(parent, { take = 50, skip = 0, search }) { +export async function wifiDevices(parent, { take = 50, skip = 0, search, sortBy, sortDesc }) { const mode = 'insensitive' if (!search) @@ -26,7 +26,7 @@ export async function wifiDevices(parent, { take = 50, skip = 0, search }) { }), data: prisma.wifiDevice.findMany({ where, - orderBy: [{ lastSeen: 'desc' }, { ip: 'asc' }], + orderBy: [{ [sortBy || 'hostname']: sortDesc ? 'desc' : 'asc' }, { ip: 'asc' }], include: { user: true, accessPoint: true }, take, skip diff --git a/server/src/typeDefs.js b/server/src/typeDefs.js index 468de52..1d96de1 100644 --- a/server/src/typeDefs.js +++ b/server/src/typeDefs.js @@ -36,6 +36,8 @@ const typeDefs = gql` search: String = "" take: Int skip: Int + sortBy: WifiDevicesResultSortBy = "signalStrength" + sortDesc: Boolean = false ): WifiDevicesResult! @auth(roles: ["superAdmin"]) "Users that uses the Wi-Fi" @@ -397,6 +399,24 @@ const typeDefs = gql` local: String notes: String } + + enum WifiDevicesResultSortBy{ + mac + hostname + firstSeen + lastSeen + essid + ip + uptime + apName + status + + signalStrength + frequency + protocol + speed + usage + } ` export { typeDefs } diff --git a/web/src/components/DataTables/WifiDevicesDataTable.vue b/web/src/components/DataTables/WifiDevicesDataTable.vue index 3e79420..5086e23 100644 --- a/web/src/components/DataTables/WifiDevicesDataTable.vue +++ b/web/src/components/DataTables/WifiDevicesDataTable.vue @@ -1,13 +1,17 @@