diff --git a/README.md b/README.md index 91a1ae3a1..775ad4ce2 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,6 @@ Mealie also provides a secure API for interactions from 3rd party applications. * [Vue.js](https://vuejs.org/) * [Vuetify](https://vuetifyjs.com/en/) * [FastAPI](https://fastapi.tiangolo.com/) -* [MongoDB](https://www.mongodb.com/) * [Docker](https://www.docker.com/) diff --git a/dev/dev-notes.md b/dev/dev-notes.md index 7cb8c8258..f5d3ad44f 100644 --- a/dev/dev-notes.md +++ b/dev/dev-notes.md @@ -35,7 +35,7 @@ Frontend - [ ] Search Bar redesign - [x] Initial - [ ] Results redesign -- [ ] Replace Backups card with something like Home Assistant +- [x] Replace Backups card with something like Home Assistant - [x] Replace import card with something like Home Assistant - [x] Select which imports to do diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index 1ea3ab2b4..ad82e07cd 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -1,9 +1,37 @@ # Release Notes +## V0.2.0 - Now with Test! +### Bug Fixes + - Remove ability to save recipe with no name + - Fixed data validation error on missing parameters + - Fixed failed database initialization at startup + - Fixed misaligned text on various cards + - Fixed bug that blocked opening links in new tabs + +### Features and Improvements + - Meal Planner + - Improved Search (Fuzzy Search) + - New Scheduled card support + - Upload/Download backups + - Dockerfile now 1/5 of the size! + - **Minor** + - Continued work on button/style unification + - Adding icons to buttons + +### Development + - Fixed Vetur config file. Autocomplete in VSCode works! + - Added Prettier config + - Fixed incorrect layout code + - FastAPI Route tests for major operations + +### Breaking Changes + - Officially Dropped MongoDB Support + - Mounting volume moved to different internal location due to development issues. New volume should be mounted as `mealie/data:/app_data/` + ## v0.1.0 - Initial Beta ### Bug Fixes - Fixed Can't delete recipe after changing name - Closes Issue #67 - - Fixed No image when added by URL, and can;t add an image - Closes Issue #66 + - Fixed No image when added by URL, and can't add an image - Closes Issue #66 - Fixed Images saved with no way to delete when add recipe via URL fails - Closes Issue #43 ### Features @@ -23,7 +51,7 @@ - Major code refactoring to support new database layer - Global variable refactor -### Break Changes +### Breaking Changes - Internal docker port is now 80 instead of 9000. You MUST remap the internal port to connect to the UI. diff --git a/docs/docs/index.md b/docs/docs/index.md index 7c5886d46..68a76533f 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -65,7 +65,6 @@ Mealie also provides an API for interactions from 3rd party applications. **Why * [Vue.js](https://vuejs.org/) * [Vuetify](https://vuetifyjs.com/en/) * [FastAPI](https://fastapi.tiangolo.com/) -* [MongoDB](https://www.mongodb.com/) * [Docker](https://www.docker.com/) diff --git a/docs/docs/roadmap.md b/docs/docs/roadmap.md index 1094ceb13..85d079eba 100644 --- a/docs/docs/roadmap.md +++ b/docs/docs/roadmap.md @@ -34,12 +34,12 @@ Feature placement is not set in stone. This is much more of a guideline than any - [ ] Category Filter - [ ] Tag Filter - [x] Fuzzy Search -- [ ] Backup card redesign +- [x] Backup card redesign - [ ] Additional Backup / Import Features - [ ] Import Recipes Force/Rebase options - - [ ] Upload .zip file + - [x] Upload .zip file - [ ] Improved Color Picker -- [ ] Meal Plan redesign +- [x] Meal Plan redesign ### Backend - [ ] PostgreSQL Support - [ ] Setup SQL Migrations @@ -48,4 +48,4 @@ Feature placement is not set in stone. This is much more of a guideline than any - MongoDB support dropped ## Code Chores - [x] Remove MongoDB Interface Code -- [ ] Dockerfile Trim +- [x] Dockerfile Trim diff --git a/frontend/src/components/MealPlan/MealPlanNew.vue b/frontend/src/components/MealPlan/MealPlanNew.vue index fed8f0cee..a86657058 100644 --- a/frontend/src/components/MealPlan/MealPlanNew.vue +++ b/frontend/src/components/MealPlan/MealPlanNew.vue @@ -151,11 +151,13 @@ export default { methods: { get_random(list) { const object = list[Math.floor(Math.random() * list.length)]; - return object.slug; + return object; }, random() { this.meals.forEach((element, index) => { - this.meals[index]["slug"] = this.get_random(this.items); + let recipe = this.get_random(this.items); + this.meals[index]["slug"] = recipe.slug; + this.meals[index]["name"] = recipe.name; }); }, processTime(index) { diff --git a/frontend/src/components/Recipe/RecipeEditor/index.vue b/frontend/src/components/Recipe/RecipeEditor/index.vue index a2df8cba4..637fcd49b 100644 --- a/frontend/src/components/Recipe/RecipeEditor/index.vue +++ b/frontend/src/components/Recipe/RecipeEditor/index.vue @@ -1,5 +1,5 @@ diff --git a/frontend/src/components/UI/RecipeCard.vue b/frontend/src/components/UI/RecipeCard.vue index 69afe07ed..8b24594f0 100644 --- a/frontend/src/components/UI/RecipeCard.vue +++ b/frontend/src/components/UI/RecipeCard.vue @@ -3,7 +3,8 @@ {{ name | truncate(30) }} @@ -52,11 +53,6 @@ export default { }, }, methods: { - moreInfo(recipeSlug) { - if (this.route) { - this.$router.push(`/recipe/${recipeSlug}`); - } else this.$emit("click"); - }, getImage(image) { return utils.getImageURL(image); }, diff --git a/frontend/src/components/UI/UploadBtn.vue b/frontend/src/components/UI/UploadBtn.vue index 483c03094..cc7e92dd9 100644 --- a/frontend/src/components/UI/UploadBtn.vue +++ b/frontend/src/components/UI/UploadBtn.vue @@ -1,13 +1,8 @@ diff --git a/frontend/src/pages/MealPlanThisWeekPage.vue b/frontend/src/pages/MealPlanThisWeekPage.vue index 00551f82f..19e168ed3 100644 --- a/frontend/src/pages/MealPlanThisWeekPage.vue +++ b/frontend/src/pages/MealPlanThisWeekPage.vue @@ -23,14 +23,16 @@ {{ meal.description }} + - {{$t('recipe.view-recipe')}} + {{ $t("recipe.view-recipe") }} + diff --git a/frontend/src/pages/RecipeNewPage.vue b/frontend/src/pages/RecipeNewPage.vue index fecfe87d9..30a787594 100644 --- a/frontend/src/pages/RecipeNewPage.vue +++ b/frontend/src/pages/RecipeNewPage.vue @@ -29,7 +29,12 @@ /> - + @@ -85,20 +90,22 @@ export default { }, async createRecipe() { - this.isLoading = true; + if (this.$refs.recipeEditor.validateRecipe()) { + this.isLoading = true; - if (this.fileObject) { - this.recipeDetails.image = this.fileObject.name; + if (this.fileObject) { + this.recipeDetails.image = this.fileObject.name; + } + let slug = await api.recipes.create(this.recipeDetails); + + if (this.fileObject) { + await api.recipes.updateImage(slug, this.fileObject); + } + + this.isLoading = false; + + this.$router.push(`/recipe/${slug}`); } - let slug = await api.recipes.create(this.recipeDetails); - - if (this.fileObject) { - await api.recipes.updateImage(slug, this.fileObject); - } - - this.isLoading = false; - - this.$router.push(`/recipe/${slug}`); }, }, }; diff --git a/frontend/src/pages/RecipePage.vue b/frontend/src/pages/RecipePage.vue index a83f7bc3a..44361b892 100644 --- a/frontend/src/pages/RecipePage.vue +++ b/frontend/src/pages/RecipePage.vue @@ -45,7 +45,12 @@ height="1500px" :options="jsonEditorOptions" /> - + @@ -101,7 +106,7 @@ export default { }, watch: { - $route: function () { + $route: function() { this.getRecipeDetails(); }, }, @@ -138,6 +143,9 @@ export default { api.recipes.delete(this.recipeDetails.slug); }, async saveRecipe() { + if (this.$refs.recipeEditor.validateRecipe()) { + console.log("Thank you") + } let slug = await api.recipes.update(this.recipeDetails); if (this.fileObject) {