Skip to content

Commit 3cb1273

Browse files
committed
Add dashboard border colors
1 parent 7906d4b commit 3cb1273

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

adminui2/src/pages/Dashboard.vue

+24-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script setup lang="ts">
2+
import { computed } from 'vue'
23
import EmptyTable from '@/components/EmptyTable.vue'
34
45
import { useUsersStore } from '@/stores/users'
@@ -17,6 +18,13 @@ instanceDetails.load(true)
1718
1819
const usersStore = useUsersStore()
1920
usersStore.load(false)
21+
22+
const allUsers = computed(() => usersStore.users ?? [])
23+
const usersLackingMfa = computed(() => allUsers.value.filter((x) => (x.mfa_type == '' || x.mfa_type == 'unset') ))
24+
25+
const allDevices = computed(() => devicesStore.devices ?? [])
26+
const lockedDevices = computed(() => allDevices.value.filter((x) => x.is_locked ))
27+
2028
</script>
2129

2230
<template>
@@ -25,32 +33,39 @@ usersStore.load(false)
2533
<div class="mt-6 flex flex-wrap gap-6">
2634
<div class="flex w-full gap-4">
2735
<div class="flex grid w-1/2 grid-cols-2 gap-4 min-w-[405px]">
28-
<router-link to="/management/users" class="card-compact bg-base-100 shadow-xl">
29-
<div class="card-body">
36+
<router-link to="/management/users" class="card-compact bg-base-100 shadow-xl border-l-4" :class="usersLackingMfa.length == 0? 'border-primary' : 'border-error'">
37+
<div class="card-body" v-if="usersLackingMfa.length == 0">
38+
<h5 class="card-title">Manage Users</h5>
39+
<div>{{ allUsers.length == 0 ? 'No users' : allUsers.length + ' users' }}</div>
40+
</div>
41+
<div class="card-body" v-else>
3042
<h5 class="card-title">Manage MFA</h5>
31-
32-
<div>{{ usersStore.users?.length == 0 ? 'No users' : usersStore.users?.length + ' users' }}</div>
43+
<div>{{ usersLackingMfa.length + " user have not completed MFA registration" }}</div>
3344
</div>
3445
</router-link>
35-
<router-link to="/management/devices" class="card-compact bg-base-100 shadow-xl">
36-
<div class="card-body">
46+
<router-link to="/management/devices" class="card-compact bg-base-100 shadow-xl border-l-4" :class="lockedDevices.length == 0? 'border-primary' : 'border-error'">
47+
<div class="card-body" v-if="lockedDevices.length == 0">
3748
<h5 class="card-title">Manage Devices</h5>
3849
<div>{{ devicesStore.numDevices() == 0 ? 'No devices' : devicesStore.numDevices() }}</div>
3950
</div>
51+
<div class="card-body" v-else>
52+
<h5 class="card-title">Unlock Device{{ lockedDevices.length > 1? "s" : "" }}</h5>
53+
<div>{{ lockedDevices.length + " locked device" + (lockedDevices.length > 1? "s" : "")}}</div>
54+
</div>
4055
</router-link>
41-
<router-link to="/management/devices" class="card-compact bg-base-100 shadow-xl">
56+
<router-link to="/management/devices" class="card-compact bg-base-100 shadow-xl border-l-4 border-primary">
4257
<div class="card-body">
4358
<h5 class="card-title">View Active Sessions</h5>
4459
<div>
4560
{{
46-
devicesStore.devices?.filter(e => {
61+
allDevices.filter(e => {
4762
e.active
4863
}).length ?? 0 + ' active sessions'
4964
}}
5065
</div>
5166
</div>
5267
</router-link>
53-
<router-link to="/management/registration_tokens" class="card-compact bg-base-100 shadow-xl">
68+
<router-link to="/management/registration_tokens" class="card-compact bg-base-100 shadow-xl border-l-4" :class="registrationTokensStore.tokens?.length == 0 ? 'border-primary': 'border-warning'">
5469
<div class="card-body">
5570
<h5 class="card-title">Registration Tokens</h5>
5671
<div>

0 commit comments

Comments
 (0)