@@ -6,10 +6,30 @@ q-btn(flat icon="mdi-dots-grid" size="xl")
66 .col-4 ( v-for ="app in apps" : key= "app.name" )
77 q-btn( flat stack dense :to ="app.to" rounded ) .full-width
88 q-icon( :name ="app.icon.name" : color= "app.icon.color" size ="xl" )
9+ q-badge( v-if ="app.badge" : color= "app.badge.color" floating ) {{ app.badge.value }}
910 div.text-center ( :class ="`text-${app.title.color}`" ) {{ app.title.name }}
11+
1012</template >
1113
1214<script lang="ts" setup>
15+ import { usePinia , useQuasar } from " #imports" ;
16+ const store = usePinia ()
17+ const $q = useQuasar ()
18+ const user = store .state .value .auth .user
19+ const { data, error } = await useHttpApi (' /tickets/ticket' , {
20+ method: ' get' ,
21+ query: {
22+ ' filters[@lifestep][]' : 1 ,
23+ ' filters[^envelope.assigned.name]' : ` /${user .displayName }/ ` ,
24+ }
25+ })
26+ if (error .value ) {
27+ $q .notify ({
28+ message: ' Impossible de charger les tickets' ,
29+ type: ' negative'
30+ })
31+ }
32+ const baseFilter = ' sort[metadata.lastUpdatedAt]=desc&skip=0&limit=10'
1333const apps: {
1434 title: {
1535 name: string
@@ -41,7 +61,11 @@ const apps: {
4161 name: ' mdi-ticket' ,
4262 color: ' primary'
4363 },
44- to: ' /tickets'
64+ to: ` /tickets?filters[^envelope.assigned.name]=/${user .displayName }/&filters[@lifestep][]=1&${baseFilter } ` ,
65+ badge: {
66+ color: ' red' ,
67+ value: data .value .total
68+ }
4569 },
4670 {
4771 title: {
@@ -52,7 +76,7 @@ const apps: {
5276 name: ' mdi-ticket' ,
5377 color: ' primary'
5478 },
55- to: ' /tickets'
79+ to: ` /tickets?filters[@lifestep][]=1&${ baseFilter } `
5680 },
5781 {
5882 title: {
@@ -88,4 +112,6 @@ const apps: {
88112 to: ' /deconnexion'
89113 }
90114 ]
115+
116+
91117 </script >
0 commit comments