mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 02:03:35 -04:00 
			
		
		
		
	v0.2.0 (#143)
* Changed uvicorn port to 80 * Changed port in docker-compose to match dockerfile * Readded environment variables in docker-compose * production image rework * Use opengraph metadata to make basic recipe cards when full recipe metadata is not available * fixed instrucitons on parse * add last_recipe * automated testing * roadmap update * Sqlite (#75) * file structure * auto-test * take 2 * refactor ap scheduler and startup process * fixed scraper error * database abstraction * database abstraction * port recipes over to new schema * meal migration * start settings migration * finale mongo port * backup improvements * migration imports to new DB structure * unused import cleanup * docs strings * settings and theme import logic * cleanup * fixed tinydb error * requirements * fuzzy search * remove scratch file * sqlalchemy models * improved search ui * recipe models almost done * sql modal population * del scratch * rewrite database model mixins * mostly grabage * recipe updates * working sqllite * remove old files and reorganize * final cleanup Co-authored-by: Hayden <hay-kot@pm.me> * Backup card (#78) * backup / import dialog * upgrade to new tag method * New import card * rename settings.py to app_config.py * migrate to poetry for development * fix failing test Co-authored-by: Hayden <hay-kot@pm.me> * added mkdocs to docker-compose * Translations (#72) * Translations + danish * changed back proxy target to use ENV * Resolved more merge conflicts * Removed test in translation * Documentation of translations * Updated translations * removed old packages Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com> * fail to start bug fixes * feature: prep/cook/total time slots (#80) Co-authored-by: Hayden <hay-kot@pm.me> * missing bind attributes * Bug fixes (#81) * fix: url remains after succesful import * docs: changelog + update todos * arm image * arm compose * compose updates * update poetry * arm support Co-authored-by: Hayden <hay-kot@pm.me> * dockerfile hotfix * dockerfile hotfix * Version Release Final Touches (#84) * Remove slim * bug: opacity issues * bug: startup failure with no database * ci/cd on dev branch * formatting * v0.1.0 documentation Co-authored-by: Hayden <hay-kot@pm.me> * db init hotfix * bug: fix crash in mongo * fix mongo bug * fixed version notifier * finale changelog * Dropping Mongo From Dev Branch (#89) * Fix link to Docker Hub Found an extra s. DESTROYED it. * initial pass * second pass cleanup * backup card framework * backup card functionality * translation * upload button vile creation * Release v0.1.0 Candidate (#85) * Changed uvicorn port to 80 * Changed port in docker-compose to match dockerfile * Readded environment variables in docker-compose * production image rework * Use opengraph metadata to make basic recipe cards when full recipe metadata is not available * fixed instrucitons on parse * add last_recipe * automated testing * roadmap update * Sqlite (#75) * file structure * auto-test * take 2 * refactor ap scheduler and startup process * fixed scraper error * database abstraction * database abstraction * port recipes over to new schema * meal migration * start settings migration * finale mongo port * backup improvements * migration imports to new DB structure * unused import cleanup * docs strings * settings and theme import logic * cleanup * fixed tinydb error * requirements * fuzzy search * remove scratch file * sqlalchemy models * improved search ui * recipe models almost done * sql modal population * del scratch * rewrite database model mixins * mostly grabage * recipe updates * working sqllite * remove old files and reorganize * final cleanup Co-authored-by: Hayden <hay-kot@pm.me> * Backup card (#78) * backup / import dialog * upgrade to new tag method * New import card * rename settings.py to app_config.py * migrate to poetry for development * fix failing test Co-authored-by: Hayden <hay-kot@pm.me> * added mkdocs to docker-compose * Translations (#72) * Translations + danish * changed back proxy target to use ENV * Resolved more merge conflicts * Removed test in translation * Documentation of translations * Updated translations * removed old packages Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com> * fail to start bug fixes * feature: prep/cook/total time slots (#80) Co-authored-by: Hayden <hay-kot@pm.me> * missing bind attributes * Bug fixes (#81) * fix: url remains after succesful import * docs: changelog + update todos * arm image * arm compose * compose updates * update poetry * arm support Co-authored-by: Hayden <hay-kot@pm.me> * dockerfile hotfix * dockerfile hotfix * Version Release Final Touches (#84) * Remove slim * bug: opacity issues * bug: startup failure with no database * ci/cd on dev branch * formatting * v0.1.0 documentation Co-authored-by: Hayden <hay-kot@pm.me> * db init hotfix * bug: fix crash in mongo * fix mongo bug * fixed version notifier * finale changelog Co-authored-by: kentora <=> Co-authored-by: Hayden <hay-kot@pm.me> Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com> Co-authored-by: kentora <kentora@kentora.dk> * build container * webscraper hotfix * dev bug: change data location to prevent reloads * api docs * api docs bug * workflow update Co-authored-by: David Young <davidy@funkypenguin.co.nz> Co-authored-by: Hayden <hay-kot@pm.me> Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com> Co-authored-by: kentora <kentora@kentora.dk> * Add French Translation (#93) * New tests (#94) * dev-bug: fixed vscode freezes * test: refactor database init to support tests Co-authored-by: Hayden <hay-kot@pm.me> * Mealplan CRUD Tests (#95) * dev-bug: fixed vscode freezes * test: refactor database init to support tests * mealplan CRUD testing Co-authored-by: Hayden <hay-kot@pm.me> * Fix typos (#96) * Settings, Themes and Migration Route Tests (#100) * dev-bug: fixed vscode freezes * test: refactor database init to support tests * mealplan CRUD testing * restructure test folder * git attributes * tests: migration, settings, theme routes testing Co-authored-by: Hayden <hay-kot@pm.me> * Refactor + New Docker File (#105) * dev-bug: fixed vscode freezes * test: refactor database init to support tests * mealplan CRUD testing * restructure test folder * git attributes * tests: migration, settings, theme routes testing * docker-file shrink * rebuild * refactor: moving directories around * adding funding Co-authored-by: Hayden <hay-kot@pm.me> * Meal planner improvements (#107) * dev-bug: fixed vscode freezes * test: refactor database init to support tests * mealplan CRUD testing * restructure test folder * git attributes * tests: migration, settings, theme routes testing * docker-file shrink * rebuild * refactor: moving directories around * adding funding * mealplan redesign Co-authored-by: Hayden <hay-kot@pm.me> * Upload component (#108) * unified upload button + download backups * javascript toolings * fix vuetur config * fixed type check error * refactor: clean up bag javascript Co-authored-by: Hayden <hay-kot@pm.me> * Upload component (#113) * unified upload button + download backups * javascript toolings * fix vuetur config * fixed type check error * refactor: clean up bag javascript * UI updates + name validation * docs: changelog + sp * fixed route links * changelog Co-authored-by: Hayden <hay-kot@pm.me> * fixed menu links * fixed poetry install on docker.dev build * Migration redesign (#119) * migration redesign init * new color picker * changelog * added UI language selection * fix layout issue on recipe editor * remove git as dependency * added UI editor for original URL * CI/CD Tests * test: fixed migration routes Co-authored-by: Hayden <hay-kot@pm.me> * Fix link to dev-notes.md (#110) * translation: add swedish (#128) * language: da is Danish * translations: add swedish * scraper: unescape html in instructions (#129) Some urls erroneously deliver escaped html their instructions, sometimes they are even escaped on multiple levels like here: https://www.ica.se/recept/kladdig-kladdkaka-722982/ ``` >>> normalize_instruction("S&auml;tt ugnen p&aring; 200&deg;C.") 'Sätt ugnen på 200°C.' ``` * v0.2.0 Updates (#130) * migration redesign init * new color picker * changelog * added UI language selection * fix layout issue on recipe editor * remove git as dependency * added UI editor for original URL * CI/CD Tests * test: fixed migration routes * test todos * bug/added docker volume * chowdow test data * partial image recipe image testing * added card section card * settings form * homepage cetegory ui * frontend category placeholder * fixed broken scheduler * remove old files * removed temp test Co-authored-by: Hayden <hay-kot@pm.me> * Fix missing translations key (#133) * translation: add simplified & traditional chinese * Fix missing translations * fix chinese translations * v0.2.0 Release Candidate (#141) * Fix link to Docker Hub Found an extra s. DESTROYED it. * Release v0.1.0 Candidate (#85) * Changed uvicorn port to 80 * Changed port in docker-compose to match dockerfile * Readded environment variables in docker-compose * production image rework * Use opengraph metadata to make basic recipe cards when full recipe metadata is not available * fixed instrucitons on parse * add last_recipe * automated testing * roadmap update * Sqlite (#75) * file structure * auto-test * take 2 * refactor ap scheduler and startup process * fixed scraper error * database abstraction * database abstraction * port recipes over to new schema * meal migration * start settings migration * finale mongo port * backup improvements * migration imports to new DB structure * unused import cleanup * docs strings * settings and theme import logic * cleanup * fixed tinydb error * requirements * fuzzy search * remove scratch file * sqlalchemy models * improved search ui * recipe models almost done * sql modal population * del scratch * rewrite database model mixins * mostly grabage * recipe updates * working sqllite * remove old files and reorganize * final cleanup Co-authored-by: Hayden <hay-kot@pm.me> * Backup card (#78) * backup / import dialog * upgrade to new tag method * New import card * rename settings.py to app_config.py * migrate to poetry for development * fix failing test Co-authored-by: Hayden <hay-kot@pm.me> * added mkdocs to docker-compose * Translations (#72) * Translations + danish * changed back proxy target to use ENV * Resolved more merge conflicts * Removed test in translation * Documentation of translations * Updated translations * removed old packages Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com> * fail to start bug fixes * feature: prep/cook/total time slots (#80) Co-authored-by: Hayden <hay-kot@pm.me> * missing bind attributes * Bug fixes (#81) * fix: url remains after succesful import * docs: changelog + update todos * arm image * arm compose * compose updates * update poetry * arm support Co-authored-by: Hayden <hay-kot@pm.me> * dockerfile hotfix * dockerfile hotfix * Version Release Final Touches (#84) * Remove slim * bug: opacity issues * bug: startup failure with no database * ci/cd on dev branch * formatting * v0.1.0 documentation Co-authored-by: Hayden <hay-kot@pm.me> * db init hotfix * bug: fix crash in mongo * fix mongo bug * fixed version notifier * finale changelog Co-authored-by: kentora <=> Co-authored-by: Hayden <hay-kot@pm.me> Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com> Co-authored-by: kentora <kentora@kentora.dk> * build container * webscraper hotfix * notes hot fix * bug: mongo updates fail #99 * Fix error message (#101) * gh funding * Create Issue Templates (#125) * Create bug_report.md * Create config.yml Included a link to feature requests. * Update config.yml Fixed link I had for testing to the actual link * Update bug_report.md fix capitalization * Update .github/ISSUE_TEMPLATE/bug_report.md Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com> Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com> * merge kentors changes * refactor/recipe routers * category/tag database relationship and endpoints * frontend category management * update branch todos * bug/normalize recipe steps html * remove console.log + refactor categories * fix categories database errors * refactor/ router endpoint * refactor/ remove old code * drag and drop ingredients * general cleanup * route refactoring * changelog * api refactoring + random cleanup * fixed backwards sort * Update mkdocs.yml (#137) Fix warning from Deploy Docs github action * fixed navigate on enter in search * refactor/create global css * added category scroll * cleanup todos * debug routes * docs/new gifs & general updates * cleanup * fix list test Co-authored-by: David Young <davidy@funkypenguin.co.nz> Co-authored-by: Hayden <hay-kot@pm.me> Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com> Co-authored-by: kentora <kentora@kentora.dk> Co-authored-by: Alexei Pesic <pesic.alexei@gmail.com> Co-authored-by: Andrew <dpieski@gmail.com> Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com> * fix build * fix duplicate editor * fixed docker mount problem * python 3.9 * added tasks for non-docker development * remove old scripts * dev updates * fixed no image upload option * get version from backend * final docs pass * .gitignore Co-authored-by: kentora <=> Co-authored-by: Hayden <hay-kot@pm.me> Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com> Co-authored-by: kentora <kentora@kentora.dk> Co-authored-by: David Young <davidy@funkypenguin.co.nz> Co-authored-by: Bastien <43323819+Batgame@users.noreply.github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Nick CJ <17556895+nickcj931@users.noreply.github.com> Co-authored-by: dekvall <dkvldev@gmail.com> Co-authored-by: wengtad <wengtad93@gmail.com> Co-authored-by: Alexei Pesic <pesic.alexei@gmail.com> Co-authored-by: Andrew <dpieski@gmail.com> Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|   <div> | ||||
|   <v-form ref="form"> | ||||
|     <v-card-text> | ||||
|       <v-row dense> | ||||
|         <v-col cols="3"></v-col> | ||||
| @@ -12,35 +12,47 @@ | ||||
|           ></v-file-input> | ||||
|         </v-col> | ||||
|         <v-col cols="3"></v-col> | ||||
|         <v-row> | ||||
|           <v-col> | ||||
|             <v-text-field | ||||
|               label="Total Time" | ||||
|               v-model="value.totalTime" | ||||
|             ></v-text-field> | ||||
|           </v-col> | ||||
|           <v-col | ||||
|             ><v-text-field | ||||
|               label="Prep Time" | ||||
|               v-model="value.prepTime" | ||||
|             ></v-text-field | ||||
|           ></v-col> | ||||
|           <v-col | ||||
|             ><v-text-field | ||||
|               label="Cook Time / Perform Time" | ||||
|               v-model="value.performTime" | ||||
|             ></v-text-field | ||||
|           ></v-col> | ||||
|         </v-row> | ||||
|       </v-row> | ||||
|       <v-text-field class="my-3" :label="$t('recipe.recipe-name')" v-model="value.name"> | ||||
|       <v-row dense> | ||||
|         <v-col> | ||||
|           <v-text-field | ||||
|             :label="$t('recipe.total-time')" | ||||
|             v-model="value.totalTime" | ||||
|           ></v-text-field> | ||||
|         </v-col> | ||||
|         <v-col | ||||
|           ><v-text-field | ||||
|             :label="$t('recipe.prep-time')" | ||||
|             v-model="value.prepTime" | ||||
|           ></v-text-field | ||||
|         ></v-col> | ||||
|         <v-col | ||||
|           ><v-text-field | ||||
|             :label="$t('recipe.perform-time')" | ||||
|             v-model="value.performTime" | ||||
|           ></v-text-field | ||||
|         ></v-col> | ||||
|       </v-row> | ||||
|       <v-text-field | ||||
|         class="my-3" | ||||
|         :label="$t('recipe.recipe-name')" | ||||
|         v-model="value.name" | ||||
|         :rules="[rules.required]" | ||||
|       > | ||||
|       </v-text-field> | ||||
|       <v-textarea height="100" :label="$t('recipe.description')" v-model="value.description"> | ||||
|       <v-textarea | ||||
|         height="100" | ||||
|         :label="$t('recipe.description')" | ||||
|         v-model="value.description" | ||||
|       > | ||||
|       </v-textarea> | ||||
|       <div class="my-2"></div> | ||||
|       <v-row dense disabled> | ||||
|         <v-col sm="5"> | ||||
|           <v-text-field :label="$t('recipe.servings')" v-model="value.recipeYield"> | ||||
|           <v-text-field | ||||
|             :label="$t('recipe.servings')" | ||||
|             v-model="value.recipeYield" | ||||
|           > | ||||
|           </v-text-field> | ||||
|         </v-col> | ||||
|         <v-col></v-col> | ||||
| @@ -54,34 +66,50 @@ | ||||
|       </v-row> | ||||
|       <v-row> | ||||
|         <v-col cols="12" sm="12" md="4" lg="4"> | ||||
|           <h2 class="mb-4">{{$t('recipe.ingredients')}}</h2> | ||||
|           <div | ||||
|             v-for="(ingredient, index) in value.recipeIngredient" | ||||
|             :key="generateKey('ingredient', index)" | ||||
|           <h2 class="mb-4">{{ $t("recipe.ingredients") }}</h2> | ||||
|           <draggable | ||||
|             v-model="value.recipeIngredient" | ||||
|             @start="drag = true" | ||||
|             @end="drag = false" | ||||
|           > | ||||
|             <v-row align="center"> | ||||
|               <v-btn | ||||
|                 fab | ||||
|                 x-small | ||||
|                 color="white" | ||||
|                 class="mr-2" | ||||
|                 elevation="0" | ||||
|                 @click="removeIngredient(index)" | ||||
|             <transition-group | ||||
|               type="transition" | ||||
|               :name="!drag ? 'flip-list' : null" | ||||
|             > | ||||
|               <div | ||||
|                 v-for="(ingredient, index) in value.recipeIngredient" | ||||
|                 :key="generateKey('ingredient', index)" | ||||
|               > | ||||
|                 <v-icon color="error">mdi-delete</v-icon> | ||||
|               </v-btn> | ||||
|               <v-text-field | ||||
|                 :label="$t('recipe.ingredient')" | ||||
|                 v-model="value.recipeIngredient[index]" | ||||
|               ></v-text-field> | ||||
|             </v-row> | ||||
|           </div> | ||||
|                 <v-row align="center"> | ||||
|                   <v-text-field | ||||
|                     class="mr-2" | ||||
|                     :label="$t('recipe.ingredient')" | ||||
|                     v-model="value.recipeIngredient[index]" | ||||
|                     append-outer-icon="mdi-menu" | ||||
|                     mdi-move-resize | ||||
|                     solo | ||||
|                     dense | ||||
|                   > | ||||
|                     <v-icon | ||||
|                       class="mr-n1" | ||||
|                       slot="prepend" | ||||
|                       color="error" | ||||
|                       @click="removeIngredient(index)" | ||||
|                     > | ||||
|                       mdi-delete | ||||
|                     </v-icon> | ||||
|                   </v-text-field> | ||||
|                 </v-row> | ||||
|               </div> | ||||
|             </transition-group> | ||||
|           </draggable> | ||||
|  | ||||
|           <v-btn color="secondary" fab dark small @click="addIngredient"> | ||||
|             <v-icon>mdi-plus</v-icon> | ||||
|           </v-btn> | ||||
|           <BulkAdd @bulk-data="appendIngredients" /> | ||||
|  | ||||
|           <h2 class="mt-6">{{$t('recipe.categories')}}</h2> | ||||
|           <h2 class="mt-6">{{ $t("recipe.categories") }}</h2> | ||||
|           <v-combobox | ||||
|             dense | ||||
|             multiple | ||||
| @@ -89,6 +117,11 @@ | ||||
|             item-color="secondary" | ||||
|             deletable-chips | ||||
|             v-model="value.categories" | ||||
|             hide-selected | ||||
|             :items="categories" | ||||
|             text="name" | ||||
|             :search-input.sync="categoriesSearchInput" | ||||
|             @change="categoriesSearchInput = ''" | ||||
|           > | ||||
|             <template v-slot:selection="data"> | ||||
|               <v-chip | ||||
| @@ -103,8 +136,18 @@ | ||||
|             </template> | ||||
|           </v-combobox> | ||||
|  | ||||
|           <h2 class="mt-4">{{$t('recipe.tags')}}</h2> | ||||
|           <v-combobox dense multiple chips deletable-chips v-model="value.tags"> | ||||
|           <h2 class="mt-4">{{ $t("recipe.tags") }}</h2> | ||||
|           <v-combobox | ||||
|             dense | ||||
|             multiple | ||||
|             chips | ||||
|             deletable-chips | ||||
|             v-model="value.tags" | ||||
|             hide-selected | ||||
|             :items="tags" | ||||
|             :search-input.sync="tagsSearchInput" | ||||
|             @change="tagssSearchInput = ''" | ||||
|           > | ||||
|             <template v-slot:selection="data"> | ||||
|               <v-chip | ||||
|                 :input-value="data.selected" | ||||
| @@ -118,7 +161,7 @@ | ||||
|             </template> | ||||
|           </v-combobox> | ||||
|  | ||||
|           <h2 class="my-4">{{$t('recipe.notes')}}</h2> | ||||
|           <h2 class="my-4">{{ $t("recipe.notes") }}</h2> | ||||
|           <v-card | ||||
|             class="mt-1" | ||||
|             v-for="(note, index) in value.notes" | ||||
| @@ -137,12 +180,15 @@ | ||||
|                   <v-icon color="error">mdi-delete</v-icon> | ||||
|                 </v-btn> | ||||
|                 <v-text-field | ||||
|                   label="Title" | ||||
|                   :label="$t('recipe.title')" | ||||
|                   v-model="value.notes[index]['title']" | ||||
|                 ></v-text-field> | ||||
|               </v-row> | ||||
|  | ||||
|               <v-textarea :label="$t('recipe.note')" v-model="value.notes[index]['text']"> | ||||
|               <v-textarea | ||||
|                 :label="$t('recipe.note')" | ||||
|                 v-model="value.notes[index]['text']" | ||||
|               > | ||||
|               </v-textarea> | ||||
|             </v-card-text> | ||||
|           </v-card> | ||||
| @@ -155,7 +201,7 @@ | ||||
|         <v-divider class="my-divider" :vertical="true"></v-divider> | ||||
|  | ||||
|         <v-col cols="12" sm="12" md="8" lg="8"> | ||||
|           <h2 class="mb-4">{{$t('recipe.instructions')}}</h2> | ||||
|           <h2 class="mb-4">{{ $t("recipe.instructions") }}</h2> | ||||
|           <div v-for="(step, index) in value.recipeInstructions" :key="index"> | ||||
|             <v-hover v-slot="{ hover }"> | ||||
|               <v-card | ||||
| @@ -173,7 +219,9 @@ | ||||
|                     @click="removeStep(index)" | ||||
|                   > | ||||
|                     <v-icon color="error">mdi-delete</v-icon> </v-btn | ||||
|                   >{{ $t('recipe.step-index', {step: index + 1}) }}</v-card-title | ||||
|                   >{{ | ||||
|                     $t("recipe.step-index", { step: index + 1 }) | ||||
|                   }}</v-card-title | ||||
|                 > | ||||
|                 <v-card-text> | ||||
|                   <v-textarea | ||||
| @@ -189,13 +237,19 @@ | ||||
|             <v-icon>mdi-plus</v-icon> | ||||
|           </v-btn> | ||||
|           <BulkAdd @bulk-data="appendSteps" /> | ||||
|           <v-text-field | ||||
|             v-model="value.orgURL" | ||||
|             class="mt-10" | ||||
|             :label="$t('recipe.original-url')" | ||||
|           ></v-text-field> | ||||
|         </v-col> | ||||
|       </v-row> | ||||
|     </v-card-text> | ||||
|   </div> | ||||
|   </v-form> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import draggable from "vuedraggable"; | ||||
| import api from "../../../api"; | ||||
| import utils from "../../../utils"; | ||||
| import BulkAdd from "./BulkAdd"; | ||||
| @@ -204,16 +258,36 @@ export default { | ||||
|   components: { | ||||
|     BulkAdd, | ||||
|     ExtrasEditor, | ||||
|     draggable, | ||||
|   }, | ||||
|   props: { | ||||
|     value: Object, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       drag: false, | ||||
|       fileObject: null, | ||||
|       rules: { | ||||
|         required: v => !!v || this.$i18n.t("recipe.key-name-required"), | ||||
|         whiteSpace: v => | ||||
|           !v || | ||||
|           v.split(" ").length <= 1 || | ||||
|           this.$i18n.t("recipe.no-white-space-allowed"), | ||||
|       }, | ||||
|       categoriesSearchInput: "", | ||||
|       tagsSearchInput: "", | ||||
|       categories: [], | ||||
|       tags: [], | ||||
|     }; | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getCategories(); | ||||
|   }, | ||||
|   methods: { | ||||
|     async getCategories() { | ||||
|       let response = await api.categories.get_all(); | ||||
|       this.categories = response.map(cat => cat.name); | ||||
|     }, | ||||
|     uploadImage() { | ||||
|       this.$emit("upload", this.fileObject); | ||||
|     }, | ||||
| @@ -259,7 +333,7 @@ export default { | ||||
|  | ||||
|     appendSteps(steps) { | ||||
|       let processSteps = []; | ||||
|       steps.forEach((element) => { | ||||
|       steps.forEach(element => { | ||||
|         processSteps.push({ text: element }); | ||||
|       }); | ||||
|  | ||||
| @@ -289,6 +363,13 @@ export default { | ||||
|     saveExtras(extras) { | ||||
|       this.value.extras = extras; | ||||
|     }, | ||||
|     validateRecipe() { | ||||
|       if (this.$refs.form.validate()) { | ||||
|         return true; | ||||
|       } else { | ||||
|         return false; | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user