| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  | <template> | 
					
						
							|  |  |  |   <div> | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  |     <v-card-text v-if="cookbook" class="px-1"> | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  |       <v-text-field v-model="cookbook.name" :label="$t('cookbook.cookbook-name')"></v-text-field> | 
					
						
							|  |  |  |       <v-textarea v-model="cookbook.description" auto-grow :rows="2" :label="$t('recipe.description')"></v-textarea> | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  |       <QueryFilterBuilder | 
					
						
							|  |  |  |         :field-defs="fieldDefs" | 
					
						
							|  |  |  |         :initial-query-filter="cookbook.queryFilter" | 
					
						
							|  |  |  |         @input="handleInput" | 
					
						
							|  |  |  |       /> | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  |       <v-switch v-model="cookbook.public" hide-details single-line> | 
					
						
							|  |  |  |         <template #label> | 
					
						
							|  |  |  |           {{ $t('cookbook.public-cookbook') }} | 
					
						
							|  |  |  |           <HelpIcon small right class="ml-2"> | 
					
						
							|  |  |  |             {{ $t('cookbook.public-cookbook-description') }} | 
					
						
							|  |  |  |           </HelpIcon> | 
					
						
							|  |  |  |         </template> | 
					
						
							|  |  |  |       </v-switch> | 
					
						
							|  |  |  |     </v-card-text> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  | import { defineComponent, useContext } from "@nuxtjs/composition-api"; | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  | import { ReadCookBook } from "~/lib/api/types/cookbook"; | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  | import { Organizer } from "~/lib/api/types/non-generated"; | 
					
						
							|  |  |  | import QueryFilterBuilder from "~/components/Domain/QueryFilterBuilder.vue"; | 
					
						
							|  |  |  | import { FieldDefinition } from "~/composables/use-query-filter-builder"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  | export default defineComponent({ | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  |   components: { QueryFilterBuilder }, | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  |   props: { | 
					
						
							|  |  |  |     cookbook: { | 
					
						
							|  |  |  |       type: Object as () => ReadCookBook, | 
					
						
							|  |  |  |       required: true, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     actions: { | 
					
						
							|  |  |  |       type: Object as () => any, | 
					
						
							|  |  |  |       required: true, | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  |   setup(props) { | 
					
						
							|  |  |  |     const { i18n } = useContext(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function handleInput(value: string | undefined) { | 
					
						
							|  |  |  |       props.cookbook.queryFilterString = value || ""; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     const fieldDefs: FieldDefinition[] = [ | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: "recipe_category.id", | 
					
						
							|  |  |  |         label: i18n.tc("category.categories"), | 
					
						
							|  |  |  |         type: Organizer.Category, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: "tags.id", | 
					
						
							|  |  |  |         label: i18n.tc("tag.tags"), | 
					
						
							|  |  |  |         type: Organizer.Tag, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2024-11-11 11:20:29 -06:00
										 |  |  |       { | 
					
						
							|  |  |  |         name: "recipe_ingredient.food.id", | 
					
						
							|  |  |  |         label: i18n.tc("recipe.ingredients"), | 
					
						
							|  |  |  |         type: Organizer.Food, | 
					
						
							|  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2024-10-17 10:35:39 -05:00
										 |  |  |       { | 
					
						
							|  |  |  |         name: "tools.id", | 
					
						
							|  |  |  |         label: i18n.tc("tool.tools"), | 
					
						
							|  |  |  |         type: Organizer.Tool, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: "household_id", | 
					
						
							|  |  |  |         label: i18n.tc("household.households"), | 
					
						
							|  |  |  |         type: Organizer.Household, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: "created_at", | 
					
						
							|  |  |  |         label: i18n.tc("general.date-created"), | 
					
						
							|  |  |  |         type: "date", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: "updated_at", | 
					
						
							|  |  |  |         label: i18n.tc("general.date-updated"), | 
					
						
							|  |  |  |         type: "date", | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       handleInput, | 
					
						
							|  |  |  |       fieldDefs, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }, | 
					
						
							| 
									
										
										
										
											2024-02-04 17:15:25 +01:00
										 |  |  | }); | 
					
						
							|  |  |  | </script> |