From 912cc6d956fc8c24e7dd4be64dc7087b7720b556 Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Sat, 20 Nov 2021 14:30:38 -0900 Subject: [PATCH] =?UTF-8?q?=20feat(frontend):=20=E2=9C=A8=20Add=20Meal=20T?= =?UTF-8?q?ags=20+=20UI=20Improvements=20=20(#807)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: :sparkles: * fix colors * add additional support for settings meal tag * add defaults to recipe * use group reciep settings * fix login infinite loading * disable owner on initial load * add skeleton loader * add v-model support * formatting * fix overwriting existing values * feat(frontend): :sparkles: add markdown preview for steps * update black plus formatting * update help text * fix overwrite error * remove print Co-authored-by: hay-kot --- dev/code-generation/_gen_utils.py | 2 +- dev/code-generation/_open_api_parser.py | 2 +- dev/code-generation/_static.py | 2 +- dev/scripts/app_routes_gen.py | 2 +- .../components/Domain/Recipe/RecipeCard.vue | 50 ++-- .../Domain/Recipe/RecipeContextMenu.vue | 6 +- .../Domain/Recipe/RecipeDialogSearch.vue | 2 +- .../Domain/Recipe/RecipeIngredients.vue | 2 +- .../Domain/Recipe/RecipeInstructions.vue | 10 +- frontend/components/global/MarkdownEditor.vue | 67 +++++ frontend/components/global/ToggleState.vue | 12 +- frontend/composables/use-group-mealplan.ts | 16 +- frontend/nuxt.config.js | 3 +- frontend/pages/login.vue | 12 +- frontend/pages/meal-plan/planner.vue | 235 ++++++++++++------ frontend/pages/recipe/_slug/index.vue | 3 +- .../pages/user/group/recipe-data/index.vue | 2 +- frontend/template.env | 2 +- mealie/core/root_logger.py | 4 +- mealie/routes/about/events.py | 6 +- mealie/routes/about/notifications.py | 10 +- mealie/routes/admin/admin_about.py | 2 +- mealie/routes/admin/admin_email.py | 2 +- mealie/routes/admin/admin_group.py | 8 +- mealie/routes/admin/admin_log.py | 4 +- mealie/routes/app/app_about.py | 2 +- mealie/routes/auth/auth.py | 2 +- mealie/routes/backup_routes.py | 8 +- mealie/routes/categories/categories.py | 10 +- mealie/routes/groups/self_service.py | 4 +- mealie/routes/media/recipe.py | 2 +- mealie/routes/migration_routes.py | 8 +- mealie/routes/recipe/comments.py | 6 +- mealie/routes/recipe/image_and_assets.py | 6 +- mealie/routes/recipe/recipe_crud_routes.py | 16 +- mealie/routes/recipe/recipe_export.py | 4 +- mealie/routes/routers.py | 4 +- mealie/routes/shopping_lists/__init__.py | 8 +- mealie/routes/site_settings/site_settings.py | 4 +- mealie/routes/tags/tags.py | 10 +- mealie/routes/users/api_tokens.py | 4 +- mealie/routes/users/crud.py | 2 +- mealie/routes/users/favorites.py | 6 +- mealie/routes/users/images.py | 4 +- mealie/routes/users/passwords.py | 6 +- .../services/parser_services/crfpp/utils.py | 2 +- mealie/services/recipe/mixins.py | 24 ++ mealie/services/recipe/recipe_service.py | 20 +- poetry.lock | 72 ++---- pyproject.toml | 2 +- 50 files changed, 456 insertions(+), 246 deletions(-) create mode 100644 frontend/components/global/MarkdownEditor.vue diff --git a/dev/code-generation/_gen_utils.py b/dev/code-generation/_gen_utils.py index 736894e95..701c6fff3 100644 --- a/dev/code-generation/_gen_utils.py +++ b/dev/code-generation/_gen_utils.py @@ -8,7 +8,7 @@ from jinja2 import Template def render_python_template(template_file: Path, dest: Path, data: dict) -> str: - """ Render and Format a Jinja2 Template for Python Code""" + """Render and Format a Jinja2 Template for Python Code""" tplt = Template(template_file.read_text()) text = tplt.render(data) text = format_str(text, mode=FileMode()) diff --git a/dev/code-generation/_open_api_parser.py b/dev/code-generation/_open_api_parser.py index 533178c95..9bb336dc7 100644 --- a/dev/code-generation/_open_api_parser.py +++ b/dev/code-generation/_open_api_parser.py @@ -66,7 +66,7 @@ class OpenAPIParser: self.modules = {} def dump(self, out_path: Path) -> Path: - """ Writes the Open API as JSON to a json file""" + """Writes the Open API as JSON to a json file""" OPEN_API_FILE = out_path or Directories.out_dir / "openapi.json" with open(OPEN_API_FILE, "w") as f: diff --git a/dev/code-generation/_static.py b/dev/code-generation/_static.py index e24f574bd..c677687d8 100644 --- a/dev/code-generation/_static.py +++ b/dev/code-generation/_static.py @@ -18,7 +18,7 @@ class CodeDest: class CodeKeys: - """ Hard coded comment IDs that are used to generate code""" + """Hard coded comment IDs that are used to generate code""" nuxt_local_messages = "MESSAGE_LOCALES" nuxt_local_dates = "DATE_LOCALES" diff --git a/dev/scripts/app_routes_gen.py b/dev/scripts/app_routes_gen.py index 437e2d825..03e62ea60 100644 --- a/dev/scripts/app_routes_gen.py +++ b/dev/scripts/app_routes_gen.py @@ -126,7 +126,7 @@ def get_path_objects(app: FastAPI): def dump_open_api(app: FastAPI): - """ Writes the Open API as JSON to a json file""" + """Writes the Open API as JSON to a json file""" OPEN_API_FILE = CWD / "openapi.json" with open(OPEN_API_FILE, "w") as f: diff --git a/frontend/components/Domain/Recipe/RecipeCard.vue b/frontend/components/Domain/Recipe/RecipeCard.vue index 996169a59..dde34ed10 100644 --- a/frontend/components/Domain/Recipe/RecipeCard.vue +++ b/frontend/components/Domain/Recipe/RecipeCard.vue @@ -5,10 +5,10 @@ :class="{ 'on-hover': hover }" :elevation="hover ? 12 : 2" :to="route ? `/recipe/${slug}` : ''" - min-height="275" + :min-height="imageHeight + 75" @click="$emit('click')" > - +
@@ -23,26 +23,28 @@
- - - - - - - + + + + + + + + + @@ -92,6 +94,10 @@ export default { required: true, type: Number, }, + imageHeight: { + type: Number, + default: 200, + }, }, data() { return { diff --git a/frontend/components/Domain/Recipe/RecipeContextMenu.vue b/frontend/components/Domain/Recipe/RecipeContextMenu.vue index 6220d8986..944cbb0b9 100644 --- a/frontend/components/Domain/Recipe/RecipeContextMenu.vue +++ b/frontend/components/Domain/Recipe/RecipeContextMenu.vue @@ -41,6 +41,7 @@ + {{ $t("search.results") }} - {{ $t("search.advanced-search") }} + {{ $t("search.advanced-search") }}

{{ $t("recipe.ingredients") }}

- +
diff --git a/frontend/components/Domain/Recipe/RecipeInstructions.vue b/frontend/components/Domain/Recipe/RecipeInstructions.vue index 6ba80410d..cf74caa8f 100644 --- a/frontend/components/Domain/Recipe/RecipeInstructions.vue +++ b/frontend/components/Domain/Recipe/RecipeInstructions.vue @@ -2,7 +2,7 @@
- + {{ $globals.icons.link }} @@ -127,8 +127,7 @@ - - +
+ diff --git a/frontend/components/global/MarkdownEditor.vue b/frontend/components/global/MarkdownEditor.vue new file mode 100644 index 000000000..1bd3b18a9 --- /dev/null +++ b/frontend/components/global/MarkdownEditor.vue @@ -0,0 +1,67 @@ + + + + diff --git a/frontend/components/global/ToggleState.vue b/frontend/components/global/ToggleState.vue index d626258c2..02feef23e 100644 --- a/frontend/components/global/ToggleState.vue +++ b/frontend/components/global/ToggleState.vue @@ -8,16 +8,26 @@ \ No newline at end of file diff --git a/frontend/pages/recipe/_slug/index.vue b/frontend/pages/recipe/_slug/index.vue index 12db39784..3a7816d95 100644 --- a/frontend/pages/recipe/_slug/index.vue +++ b/frontend/pages/recipe/_slug/index.vue @@ -110,7 +110,7 @@

{{ $t("recipe.ingredients") }}

- + +