diff --git a/frontend/src/components/Admin/General/HomePageSettings.vue b/frontend/src/components/Admin/General/HomePageSettings.vue
index 91aec8a578a2..6345db60d0b4 100644
--- a/frontend/src/components/Admin/General/HomePageSettings.vue
+++ b/frontend/src/components/Admin/General/HomePageSettings.vue
@@ -3,9 +3,6 @@
{{ $t("settings.homepage.home-page") }}
-
-
-
+
+ {{$t('settings.locale-settings')}}
+
+
+
+
+
+
+
+
+
@@ -145,6 +161,7 @@ export default {
return {
settings: {
language: "en",
+ firstDayOfWeek: 0,
showRecent: null,
cardsPerSection: null,
categories: [],
@@ -158,6 +175,38 @@ export default {
allCategories() {
return this.$store.getters.getAllCategories;
},
+ allDays() {
+ return [
+ {
+ name: this.$t('general.sunday'),
+ value: 0,
+ },
+ {
+ name: this.$t('general.monday'),
+ value: 1,
+ },
+ {
+ name: this.$t('general.tuesday'),
+ value: 2,
+ },
+ {
+ name: this.$t('general.wednesday'),
+ value: 3,
+ },
+ {
+ name: this.$t('general.thursday'),
+ value: 4,
+ },
+ {
+ name: this.$t('general.friday'),
+ value: 5,
+ },
+ {
+ name: this.$t('general.saturday'),
+ value: 6,
+ }
+ ];
+ },
},
methods: {
@@ -176,6 +225,7 @@ export default {
},
async saveSettings() {
await api.siteSettings.update(this.settings);
+ this.$store.commit("setLang", this.settings.language);
this.getOptions();
},
},
diff --git a/frontend/src/components/MealPlan/MealPlanNew.vue b/frontend/src/components/MealPlan/MealPlanNew.vue
index 278efd3fc34b..42f00116c479 100644
--- a/frontend/src/components/MealPlan/MealPlanNew.vue
+++ b/frontend/src/components/MealPlan/MealPlanNew.vue
@@ -31,11 +31,11 @@
v-on="on"
>
-
+ />
@@ -59,11 +59,11 @@
v-on="on"
>
-
+ />
@@ -87,12 +87,14 @@
+
+
\ No newline at end of file
diff --git a/frontend/src/locales/messages/en-US.json b/frontend/src/locales/messages/en-US.json
index 4bf311d2a410..9a63052c5179 100644
--- a/frontend/src/locales/messages/en-US.json
+++ b/frontend/src/locales/messages/en-US.json
@@ -49,6 +49,13 @@
"current-parenthesis": "(Current)",
"users": "Users",
"groups": "Groups",
+ "sunday": "Sunday",
+ "monday": "Monday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday",
+ "thursday": "Thursday",
+ "friday": "Friday",
+ "saturday": "Saturday",
"about": "About"
},
"page": {
@@ -226,6 +233,8 @@
"manage-users": "Manage Users",
"migrations": "Migrations",
"profile": "Profile",
+ "locale-settings": "Locale settings",
+ "first-day-of-week": "First day of the week",
"custom-pages": "Custom Pages",
"new-page": "New Page",
"edit-page": "Edit Page",
diff --git a/frontend/src/pages/Admin/Settings/index.vue b/frontend/src/pages/Admin/Settings/index.vue
index ea83515db11a..73deaa87dc67 100644
--- a/frontend/src/pages/Admin/Settings/index.vue
+++ b/frontend/src/pages/Admin/Settings/index.vue
@@ -28,30 +28,6 @@ export default {
HomePageSettings,
CustomPageCreator,
},
- data() {
- return {
- langOptions: [],
- selectedLang: "en",
- };
- },
- mounted() {
- this.getOptions();
- },
- watch: {
- selectedLang() {
- this.$store.commit("setLang", this.selectedLang);
- },
- },
- methods: {
- getOptions() {
- this.langOptions = this.$store.getters.getAllLangs;
- this.selectedLang = this.$store.getters.getActiveLang;
- },
- removeCategory(index) {
- this.value.categories.splice(index, 1);
- },
-
- },
};
diff --git a/frontend/src/store/modules/siteSettings.js b/frontend/src/store/modules/siteSettings.js
index f521f4eb5227..9b526275a37b 100644
--- a/frontend/src/store/modules/siteSettings.js
+++ b/frontend/src/store/modules/siteSettings.js
@@ -3,6 +3,7 @@ import { api } from "@/api";
const state = {
siteSettings: {
language: "en",
+ firstDayOfWeek: 0,
showRecent: true,
cardsPerSection: 9,
categories: [],
diff --git a/mealie/db/models/settings.py b/mealie/db/models/settings.py
index cc40dd787ca6..fbebdcd069b3 100644
--- a/mealie/db/models/settings.py
+++ b/mealie/db/models/settings.py
@@ -9,6 +9,7 @@ class SiteSettings(SqlAlchemyBase, BaseMixins):
__tablename__ = "site_settings"
id = sa.Column(sa.Integer, primary_key=True)
language = sa.Column(sa.String)
+ first_day_of_week = sa.Column(sa.Integer)
categories = orm.relationship(
"Category",
secondary=site_settings2categories,
@@ -21,12 +22,14 @@ class SiteSettings(SqlAlchemyBase, BaseMixins):
self,
session: Session = None,
language="en",
+ first_day_of_week: int = 0,
categories: list = [],
show_recent=True,
cards_per_section: int = 9,
) -> None:
session.commit()
self.language = language
+ self.first_day_of_week = first_day_of_week
self.cards_per_section = cards_per_section
self.show_recent = show_recent
self.categories = [Category.get_ref(session=session, slug=cat.get("slug")) for cat in categories]
diff --git a/mealie/schema/settings.py b/mealie/schema/settings.py
index 9f147d16a68d..b275cf60cbbb 100644
--- a/mealie/schema/settings.py
+++ b/mealie/schema/settings.py
@@ -8,6 +8,7 @@ from slugify import slugify
class SiteSettings(CamelModel):
language: str = "en"
+ first_day_of_week: int = 0
show_recent: bool = True
cards_per_section: int = 9
categories: Optional[list[CategoryBase]] = []
@@ -18,6 +19,7 @@ class SiteSettings(CamelModel):
schema_extra = {
"example": {
"language": "en",
+ "firstDayOfWeek": 0,
"showRecent": True,
"categories": [
{"id": 1, "name": "thanksgiving", "slug": "thanksgiving"},