diff --git a/frontend/src/api/mealplan.js b/frontend/src/api/mealplan.js
index 4d396a1cf..5296b694d 100644
--- a/frontend/src/api/mealplan.js
+++ b/frontend/src/api/mealplan.js
@@ -9,6 +9,7 @@ const mealPlanURLs = {
all: `${prefix}all`,
create: `${prefix}create`,
thisWeek: `${prefix}this-week`,
+ byId: planID => `${prefix}${planID}`,
update: planID => `${prefix}${planID}`,
delete: planID => `${prefix}${planID}`,
today: `${prefix}today`,
@@ -40,6 +41,11 @@ export const mealplanAPI = {
return response;
},
+ async getById(id) {
+ let response = await apiReq.get(mealPlanURLs.byId(id));
+ return response.data;
+ },
+
delete(id) {
return apiReq.delete(
mealPlanURLs.delete(id),
diff --git a/frontend/src/components/UI/Buttons/TheCopyButton.vue b/frontend/src/components/UI/Buttons/TheCopyButton.vue
index 6633eda71..aa8eb557e 100644
--- a/frontend/src/components/UI/Buttons/TheCopyButton.vue
+++ b/frontend/src/components/UI/Buttons/TheCopyButton.vue
@@ -27,7 +27,7 @@
mdi-clipboard-check
- {{ $t("general.coppied") }}!
+ {{ $t("general.coppied") }}!
diff --git a/frontend/src/pages/MealPlan/Planner.vue b/frontend/src/pages/MealPlan/Planner.vue
index 4b1f19095..73b916ca5 100644
--- a/frontend/src/pages/MealPlan/Planner.vue
+++ b/frontend/src/pages/MealPlan/Planner.vue
@@ -37,6 +37,8 @@
Shopping List
+
+ Link Coppied
@@ -84,11 +86,12 @@ import { api } from "@/api";
import { utils } from "@/utils";
import NewMeal from "@/components/MealPlan/MealPlanNew";
import EditPlan from "@/components/MealPlan/MealPlanEditor";
-
+import TheCopyButton from "@/components/UI/Buttons/TheCopyButton";
export default {
components: {
NewMeal,
EditPlan,
+ TheCopyButton,
},
data: () => ({
plannedMeals: [],
@@ -103,6 +106,9 @@ export default {
this.plannedMeals = response.data;
console.log(this.plannedMeals);
},
+ mealPlanURL(uid) {
+ return window.location.origin + "/meal-plan?id=" + uid;
+ },
generateKey(name, index) {
return utils.generateUniqueKey(name, index);
},
diff --git a/frontend/src/pages/MealPlan/ThisWeek.vue b/frontend/src/pages/MealPlan/ThisWeek.vue
index f06bf3718..648eba8bb 100644
--- a/frontend/src/pages/MealPlan/ThisWeek.vue
+++ b/frontend/src/pages/MealPlan/ThisWeek.vue
@@ -46,11 +46,20 @@ export default {
};
},
async mounted() {
- this.mealPlan = await api.mealPlans.thisWeek();
+ if (this.mealplanId) {
+ this.mealPlan = await api.mealPlans.getById(this.mealplanId);
+ } else {
+ this.mealPlan = await api.mealPlans.thisWeek();
+ }
+ console.log(this.mealPlans);
if (!this.mealPlan) {
utils.notify.warning(this.$t("meal-plan.no-meal-plan-defined-yet"));
}
- console.log(this.mealPlan);
+ },
+ computed: {
+ mealplanId() {
+ return this.$route.query.id || false;
+ },
},
methods: {
getOrder(index) {
diff --git a/frontend/src/routes/meal.js b/frontend/src/routes/meal.js
index 5dfc042d7..4aca00dd8 100644
--- a/frontend/src/routes/meal.js
+++ b/frontend/src/routes/meal.js
@@ -5,6 +5,13 @@ import { utils } from "@/utils";
import i18n from "@/i18n.js";
export const mealRoutes = [
+ {
+ path: "/meal-plan",
+ component: ThisWeek,
+ meta: {
+ title: "meal-plan.dinner-this-week",
+ },
+ },
{
path: "/meal-plan/planner",
component: Planner,
diff --git a/mealie/routes/mealplans/crud.py b/mealie/routes/mealplans/crud.py
index 4e471f407..59dceb0c4 100644
--- a/mealie/routes/mealplans/crud.py
+++ b/mealie/routes/mealplans/crud.py
@@ -23,6 +23,16 @@ def get_all_meals(
return db.groups.get_meals(session, current_user.group)
+@router.get("/{id}", response_model=MealPlanOut)
+def get_meal_plan(
+ id,
+ session: Session = Depends(generate_session),
+):
+ """ Returns a single Meal Plan from the Database """
+
+ return db.meals.get(session, id, "uid")
+
+
@router.post("/create", status_code=status.HTTP_201_CREATED)
def create_meal_plan(
background_tasks: BackgroundTasks,