@@ -17,28 +17,49 @@ q-dialog(
1717 q-btn( icon ="mdi-close" flat round dense to ='/' )
1818 q-tooltip.text-body2 ( anchor ="top middle" self ="bottom middle" ) Fermer
1919 .flex.fit ( :style ='{ flexDirection: $q.screen.gt.sm ? "row" : "column" }' )
20- .col-0
21- q-tabs.full-height.border-right (
22- v-if ='drawer'
23- v-model ="tab"
24- :vertical ='$q.screen.gt.sm'
25- :inline-label ="$q.screen.lt.md"
26- mobile-arrows
27- outside-arrows
20+ .col-0.settings-sidebar ( v-if ='drawer' )
21+ .settings-main-tabs-wrapper
22+ q-tabs.border-right.settings-main-tabs (
23+ v-model ="tab"
24+ :vertical ="$q.screen.gt.sm"
25+ :inline-label ="$q.screen.lt.md"
26+ mobile-arrows
27+ outside-arrows
28+ )
29+ q-tab(
30+ v-for ="item in navItems"
31+ :key ="item.route"
32+ :name ="item.route"
33+ :label ="item.label"
34+ :icon ="item.icon"
35+ :disable ="item._disabled"
36+ )
37+ q-tooltip.text-body2.bg-negative.text-white (
38+ v-if ="item._disabled"
39+ anchor ="top middle"
40+ self ="center middle"
41+ ) Vous n'avez pas les permissions nécessaires pour accéder à cette page
42+
43+ q-separator( v-if ="!$q.screen.gt.sm && index !== navItems.length - 1 && hasPermission('/core/health', 'read')" inset vertical )
44+ q-tab(
45+ v-if ="!$q.screen.gt.sm && hasPermission('/core/health', 'read')"
46+ name ="/settings/health"
47+ label ="Santé applicative"
48+ icon ="mdi-heart-pulse"
49+ )
50+
51+ .settings-bottom-tabs-wrapper (
52+ v-if ="$q.screen.gt.sm && hasPermission('/core/health', 'read')"
2853 )
29- q-tab(
30- v-for ="item in navItems"
31- :key ="item.route"
32- :name ="item.route"
33- :label ="item.label"
34- :icon ="item.icon"
35- :disable ="item._disabled"
54+ q-tabs.border-right (
55+ v-model ="tab"
56+ vertical
3657 )
37- q-tooltip .text-body2.bg-negative.text-white (
38- v-if = "item._disabled "
39- anchor = "top middle "
40- self = "center middle "
41- ) Vous n'avez pas les permissions nécessaires pour accéder à cette page
58+ q-tab (
59+ name = "/settings/health "
60+ label = "Santé applicative "
61+ icon = "mdi-heart-pulse "
62+ )
4263 .col
4364 q-tab-panels.fit ( v-model ="tab" )
4465 q-tab-panel.q-pa-none (
@@ -68,6 +89,7 @@ export default defineNuxtComponent({
6889 router .push (val )
6990 },
7091 })
92+
7193 const drawer = ref (true )
7294
7395 const navItemsInternal = ref <NavItem []>([
@@ -113,11 +135,11 @@ export default defineNuxtComponent({
113135 label: ' trousseau de clés API' ,
114136 _acl: ' /core/keyrings' ,
115137 },
116- {
117- route: ' /settings/health' ,
118- icon: ' mdi-heart-pulse' ,
119- label: ' Santé applicative' ,
120- },
138+ // {
139+ // route: '/settings/health',
140+ // icon: 'mdi-heart-pulse',
141+ // label: 'Santé applicative',
142+ // },
121143 ])
122144
123145 const navItems = computed (() => {
@@ -139,6 +161,7 @@ export default defineNuxtComponent({
139161 drawer ,
140162 navItems ,
141163 router ,
164+ hasPermission ,
142165 }
143166 },
144167 methods: {
@@ -149,3 +172,27 @@ export default defineNuxtComponent({
149172 },
150173})
151174 </script >
175+
176+ <style scoped>
177+ @media (min-width : 1024px ) {
178+ .settings-sidebar {
179+ height : 100% ;
180+ display : flex ;
181+ flex-direction : column ;
182+ }
183+
184+ .settings-main-tabs-wrapper {
185+ flex : 1 1 auto ;
186+ min-height : 0 ;
187+ overflow-y : auto ;
188+ }
189+
190+ .settings-bottom-tabs-wrapper {
191+ flex : 0 0 auto ;
192+ }
193+
194+ :deep(.settings-main-tabs.q-tabs--vertical ) {
195+ height : 100% ;
196+ }
197+ }
198+ </style >
0 commit comments