mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-05-24 01:12:54 -04:00
Add functionality to edit mealplan item
This commit is contained in:
parent
4b55b838ed
commit
1197aa3f37
@ -170,6 +170,7 @@ export default defineComponent({
|
|||||||
close() {
|
close() {
|
||||||
this.dialog = false;
|
this.dialog = false;
|
||||||
this.logDeprecatedProp("close");
|
this.logDeprecatedProp("close");
|
||||||
|
this.$emit("closed");
|
||||||
},
|
},
|
||||||
logDeprecatedProp(val: string) {
|
logDeprecatedProp(val: string) {
|
||||||
console.warn(
|
console.warn(
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "今週の夕食",
|
"dinner-this-week": "今週の夕食",
|
||||||
"dinner-today": "今日の夕食",
|
"dinner-today": "今日の夕食",
|
||||||
"dinner-tonight": "今夜の夕食",
|
"dinner-tonight": "今夜の夕食",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -249,6 +249,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Create a New Meal Plan",
|
||||||
|
"update-this-meal-plan": "Update this Meal Plan",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Dinner This Week",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Dinner Today",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "DINNER TONIGHT",
|
||||||
|
@ -1,15 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
{{ state.dialog }}
|
||||||
<!-- Create Meal Dialog -->
|
<!-- Create Meal Dialog -->
|
||||||
<BaseDialog
|
<BaseDialog
|
||||||
v-model="state.dialog"
|
v-model="state.dialog"
|
||||||
:title="$tc('meal-plan.create-a-new-meal-plan')"
|
:title="$tc(newMeal.existing
|
||||||
|
? 'meal-plan.update-this-meal-plan'
|
||||||
|
: 'meal-plan.create-a-new-meal-plan'
|
||||||
|
)"
|
||||||
|
:submit-text="$tc(newMeal.existing
|
||||||
|
? 'general.update'
|
||||||
|
: 'general.create'
|
||||||
|
)"
|
||||||
color="primary"
|
color="primary"
|
||||||
:icon="$globals.icons.foods"
|
:icon="$globals.icons.foods"
|
||||||
@submit="
|
@submit="
|
||||||
actions.createOne(newMeal);
|
if (newMeal.existing) {
|
||||||
|
actions.updateOne(newMeal);
|
||||||
|
} else {
|
||||||
|
actions.createOne(newMeal);
|
||||||
|
}
|
||||||
resetDialog();
|
resetDialog();
|
||||||
"
|
"
|
||||||
|
@close="resetDialog()"
|
||||||
>
|
>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-menu
|
<v-menu
|
||||||
@ -68,7 +81,6 @@
|
|||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col
|
<v-col
|
||||||
v-for="(plan, index) in mealplans"
|
v-for="(plan, index) in mealplans"
|
||||||
@ -101,7 +113,9 @@
|
|||||||
class="my-1"
|
class="my-1"
|
||||||
:class="{ handle: $vuetify.breakpoint.smAndUp }"
|
:class="{ handle: $vuetify.breakpoint.smAndUp }"
|
||||||
>
|
>
|
||||||
<v-list-item>
|
<v-list-item
|
||||||
|
@click="editMeal(mealplan)"
|
||||||
|
>
|
||||||
<v-list-item-avatar :rounded="false">
|
<v-list-item-avatar :rounded="false">
|
||||||
<RecipeCardImage
|
<RecipeCardImage
|
||||||
v-if="mealplan.recipe"
|
v-if="mealplan.recipe"
|
||||||
@ -213,7 +227,7 @@ import draggable from "vuedraggable";
|
|||||||
import { MealsByDate } from "./types";
|
import { MealsByDate } from "./types";
|
||||||
import { useMealplans, usePlanTypeOptions, getEntryTypeText } from "~/composables/use-group-mealplan";
|
import { useMealplans, usePlanTypeOptions, getEntryTypeText } from "~/composables/use-group-mealplan";
|
||||||
import RecipeCardImage from "~/components/Domain/Recipe/RecipeCardImage.vue";
|
import RecipeCardImage from "~/components/Domain/Recipe/RecipeCardImage.vue";
|
||||||
import { PlanEntryType } from "~/lib/api/types/meal-plan";
|
import { PlanEntryType, UpdatePlanEntry } from "~/lib/api/types/meal-plan";
|
||||||
import { useUserApi } from "~/composables/api";
|
import { useUserApi } from "~/composables/api";
|
||||||
import { useGroupSelf } from "~/composables/use-groups";
|
import { useGroupSelf } from "~/composables/use-groups";
|
||||||
import { useRecipeSearch } from "~/composables/recipes/use-recipe-search";
|
import { useRecipeSearch } from "~/composables/recipes/use-recipe-search";
|
||||||
@ -290,8 +304,6 @@ export default defineComponent({
|
|||||||
if (dialog.note) {
|
if (dialog.note) {
|
||||||
newMeal.recipeId = undefined;
|
newMeal.recipeId = undefined;
|
||||||
}
|
}
|
||||||
newMeal.title = "";
|
|
||||||
newMeal.text = "";
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const newMeal = reactive({
|
const newMeal = reactive({
|
||||||
@ -300,6 +312,9 @@ export default defineComponent({
|
|||||||
text: "",
|
text: "",
|
||||||
recipeId: undefined as string | undefined,
|
recipeId: undefined as string | undefined,
|
||||||
entryType: "dinner" as PlanEntryType,
|
entryType: "dinner" as PlanEntryType,
|
||||||
|
existing: false,
|
||||||
|
id: 0,
|
||||||
|
groupId: ""
|
||||||
});
|
});
|
||||||
|
|
||||||
function openDialog(date: Date) {
|
function openDialog(date: Date) {
|
||||||
@ -307,12 +322,32 @@ export default defineComponent({
|
|||||||
state.value.dialog = true;
|
state.value.dialog = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function editMeal(mealplan: UpdatePlanEntry) {
|
||||||
|
const { date, title, text, entryType, recipeId, id, groupId } = mealplan;
|
||||||
|
if (!entryType) return;
|
||||||
|
|
||||||
|
newMeal.date = date;
|
||||||
|
newMeal.title = title || "";
|
||||||
|
newMeal.text = text || "";
|
||||||
|
newMeal.recipeId = recipeId;
|
||||||
|
newMeal.entryType = entryType;
|
||||||
|
newMeal.existing = true;
|
||||||
|
newMeal.id = id;
|
||||||
|
newMeal.groupId = groupId;
|
||||||
|
|
||||||
|
state.value.dialog = true;
|
||||||
|
dialog.note = !recipeId;
|
||||||
|
}
|
||||||
|
|
||||||
function resetDialog() {
|
function resetDialog() {
|
||||||
newMeal.date = "";
|
newMeal.date = "";
|
||||||
newMeal.title = "";
|
newMeal.title = "";
|
||||||
newMeal.text = "";
|
newMeal.text = "";
|
||||||
newMeal.entryType = "dinner";
|
newMeal.entryType = "dinner";
|
||||||
newMeal.recipeId = undefined;
|
newMeal.recipeId = undefined;
|
||||||
|
newMeal.existing = false;
|
||||||
|
newMeal.id = 0;
|
||||||
|
newMeal.groupId = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
async function randomMeal(date: Date, type: PlanEntryType) {
|
async function randomMeal(date: Date, type: PlanEntryType) {
|
||||||
@ -346,6 +381,7 @@ export default defineComponent({
|
|||||||
dialog,
|
dialog,
|
||||||
newMeal,
|
newMeal,
|
||||||
openDialog,
|
openDialog,
|
||||||
|
editMeal,
|
||||||
resetDialog,
|
resetDialog,
|
||||||
randomMeal,
|
randomMeal,
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user