diff --git a/frontend/components/Domain/Recipe/RecipeScaleEditButton.vue b/frontend/components/Domain/Recipe/RecipeScaleEditButton.vue
index cdc562577..ea082d564 100644
--- a/frontend/components/Domain/Recipe/RecipeScaleEditButton.vue
+++ b/frontend/components/Domain/Recipe/RecipeScaleEditButton.vue
@@ -14,7 +14,7 @@
@@ -74,7 +74,7 @@
@update:model-value="recalculateScale(parseFloat($event) || 0)"
/>
diff --git a/frontend/components/Domain/Recipe/RecipeTimelineBadge.vue b/frontend/components/Domain/Recipe/RecipeTimelineBadge.vue
index 44410999a..d933c1490 100644
--- a/frontend/components/Domain/Recipe/RecipeTimelineBadge.vue
+++ b/frontend/components/Domain/Recipe/RecipeTimelineBadge.vue
@@ -1,6 +1,6 @@
diff --git a/frontend/components/Domain/ShoppingList/ShoppingListItem.vue b/frontend/components/Domain/ShoppingList/ShoppingListItem.vue
index bbb71aa32..f1cd028c9 100644
--- a/frontend/components/Domain/ShoppingList/ShoppingListItem.vue
+++ b/frontend/components/Domain/ShoppingList/ShoppingListItem.vue
@@ -59,7 +59,7 @@
open-delay="200"
transition="slide-x-reverse-transition"
density="compact"
- right
+ location="end"
content-class="text-caption"
>
diff --git a/frontend/components/Domain/User/UserAvatar.vue b/frontend/components/Domain/User/UserAvatar.vue
index e287deaac..54e4f1d82 100644
--- a/frontend/components/Domain/User/UserAvatar.vue
+++ b/frontend/components/Domain/User/UserAvatar.vue
@@ -2,7 +2,7 @@
diff --git a/frontend/lang/messages/en-US.json b/frontend/lang/messages/en-US.json
index 59437e6d4..f3e3c2485 100644
--- a/frontend/lang/messages/en-US.json
+++ b/frontend/lang/messages/en-US.json
@@ -662,6 +662,8 @@
"no-unit": "No unit",
"missing-unit": "Create missing unit: {unit}",
"missing-food": "Create missing food: {food}",
+ "this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
+ "this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
"no-food": "No Food"
},
"reset-servings-count": "Reset Servings Count",
diff --git a/frontend/pages/admin/manage/groups/index.vue b/frontend/pages/admin/manage/groups/index.vue
index 0846cc02c..0b5568eaa 100644
--- a/frontend/pages/admin/manage/groups/index.vue
+++ b/frontend/pages/admin/manage/groups/index.vue
@@ -60,7 +60,7 @@
diff --git a/frontend/pages/admin/manage/households/index.vue b/frontend/pages/admin/manage/households/index.vue
index 78346d9c6..f3c4d4d55 100644
--- a/frontend/pages/admin/manage/households/index.vue
+++ b/frontend/pages/admin/manage/households/index.vue
@@ -82,7 +82,7 @@
diff --git a/frontend/pages/g/[groupSlug]/r/[slug]/ingredient-parser.vue b/frontend/pages/g/[groupSlug]/r/[slug]/ingredient-parser.vue
index c1b9d113b..dfeda4561 100644
--- a/frontend/pages/g/[groupSlug]/r/[slug]/ingredient-parser.vue
+++ b/frontend/pages/g/[groupSlug]/r/[slug]/ingredient-parser.vue
@@ -103,7 +103,12 @@
{{ ing.input }}
@@ -113,7 +118,7 @@
v-if="errors[index].unitError && errors[index].unitErrorMessage !== ''"
color="warning"
size="small"
- @click="createUnit(ing.ingredient.unit!, index)"
+ @click="createUnit(errors[index].unitName, index)"
>
{{ errors[index].unitErrorMessage }}
@@ -121,7 +126,7 @@
v-if="errors[index].foodError && errors[index].foodErrorMessage !== ''"
color="warning"
size="small"
- @click="createFood(ing.ingredient.food!, index)"
+ @click="createFood(errors[index].foodName, index)"
>
{{ errors[index].foodErrorMessage }}
@@ -157,8 +162,10 @@ import type { Parser } from "~/lib/api/user/recipes/recipe";
interface Error {
ingredientIndex: number;
+ unitName: string;
unitError: boolean;
unitErrorMessage: string;
+ foodName: string;
foodError: boolean;
foodErrorMessage: string;
}
@@ -224,30 +231,33 @@ export default defineNuxtComponent({
const unitError = !checkForUnit(ing.ingredient.unit!);
const foodError = !checkForFood(ing.ingredient.food!);
+ const unit = ing.ingredient.unit?.name || i18n.t("recipe.parser.no-unit");
+ const food = ing.ingredient.food?.name || i18n.t("recipe.parser.no-food");
+
let unitErrorMessage = "";
let foodErrorMessage = "";
- if (unitError || foodError) {
- if (unitError) {
- if (ing?.ingredient?.unit?.name) {
- const unit = ing.ingredient.unit.name || i18n.t("recipe.parser.no-unit");
- unitErrorMessage = i18n.t("recipe.parser.missing-unit", { unit }).toString();
- }
+ if (unitError) {
+ if (ing?.ingredient?.unit?.name) {
+ ing.ingredient.unit = undefined;
+ unitErrorMessage = i18n.t("recipe.parser.missing-unit", { unit }).toString();
}
+ }
- if (foodError) {
- if (ing?.ingredient?.food?.name) {
- const food = ing.ingredient.food.name || i18n.t("recipe.parser.no-food");
- foodErrorMessage = i18n.t("recipe.parser.missing-food", { food }).toString();
- }
+ if (foodError) {
+ if (ing?.ingredient?.food?.name) {
+ ing.ingredient.food = undefined;
+ foodErrorMessage = i18n.t("recipe.parser.missing-food", { food }).toString();
}
}
panels.value.push(index);
return {
ingredientIndex: index,
+ unitName: unit,
unitError,
unitErrorMessage,
+ foodName: food,
foodError,
foodErrorMessage,
} as Error;
@@ -320,24 +330,24 @@ export default defineNuxtComponent({
return !!food?.id;
}
- async function createFood(food: CreateIngredientFood | undefined, index: number) {
- if (!food) {
+ async function createFood(foodName: string, index: number) {
+ if (!foodName) {
return;
}
- foodData.data.name = food.name;
+ foodData.data.name = foodName;
parsedIng.value[index].ingredient.food = await foodStore.actions.createOne(foodData.data) || undefined;
errors.value[index].foodError = false;
foodData.reset();
}
- async function createUnit(unit: CreateIngredientUnit | undefined, index: number) {
- if (!unit) {
+ async function createUnit(unitName: string | undefined, index: number) {
+ if (!unitName) {
return;
}
- unitData.data.name = unit.name;
+ unitData.data.name = unitName;
parsedIng.value[index].ingredient.unit = await unitStore.actions.createOne(unitData.data) || undefined;
errors.value[index].unitError = false;