diff --git a/dev/scripts/github_get_release_issues.py b/dev/scripts/github_get_release_issues.py
new file mode 100644
index 00000000..5cc5fca7
--- /dev/null
+++ b/dev/scripts/github_get_release_issues.py
@@ -0,0 +1,32 @@
+import json
+
+import requests
+from pydantic import BaseModel
+
+
+class GithubIssue(BaseModel):
+ url: str
+ number: int
+ title: str
+
+
+def get_issues_by_label(label="fixed-pending-release") -> list[GithubIssue]:
+
+ issues_url = f"https://api.github.com/repos/hay-kot/mealie/issues?labels={label}"
+
+ response = requests.get(issues_url)
+ issues = json.loads(response.text)
+ return [GithubIssue(**issue) for issue in issues]
+
+
+def format_markdown_list(issues: list[GithubIssue]) -> str:
+ return "\n".join(f"- [{issue.number}]({issue.url}) - {issue.title}" for issue in issues)
+
+
+def main() -> None:
+ issues = get_issues_by_label()
+ print(format_markdown_list(issues))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/docs/docs/changelog/v1.0.0.md b/docs/docs/changelog/v1.0.0.md
index 4310de28..a3a226ec 100644
--- a/docs/docs/changelog/v1.0.0.md
+++ b/docs/docs/changelog/v1.0.0.md
@@ -15,7 +15,11 @@
- Mealie has gone through a big redesign and has tried to standardize it's look a feel a bit more across the board.
- User/Group settings are now completely separated from the Administration page.
- All settings and configurations pages now have some sort of self-documenting help text. Additional text or descriptions are welcome from PRs
-- Site settings now has status on whether or not some ENV variables have been configured correctly.
+- Site settings now has status on whether or not some ENV variables have been configured correctly.
+ - Server Side Bare URL will let you know if the BASE_URL env variable has been set
+ - Secure Site let's you know if you're serving via HTTPS or accessing by localhost. accessing without a secure site will render some of the features unusable.
+ - Email Configuration Status will let you know if all the email settings have been provided and offer a way to send test emails.
+
### ๐จโ๐ฉโ๐งโ๐ฆ Users and Groups
- Recipes are now only viewable by group members
@@ -33,10 +37,17 @@
- Add Recipes or Notes to a specific day
### ๐ฅ Recipes
+- You can now import multiple URLs at a time pre-tagged using the bulk importer. This task runs in the background so no need to wait for it to finish.
- Foods/Units for Ingredients are now supported (toggle inside your recipe settings)
+- You can no use Natural Language Processing (NLP) to process ingredients and attempt to parse them into amounts, units, and foods. There additional is a "Brute Force" processor that can be used to use a pattern matching parser to try and determine ingredients. **Note** if you are processing a Non-English language you will have terrible results with the NLP and will likely need to use the Bruce Force processor.
- Common Food and Units come pre-packaged with Mealie
- Recipes can now scale when Food/Units are properly defined
- Landscape and Portrait views is now available
+- Users with the advanced flag turned on will not be able to manage recipe data in bulk and perform the following actions:
+ - Set Categories
+ - Set Tags
+ - Delete Recipes
+ - Export Recipes
### โ ๏ธ Other things to know...
- Themes have been depreciated for specific users. You can still set specific themes for your site through ENV variables. This approach should yield much better results for performance and some weirdness users have experienced.
diff --git a/frontend/api/admin/admin-about.ts b/frontend/api/admin/admin-about.ts
index 8d54032b..01517f7e 100644
--- a/frontend/api/admin/admin-about.ts
+++ b/frontend/api/admin/admin-about.ts
@@ -30,6 +30,7 @@ export interface AdminStatistics {
export interface CheckAppConfig {
emailReady: boolean;
baseUrlSet: boolean;
+ isSiteSecure: boolean;
}
export class AdminAboutAPI extends BaseAPI {
diff --git a/frontend/components/Domain/Recipe/RecipeCategoryTagSelector.vue b/frontend/components/Domain/Recipe/RecipeCategoryTagSelector.vue
index c7874b4a..96d2314c 100644
--- a/frontend/components/Domain/Recipe/RecipeCategoryTagSelector.vue
+++ b/frontend/components/Domain/Recipe/RecipeCategoryTagSelector.vue
@@ -15,6 +15,7 @@
:hint="hint"
:solo="solo"
:return-object="returnObject"
+ :prepend-inner-icon="$globals.icons.tags"
:flat="flat"
v-bind="$attrs"
@input="emitChange"
diff --git a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue b/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
index 2b7a1519..c6fd9924 100644
--- a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
+++ b/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue
@@ -5,7 +5,7 @@
v-model="value.title"
dense
hide-details
- class="mx-1 mb-4"
+ class="mx-1 mt-3 mb-4"
placeholder="Section Title"
style="max-width: 500px"
>
@@ -29,6 +29,7 @@
-
-
+
+
+
+
+
+
-
-
+
+
+
+
@@ -86,15 +94,12 @@
-
diff --git a/frontend/components/Domain/Recipe/RecipeIngredientUnitDialog.vue b/frontend/components/Domain/Recipe/RecipeIngredientUnitDialog.vue
deleted file mode 100644
index 47471451..00000000
--- a/frontend/components/Domain/Recipe/RecipeIngredientUnitDialog.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/components/Layout/AppSidebar.vue b/frontend/components/Layout/AppSidebar.vue
index c16e0b6a..632664cd 100644
--- a/frontend/components/Layout/AppSidebar.vue
+++ b/frontend/components/Layout/AppSidebar.vue
@@ -1,5 +1,5 @@
-
+
@@ -101,8 +101,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/frontend/pages/recipe/create.vue b/frontend/pages/recipe/create.vue
index bf004b3d..aa8041b7 100644
--- a/frontend/pages/recipe/create.vue
+++ b/frontend/pages/recipe/create.vue
@@ -27,6 +27,7 @@
-
+
@@ -86,6 +87,7 @@
-
+
@@ -131,7 +139,14 @@
-
+
@@ -142,7 +157,7 @@
- Recipe Importer
+ Recipe Debugger
Grab the URL of the recipe you want to debug and paste it here. The URL will be scraped by the recipe
scraper and the results will be displayed. If you don't see any data returned, the site you are trying
@@ -151,6 +166,7 @@
v-model="recipeUrl"
:label="$t('new-recipe.recipe-url')"
validate-on-blur
+ :prepend-inner-icon="$globals.icons.link"
autofocus
filled
clearable
@@ -163,7 +179,14 @@
-
+
{{ $globals.icons.robot }}
diff --git a/frontend/pages/user/profile/api-tokens.vue b/frontend/pages/user/profile/api-tokens.vue
index 50502a27..a5ef38d2 100644
--- a/frontend/pages/user/profile/api-tokens.vue
+++ b/frontend/pages/user/profile/api-tokens.vue
@@ -20,9 +20,7 @@
class="mb-0 pb-0"
:label="$t('settings.token.api-token')"
readonly
- :append-outer-icon="$globals.icons.contentCopy"
- @click="copyToken"
- @click:append-outer="copyToken"
+ rows="3"
>
@@ -34,13 +32,14 @@
-
-
-
- Close
- Generate
-
-
+
+ Close
+
+
+
+ Generate
+
+
@@ -117,14 +116,7 @@ export default defineComponent({
return data;
}
- function copyToken() {
- navigator.clipboard.writeText(createdToken.value).then(
- () => console.log("Copied", createdToken.value),
- () => console.log("Copied Failed", createdToken.value)
- );
- }
-
- return { createToken, deleteToken, copyToken, createdToken, loading, name, user, resetCreate };
+ return { createToken, deleteToken, createdToken, loading, name, user, resetCreate };
},
head() {
return {
diff --git a/frontend/pages/user/profile/index.vue b/frontend/pages/user/profile/index.vue
index c42a3ad2..3d281d07 100644
--- a/frontend/pages/user/profile/index.vue
+++ b/frontend/pages/user/profile/index.vue
@@ -108,7 +108,7 @@
See who's in your group and manage their permissions.
-
+