| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <v-container> | 
					
						
							|  |  |  |     <BasePageTitle> | 
					
						
							|  |  |  |       <template #header> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         <v-img | 
					
						
							|  |  |  |           width="100%" | 
					
						
							|  |  |  |           max-height="175" | 
					
						
							|  |  |  |           max-width="175" | 
					
						
							|  |  |  |           :src="require('~/static/svgs/manage-recipes.svg')" | 
					
						
							|  |  |  |         /> | 
					
						
							|  |  |  |       </template> | 
					
						
							|  |  |  |       <template #title> | 
					
						
							|  |  |  |         {{ $t('data-pages.data-management') }} | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |       </template> | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |       {{ $t('data-pages.data-management-description') }} | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |       <template #content> | 
					
						
							|  |  |  |         <div> | 
					
						
							|  |  |  |           <BaseOverflowButton | 
					
						
							|  |  |  |             :btn-text="buttonText" | 
					
						
							|  |  |  |             mode="link" | 
					
						
							|  |  |  |             rounded | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |             :items="DATA_TYPE_OPTIONS" | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |           /> | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |         </div> | 
					
						
							|  |  |  |       </template> | 
					
						
							|  |  |  |     </BasePageTitle> | 
					
						
							|  |  |  |     <section> | 
					
						
							|  |  |  |       <v-scroll-x-transition> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         <div> | 
					
						
							|  |  |  |           <NuxtPage /> | 
					
						
							|  |  |  |         </div> | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |       </v-scroll-x-transition> | 
					
						
							|  |  |  |     </section> | 
					
						
							|  |  |  |   </v-container> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  | export default defineNuxtComponent({ | 
					
						
							|  |  |  |   middleware: ["sidebase-auth", "can-organize-only"], | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |   setup() { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |     const i18n = useI18n(); | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |     const buttonLookup: { [key: string]: string } = { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       recipes: i18n.t("general.recipes"), | 
					
						
							|  |  |  |       recipeActions: i18n.t("recipe.recipe-actions"), | 
					
						
							|  |  |  |       foods: i18n.t("general.foods"), | 
					
						
							|  |  |  |       units: i18n.t("general.units"), | 
					
						
							|  |  |  |       labels: i18n.t("data-pages.labels.labels"), | 
					
						
							|  |  |  |       categories: i18n.t("category.categories"), | 
					
						
							|  |  |  |       tags: i18n.t("tag.tags"), | 
					
						
							|  |  |  |       tools: i18n.t("tool.tools"), | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-05 19:07:02 -06:00
										 |  |  |     const route = useRoute(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const DATA_TYPE_OPTIONS = computed(() => [ | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("general.recipes"), | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/recipes", | 
					
						
							| 
									
										
										
										
											2024-05-01 02:20:52 -05:00
										 |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("recipe.recipe-actions"), | 
					
						
							| 
									
										
										
										
											2024-05-01 02:20:52 -05:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/recipe-actions", | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |         divider: true, | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("general.foods"), | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |         value: "url", | 
					
						
							|  |  |  |         to: "/group/data/foods", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("general.units"), | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/units", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("data-pages.labels.labels"), | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/labels", | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |         divider: true, | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("category.categories"), | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/categories", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("tag.tags"), | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/tags", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         text: i18n.t("tool.tools"), | 
					
						
							| 
									
										
										
										
											2023-11-21 15:31:05 +01:00
										 |  |  |         value: "new", | 
					
						
							|  |  |  |         to: "/group/data/tools", | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       }, | 
					
						
							| 
									
										
										
										
											2023-11-05 19:07:02 -06:00
										 |  |  |     ]); | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     const buttonText = computed(() => { | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       const last = route.path | 
					
						
							| 
									
										
										
										
											2024-05-01 02:20:52 -05:00
										 |  |  |         .split("/") | 
					
						
							|  |  |  |         .pop() | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       // convert hypenated-values to camelCase
 | 
					
						
							| 
									
										
										
										
											2024-05-01 02:20:52 -05:00
										 |  |  |         ?.replace(/-([a-z])/g, function (g) { | 
					
						
							|  |  |  |           return g[1].toUpperCase(); | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       if (last) { | 
					
						
							|  |  |  |         return buttonLookup[last]; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       return i18n.t("data-pages.select-data"); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     useSeoMeta({ | 
					
						
							|  |  |  |       title: i18n.t("data-pages.data-management"), | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       buttonText, | 
					
						
							| 
									
										
										
										
											2025-06-20 00:09:12 +07:00
										 |  |  |       DATA_TYPE_OPTIONS, | 
					
						
							| 
									
										
										
										
											2023-01-29 02:39:51 +01:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2022-03-17 10:30:10 -08:00
										 |  |  |   }, | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | </script> |