diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 91661227fbf1..8417fff333b7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,6 +51,7 @@ jobs: runs-on: ubuntu-latest permissions: contents: write + pull-requests: write steps: - name: Checkout 🛎 uses: actions/checkout@v4 @@ -60,11 +61,12 @@ jobs: sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/sqlite.md sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/postgres.md - - name: Commit updates - uses: test-room-7/action-update-file@v1 + - name: Create Pull Request + uses: peter-evans/create-pull-request@v6 with: - file-path: | - docs/docs/documentation/getting-started/installation/sqlite.md - docs/docs/documentation/getting-started/installation/postgres.md - commit-msg: "Change image tag, for release ${{ github.event.release.tag_name }}" - github-token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "Update image tag, for release ${{ github.event.release.tag_name }}" + branch: "docs/newrelease-update-version-${{ github.event.release.tag_name }}" + delete-branch: true + base: mealie-next + title: "docs(auto): Update image tag, for release ${{ github.event.release.tag_name }}" + body: "Auto-generated by `.github/workflows/release.yml`, on publish of release ${{ github.event.release.tag_name }}" diff --git a/Taskfile.yml b/Taskfile.yml index ed3f47d015b4..085d9cf8c830 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -14,7 +14,9 @@ env: SMTP_HOST: localhost SMTP_PORT: 1025 SMTP_FROM_NAME: MealieDev + SMTP_FROM_EMAIL: mealie@example.com SMTP_AUTH_STRATEGY: NONE + BASE_URL: http://localhost:3000 LANG: en-US # loads .env file if it exists diff --git a/docs/docs/documentation/getting-started/installation/backend-config.md b/docs/docs/documentation/getting-started/installation/backend-config.md index dce06309bc20..80f678b487f2 100644 --- a/docs/docs/documentation/getting-started/installation/backend-config.md +++ b/docs/docs/documentation/getting-started/installation/backend-config.md @@ -54,8 +54,8 @@ Changing the webworker settings may cause unforeseen memory leak issues with Mea | ---------------- | :-----: | --------------------------------------------------------------------------------------------------------------------------------- | | WEB_GUNICORN | false | Enables Gunicorn to manage Uvicorn web for multiple works | | WORKERS_PER_CORE | 1 | Set the number of workers to the number of CPU cores multiplied by this value (Value \* CPUs). More info [here][workers_per_core] | -| MAX_WORKERS | 1 | Set the maximum number of workers to use. Default is not set meaning unlimited. More info [here][max_workers] | -| WEB_CONCURRENCY | 1 | Override the automatic definition of number of workers. More info [here][web_concurrency] | +| MAX_WORKERS | None | Set the maximum number of workers to use. Default is not set meaning unlimited. More info [here][max_workers] | +| WEB_CONCURRENCY | 2 | Override the automatic definition of number of workers. More info [here][web_concurrency] | ### LDAP @@ -95,3 +95,8 @@ Setting the following environmental variables will change the theme of the front | THEME_DARK_INFO | #1976D2 | Dark Theme Config Variable | | THEME_DARK_WARNING | #FF6D00 | Dark Theme Config Variable | | THEME_DARK_ERROR | #EF5350 | Dark Theme Config Variable | + + +[workers_per_core]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#workers_per_core +[max_workers]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#max_workers +[web_concurrency]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#web_concurrency diff --git a/docs/docs/overrides/api.html b/docs/docs/overrides/api.html index 28fdc391d2c4..4e7f1d6d216f 100644 --- a/docs/docs/overrides/api.html +++ b/docs/docs/overrides/api.html @@ -14,7 +14,7 @@
diff --git a/frontend/components/Domain/Recipe/RecipeNutrition.vue b/frontend/components/Domain/Recipe/RecipeNutrition.vue index 9b90fe990bca..f53ea29bd866 100644 --- a/frontend/components/Domain/Recipe/RecipeNutrition.vue +++ b/frontend/components/Domain/Recipe/RecipeNutrition.vue @@ -19,11 +19,11 @@ - +
{{ item.label }}
-
{{ value[key] }}
+
{{ item.value }}
{{ item.suffix }}
@@ -37,6 +37,14 @@ import { computed, defineComponent, useContext } from "@nuxtjs/composition-api"; import { Nutrition } from "~/lib/api/types/recipe"; +type NutritionLabelType = { + [key: string]: { + label: string; + suffix: string; + value?: string; + }; +}; + export default defineComponent({ props: { value: { @@ -50,34 +58,34 @@ export default defineComponent({ }, setup(props, context) { const { i18n } = useContext(); - const labels = { + const labels = { calories: { - label: i18n.t("recipe.calories"), - suffix: i18n.t("recipe.calories-suffix"), + label: i18n.tc("recipe.calories"), + suffix: i18n.tc("recipe.calories-suffix"), }, fatContent: { - label: i18n.t("recipe.fat-content"), - suffix: i18n.t("recipe.grams"), + label: i18n.tc("recipe.fat-content"), + suffix: i18n.tc("recipe.grams"), }, fiberContent: { - label: i18n.t("recipe.fiber-content"), - suffix: i18n.t("recipe.grams"), + label: i18n.tc("recipe.fiber-content"), + suffix: i18n.tc("recipe.grams"), }, proteinContent: { - label: i18n.t("recipe.protein-content"), - suffix: i18n.t("recipe.grams"), + label: i18n.tc("recipe.protein-content"), + suffix: i18n.tc("recipe.grams"), }, sodiumContent: { - label: i18n.t("recipe.sodium-content"), - suffix: i18n.t("recipe.milligrams"), + label: i18n.tc("recipe.sodium-content"), + suffix: i18n.tc("recipe.milligrams"), }, sugarContent: { - label: i18n.t("recipe.sugar-content"), - suffix: i18n.t("recipe.grams"), + label: i18n.tc("recipe.sugar-content"), + suffix: i18n.tc("recipe.grams"), }, carbohydrateContent: { - label: i18n.t("recipe.carbohydrate-content"), - suffix: i18n.t("recipe.grams"), + label: i18n.tc("recipe.carbohydrate-content"), + suffix: i18n.tc("recipe.grams"), }, }; const valueNotNull = computed(() => { @@ -96,11 +104,25 @@ export default defineComponent({ context.emit("input", { ...props.value, [key]: event }); } + // Build a new list that only contains nutritional information that has a value + const renderedList = computed(() => { + return Object.entries(labels).reduce((item: NutritionLabelType, [key, label]) => { + if (props.value[key]?.trim()) { + item[key] = { + ...label, + value: props.value[key], + }; + } + return item; + }, {}); + }); + return { labels, valueNotNull, showViewer, updateValue, + renderedList, }; }, }); diff --git a/frontend/lang/messages/nl-NL.json b/frontend/lang/messages/nl-NL.json index d76d2fc2c973..a0dfdd8c82d4 100644 --- a/frontend/lang/messages/nl-NL.json +++ b/frontend/lang/messages/nl-NL.json @@ -200,7 +200,7 @@ "created-on-date": "Gemaakt op {0}", "unsaved-changes": "Er zijn niet-opgeslagen wijzigingen. Wil je eerst opslaan voordat je vertrekt? Okay om op te slaan, Annuleren om wijzigingen ongedaan te maken.", "clipboard-copy-failure": "Kopiëren naar klembord mislukt.", - "confirm-delete-generic-items": "Are you sure you want to delete the following items?" + "confirm-delete-generic-items": "Weet u zeker dat u de volgende items wilt verwijderen?" }, "group": { "are-you-sure-you-want-to-delete-the-group": "Weet je zeker dat je {groupName} wil verwijderen?", diff --git a/frontend/pages/admin/manage/users/_id.vue b/frontend/pages/admin/manage/users/_id.vue index b39f9ae2289d..31ad6fc8e917 100644 --- a/frontend/pages/admin/manage/users/_id.vue +++ b/frontend/pages/admin/manage/users/_id.vue @@ -38,9 +38,15 @@ {{ resetUrl }}

- + {{ $t("general.close") }} + + + {{ $t("user.email") }} + @@ -57,7 +63,7 @@