11<script setup lang="ts">
2+ import api from ' @/api'
23const menu = [
34 { routeName: ' user-list' , icon: ' users' , translation: ' users' },
45 {
@@ -17,6 +18,13 @@ const menu = [
1718 },
1819 { routeName: ' backup' , icon: ' archive' , translation: ' backup' },
1920]
21+
22+ const { apps, upgrades, diagnosis } = await api
23+ .get ({ uri: ' dash' , initial: true })
24+ .then (({ apps , upgrades , diagnosis }) => {
25+ return {apps , upgrades , diagnosis }
26+ })
27+
2028 </script >
2129
2230<template >
@@ -29,6 +37,24 @@ const menu = [
2937 >
3038 <YIcon :iname =" item.icon" class =" lg ms-1" />
3139 <h4 >{{ $t(item.translation) }}</h4 >
40+ <BBadge v-if =" item.routeName == 'app-list' && apps.notifications > 0" class =" ms-2" variant =" info" pill >
41+ <YIcon iname =" info-circle" /> {{ apps.notifications }} notifications
42+ </BBadge >
43+ <BBadge v-if =" item.routeName == 'update' && upgrades.pending_migrations > 0" class =" ms-2" variant =" info" pill >
44+ <YIcon iname =" forward" /> {{ upgrades.pending_migrations }} pending migration
45+ </BBadge >
46+ <BBadge v-if =" item.routeName == 'update' && upgrades.system_packages > 0" class =" ms-2" variant =" info" pill >
47+ <YIcon iname =" arrow-up" /> {{ upgrades.system_packages }} system upgrades
48+ </BBadge >
49+ <BBadge v-if =" item.routeName == 'update' && upgrades.apps > 0" class =" ms-2" variant =" info" pill >
50+ <YIcon iname =" arrow-up" /> {{ upgrades.apps }} app upgrades
51+ </BBadge >
52+ <BBadge v-if =" item.routeName == 'diagnosis' && diagnosis.warnings > 0" class =" ms-2" variant =" warning" pill >
53+ <YIcon iname =" exclamation-triangle" /> {{ diagnosis.warnings }} warnings
54+ </BBadge >
55+ <BBadge v-if =" item.routeName == 'diagnosis' && diagnosis.errors > 0" class =" ms-2" variant =" danger" pill >
56+ <YIcon iname =" times" /> {{ diagnosis.errors }} errors
57+ </BBadge >
3258 <YIcon iname =" chevron-right" class =" lg fs-sm ms-auto" />
3359 </BListGroupItem >
3460 </BListGroup >
0 commit comments