Include filter

This commit is contained in:
Douglas Barone 2022-06-08 19:09:11 +00:00
parent d4b338c6dc
commit 37a3d801d0
3 changed files with 25 additions and 6 deletions

View File

@ -1,10 +1,12 @@
import prisma from '../../prisma'
export async function wifiDevices(parent, { take = 50, skip = 0, search, sortBy, sortDesc }) {
export async function wifiDevices(parent, { take = 50, skip = 0, search, sortBy, sortDesc, onlineOnly }) {
const mode = 'insensitive'
if (!search) search = ''
if (!onlineOnly) onlineOnly = undefined
const where = {
OR: [
{ hostname: { contains: search, mode } },
@ -16,7 +18,8 @@ export async function wifiDevices(parent, { take = 50, skip = 0, search, sortBy,
{ controller: { contains: search, mode } },
{ user: { displayName: { contains: search, mode } } },
{ user: { sAMAccountName: { contains: search, mode } } }
]
],
status: onlineOnly && 'ONLINE'
}
return {

View File

@ -37,7 +37,8 @@ const typeDefs = gql`
take: Int
skip: Int
sortBy: WifiDevicesResultSortBy = "signalStrength"
sortDesc: Boolean = false
sortDesc: Boolean = false,
onlineOnly: Boolean = false
): WifiDevicesResult! @auth(roles: ["superAdmin"])
"Users that uses the Wi-Fi"

View File

@ -3,17 +3,25 @@
<v-toolbar class="mb-2" flat outlined>
<v-text-field
v-model="search"
style="max-width: 300px"
label="Pesquisar"
prepend-icon="mdi-devices"
clearable
hide-details
:loading="$apollo.queries.wifiDevices.loading && !!search"
/>
<v-spacer />
<v-switch
v-model="onlineOnly"
class="mx-2"
label="Somente online"
hide-details
/>
<v-select
v-model="itemsPerPage"
style="max-width: 130px"
class="shrink"
:items="[10, 20, 30, 50, 100]"
label="Items por página"
@ -87,7 +95,8 @@ export default {
page: 1,
itemsPerPage: 10,
sortBy: 'signalStrength',
sortDesc: false
sortDesc: false,
onlineOnly: false
}),
computed: {
computedWifiDevices() {
@ -108,6 +117,9 @@ export default {
}
},
watch: {
onlineOnly() {
this.page = 1
},
search(newValue) {
this.page = 1
@ -130,6 +142,7 @@ export default {
$take: Int
$sortBy: WifiDevicesResultSortBy
$sortDesc: Boolean
$onlineOnly: Boolean
) {
wifiDevices(
search: $search
@ -137,6 +150,7 @@ export default {
take: $take
sortBy: $sortBy
sortDesc: $sortDesc
onlineOnly: $onlineOnly
) {
total
data {
@ -176,7 +190,8 @@ export default {
skip: this.page * this.itemsPerPage - this.itemsPerPage,
take: this.itemsPerPage,
sortBy: this.sortBy,
sortDesc: this.sortDesc
sortDesc: this.sortDesc,
onlineOnly: this.onlineOnly
}
}
},