From 4eae48690884b5439da8c339cd3d94ba1a977065 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ars=C3=A8ne=20Reymond?= <66876397+p0lycarpio@users.noreply.github.com> Date: Fri, 17 Jul 2026 20:41:35 +0200 Subject: [PATCH] feat: ui fixes & backup link on onboarding screen (#7743) --- .../Domain/Group/GroupAIProviderDialog.vue | 2 +- .../Domain/Recipe/RecipeCardSection.vue | 1 + .../Domain/Recipe/RecipeLastMade.vue | 20 +++++----- .../RecipePageParts/RecipePageInfoCard.vue | 6 +-- .../RecipePageParts/RecipePageOrganizers.vue | 3 +- .../RecipePageParts/RecipePageParseDialog.vue | 2 +- .../Domain/Recipe/RecipeTimeCard.vue | 4 +- .../Domain/Recipe/RecipeTimeline.vue | 39 +++++++++---------- .../Domain/Recipe/RecipeTimelineBadge.vue | 1 - .../components/Domain/Recipe/RecipeYield.vue | 2 +- .../Layout/LayoutParts/AppScrollToTop.vue | 2 +- frontend/app/components/global/AppLoader.vue | 31 +++++---------- frontend/app/lang/messages/en-US.json | 2 +- frontend/app/pages/admin/setup.vue | 15 ++++++- frontend/app/pages/admin/site-settings.vue | 4 +- .../g/[groupSlug]/recipes/finder/index.vue | 8 +--- 16 files changed, 67 insertions(+), 75 deletions(-) diff --git a/frontend/app/components/Domain/Group/GroupAIProviderDialog.vue b/frontend/app/components/Domain/Group/GroupAIProviderDialog.vue index 53797dd18..1a4278f67 100644 --- a/frontend/app/components/Domain/Group/GroupAIProviderDialog.vue +++ b/frontend/app/components/Domain/Group/GroupAIProviderDialog.vue @@ -89,7 +89,7 @@ - + diff --git a/frontend/app/components/Domain/Recipe/RecipeCardSection.vue b/frontend/app/components/Domain/Recipe/RecipeCardSection.vue index fabbec49b..a0d66182a 100644 --- a/frontend/app/components/Domain/Recipe/RecipeCardSection.vue +++ b/frontend/app/components/Domain/Recipe/RecipeCardSection.vue @@ -158,6 +158,7 @@ diff --git a/frontend/app/components/Domain/Recipe/RecipeLastMade.vue b/frontend/app/components/Domain/Recipe/RecipeLastMade.vue index c1c37ca0f..90478dcb1 100644 --- a/frontend/app/components/Domain/Recipe/RecipeLastMade.vue +++ b/frontend/app/components/Domain/Recipe/RecipeLastMade.vue @@ -22,7 +22,7 @@ rows="4" />
- + {{ $t('recipe.include-linked-recipes') }} @@ -45,14 +45,13 @@
- - + + - + - + {{ $globals.icons.calendar }} - - {{ $t("general.last-made") }} + + {{ $t("general.last-made") }}
{{ lastMade ? $d(new Date(lastMade)) : $t("general.never") }}
diff --git a/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCard.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCard.vue index 0591c1ce6..b62623b85 100644 --- a/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCard.vue +++ b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCard.vue @@ -6,11 +6,11 @@ :recipe="recipe" /> - +
{{ recipe.name }} @@ -67,7 +67,7 @@ {{ $t('tool.required-tools') }} @@ -64,7 +64,6 @@ diff --git a/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageParseDialog.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageParseDialog.vue index 20fe48c02..2284bbf45 100644 --- a/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageParseDialog.vue +++ b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageParseDialog.vue @@ -8,7 +8,7 @@ >
- +
diff --git a/frontend/app/components/Domain/Recipe/RecipeTimeCard.vue b/frontend/app/components/Domain/Recipe/RecipeTimeCard.vue index db339595c..d15661ad1 100644 --- a/frontend/app/components/Domain/Recipe/RecipeTimeCard.vue +++ b/frontend/app/components/Domain/Recipe/RecipeTimeCard.vue @@ -44,7 +44,7 @@ > {{ $globals.icons.knife }} @@ -64,7 +64,7 @@ > {{ $globals.icons.potSteam }} diff --git a/frontend/app/components/Domain/Recipe/RecipeTimeline.vue b/frontend/app/components/Domain/Recipe/RecipeTimeline.vue index 170e33db0..c3d40434f 100644 --- a/frontend/app/components/Domain/Recipe/RecipeTimeline.vue +++ b/frontend/app/components/Domain/Recipe/RecipeTimeline.vue @@ -18,13 +18,11 @@ bordered > - {{ $globals.icons.filter }} + {{ $t("general.filter") }} @@ -39,28 +37,24 @@ - - - + + + {{ option.label }} + -
{ - const qf = "id IN [" + recipeIds.map(id => `"${id}"`).join(", ") + "]"; + let qf = ""; + if (recipeIds.length) { + qf = "id IN [" + recipeIds.map(id => `"${id}"`).join(", ") + "]"; + } const { data } = await api.recipes.getAll(1, -1, { queryFilter: qf }); return data?.items || []; } diff --git a/frontend/app/components/Domain/Recipe/RecipeTimelineBadge.vue b/frontend/app/components/Domain/Recipe/RecipeTimelineBadge.vue index ae3f5924a..c5dceb0af 100644 --- a/frontend/app/components/Domain/Recipe/RecipeTimelineBadge.vue +++ b/frontend/app/components/Domain/Recipe/RecipeTimelineBadge.vue @@ -31,7 +31,6 @@ diff --git a/frontend/app/components/Domain/Recipe/RecipeYield.vue b/frontend/app/components/Domain/Recipe/RecipeYield.vue index 892b74fbe..bc9b1fb59 100644 --- a/frontend/app/components/Domain/Recipe/RecipeYield.vue +++ b/frontend/app/components/Domain/Recipe/RecipeYield.vue @@ -9,7 +9,7 @@ style="font-size: larger;" > diff --git a/frontend/app/components/Layout/LayoutParts/AppScrollToTop.vue b/frontend/app/components/Layout/LayoutParts/AppScrollToTop.vue index eaddd2627..f5d335166 100644 --- a/frontend/app/components/Layout/LayoutParts/AppScrollToTop.vue +++ b/frontend/app/components/Layout/LayoutParts/AppScrollToTop.vue @@ -25,7 +25,7 @@ function onScroll() { } function scrollToTop() { - document.documentElement.scrollTop = 0; + window.scrollTo({ top: 0, behavior: "smooth" }); } onMounted(() => { diff --git a/frontend/app/components/global/AppLoader.vue b/frontend/app/components/global/AppLoader.vue index f5a0d8af6..9b2ee6040 100644 --- a/frontend/app/components/global/AppLoader.vue +++ b/frontend/app/components/global/AppLoader.vue @@ -3,34 +3,21 @@ class="mx-auto my-3 justify-center" style="display: flex;" > -
+
-
- - {{ $globals.icons.primary }} - -
- - {{ (small || tiny) ? "" : waitingText }} - -
-
+ + {{ $globals.icons.primary }} +
-
+
{{ (small || tiny) ? "" : waitingTextCalculated }} @@ -97,5 +84,5 @@ const size = computed(() => { }); const i18n = useI18n(); -const waitingTextCalculated = props.waitingText == null ? i18n.t("general.loading-recipes") : props.waitingText; +const waitingTextCalculated = props.waitingText == null ? i18n.t("general.loading") : props.waitingText; diff --git a/frontend/app/lang/messages/en-US.json b/frontend/app/lang/messages/en-US.json index 572be17c1..1deb85b2d 100644 --- a/frontend/app/lang/messages/en-US.json +++ b/frontend/app/lang/messages/en-US.json @@ -1399,10 +1399,10 @@ "setup": { "first-time-setup": "First Time Setup", "welcome-to-mealie-get-started": "Welcome to Mealie! Let's get started", + "previous-mealie-instance": "Did you have a previous Mealie instance?", "already-set-up-bring-to-homepage": "I'm already set up, just bring me to the homepage", "common-settings-for-new-sites": "Here are some common settings for new sites", "setup-complete": "Setup Complete!", - "ai-providers-description": "Optionally configure AI providers for your group. AI providers enable features like creating recipes from images, importing recipes from videos, and enhanced ingredient parsing. You can always configure this later from your group settings.", "here-are-a-few-things-to-help-you-get-started": "Here are a few things to help you get started with Mealie", "restore-from-v1-backup": "Have a backup from a previous instance of Mealie v1? You can restore it here.", diff --git a/frontend/app/pages/admin/setup.vue b/frontend/app/pages/admin/setup.vue index 87bf27336..048d27eb7 100644 --- a/frontend/app/pages/admin/setup.vue +++ b/frontend/app/pages/admin/setup.vue @@ -81,9 +81,22 @@ - + {{ $t('admin.setup.welcome-to-mealie-get-started') }} +

+ {{ $t('admin.setup.previous-mealie-instance') }} +

+ + {{ $t('settings.backup.restore-backup') }} + diff --git a/frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue b/frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue index 4bfca2f86..d8f86a009 100644 --- a/frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue +++ b/frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue @@ -372,9 +372,7 @@ cols="12" class="d-flex justify-center" > -
- -
+
@@ -402,9 +400,7 @@ cols="12" class="d-flex justify-center" > -
- -
+