| 
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 |  |  | <template> | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |   <v-app dark> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |     <TheSnackbar /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <AppHeader> | 
					
						
							|  |  |  |       <v-btn | 
					
						
							|  |  |  |         icon | 
					
						
							|  |  |  |         @click.stop="sidebar = !sidebar" | 
					
						
							|  |  |  |       > | 
					
						
							|  |  |  |         <v-icon> {{ $globals.icons.menu }}</v-icon> | 
					
						
							|  |  |  |       </v-btn> | 
					
						
							|  |  |  |     </AppHeader> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |     <AppSidebar | 
					
						
							|  |  |  |       v-model="sidebar" | 
					
						
							|  |  |  |       absolute | 
					
						
							|  |  |  |       :top-link="topLinks" | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  |       :bottom-links="bottomLinks" | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |       :user="{ data: true }" | 
					
						
							| 
									
										
										
										
											2022-08-15 23:55:51 +02:00
										 |  |  |       :secondary-header="$t('sidebar.developer')" | 
					
						
							| 
									
										
										
										
											2022-04-09 19:08:48 -08:00
										 |  |  |       :secondary-links="developerLinks" | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |     /> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <v-main> | 
					
						
							|  |  |  |       <v-scroll-x-transition> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         <div> | 
					
						
							|  |  |  |           <NuxtPage /> | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |       </v-scroll-x-transition> | 
					
						
							|  |  |  |     </v-main> | 
					
						
							|  |  |  |   </v-app> | 
					
						
							| 
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 |  |  | </template> | 
					
						
							| 
									
										
										
										
											2022-01-09 07:15:23 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | <script setup lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  | import AppHeader from "@/components/Layout/LayoutParts/AppHeader.vue"; | 
					
						
							|  |  |  | import AppSidebar from "@/components/Layout/LayoutParts/AppSidebar.vue"; | 
					
						
							|  |  |  | import TheSnackbar from "~/components/Layout/LayoutParts/TheSnackbar.vue"; | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | import type { SidebarLinks } from "~/types/application-types"; | 
					
						
							| 
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | const i18n = useI18n(); | 
					
						
							|  |  |  | const { $globals, $vuetify } = useNuxtApp(); | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | const sidebar = ref<boolean>(false); | 
					
						
							|  |  |  | onMounted(() => { | 
					
						
							|  |  |  |   sidebar.value = !$vuetify.display.md.value; | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | const topLinks: SidebarLinks = [ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.cog, | 
					
						
							|  |  |  |     to: "/admin/site-settings", | 
					
						
							|  |  |  |     title: i18n.t("sidebar.site-settings"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2022-04-09 19:08:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |   // {
 | 
					
						
							|  |  |  |   //   icon: $globals.icons.chart,
 | 
					
						
							|  |  |  |   //   to: "/admin/analytics",
 | 
					
						
							|  |  |  |   //   title: "Analytics",
 | 
					
						
							|  |  |  |   //   restricted: true,
 | 
					
						
							|  |  |  |   // },
 | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.user, | 
					
						
							|  |  |  |     to: "/admin/manage/users", | 
					
						
							|  |  |  |     title: i18n.t("user.users"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.household, | 
					
						
							|  |  |  |     to: "/admin/manage/households", | 
					
						
							|  |  |  |     title: i18n.t("household.households"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.group, | 
					
						
							|  |  |  |     to: "/admin/manage/groups", | 
					
						
							|  |  |  |     title: i18n.t("group.groups"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.database, | 
					
						
							|  |  |  |     to: "/admin/backups", | 
					
						
							|  |  |  |     title: i18n.t("sidebar.backups"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | ]; | 
					
						
							| 
									
										
										
										
											2022-04-09 19:08:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | const developerLinks: SidebarLinks = [ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.wrench, | 
					
						
							|  |  |  |     to: "/admin/maintenance", | 
					
						
							|  |  |  |     title: i18n.t("sidebar.maintenance"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.robot, | 
					
						
							|  |  |  |     title: i18n.t("recipe.debug"), | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							|  |  |  |     children: [ | 
					
						
							| 
									
										
										
										
											2021-10-09 13:08:23 -08:00
										 |  |  |       { | 
					
						
							| 
									
										
										
										
											2024-09-23 04:04:36 -05:00
										 |  |  |         icon: $globals.icons.robot, | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         to: "/admin/debug/openai", | 
					
						
							|  |  |  |         title: i18n.t("admin.openai"), | 
					
						
							| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  |         restricted: true, | 
					
						
							| 
									
										
										
										
											2021-10-09 13:08:23 -08:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         icon: $globals.icons.slotMachine, | 
					
						
							|  |  |  |         to: "/admin/debug/parser", | 
					
						
							|  |  |  |         title: i18n.t("sidebar.parser"), | 
					
						
							| 
									
										
										
										
											2023-09-14 09:01:24 -05:00
										 |  |  |         restricted: true, | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |     ], | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | ]; | 
					
						
							| 
									
										
										
										
											2021-09-05 22:05:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | const bottomLinks: SidebarLinks = [ | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     icon: $globals.icons.heart, | 
					
						
							|  |  |  |     title: i18n.t("about.support"), | 
					
						
							|  |  |  |     href: "https://github.com/sponsors/hay-kot", | 
					
						
							|  |  |  |     restricted: true, | 
					
						
							| 
									
										
										
										
											2021-08-01 19:24:47 -08:00
										 |  |  |   }, | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | ]; | 
					
						
							| 
									
										
										
										
											2021-07-31 14:45:28 -08:00
										 |  |  | </script> |