+ {% trans 'There are many options to configure the search depending on your personal preferences.' %}
+ {% trans 'Usually you do
to configure any of them and can just stick with either the default or one of the following presets.' %}
+ {% trans 'If you do want to configure the search you can read about the different options
-
-
{% trans 'Name Settings' %}
-
-
-
{% trans 'Account Settings' %}
-
-
{% trans 'Emails' %}
-
{% trans 'Password' %}
-
-
{% trans 'Social' %}
-
-
-
-
+
+
+
+
{% trans 'Fuzzy' %}
+
{% trans 'Find what you need even if your search or the recipe contains typos. Might return more results than needed to make sure you find what you are looking for.' %}
+
{% trans 'This is the default behavior' %}
+
+
+
+
+
+
+
{% trans 'Precise' %}
+
{% trans 'Allows fine control over search results but might not return results if too many spelling mistakes are made.' %}
+
{% trans 'Perfect for large Databases' %}
+
+
+
-
-
-
-
-
-
{% trans 'Language' %}
-
-
-
-
-
-
-
-
-
{% trans 'Style' %}
-
-
-
-
-
-
-
-
-
-
-
{% trans 'API Token' %}
- {% trans 'You can use both basic authentication and token based authentication to access the REST API.' %}
-
-
-
-
-
-
-
-
-
-
- {% trans 'Use the token as an Authorization header prefixed by the word token as shown in the following examples:' %}
-
-
Authorization: Bearer {{ api_token }}
{% trans 'or' %}
-
curl -X GET http://your.domain.com/api/recipes/ -H 'Authorization:
- Bearer {{ api_token }}'
-
-
-
-
-
-
-
{% trans 'Search Settings' %}
- {% trans 'There are many options to configure the search depending on your personal preferences.' %}
- {% trans 'Usually you do
not need to configure any of them and can just stick with either the default or one of the following presets.' %}
- {% trans 'If you do want to configure the search you can read about the different options
here.' %}
-
-
-
-
-
{% trans 'Fuzzy' %}
-
{% trans 'Find what you need even if your search or the recipe contains typos. Might return more results than needed to make sure you find what you are looking for.' %}
-
{% trans 'This is the default behavior' %}
-
-
-
-
-
-
{% trans 'Precise' %}
-
{% trans 'Allows fine control over search results but might not return results if too many spelling mistakes are made.' %}
-
{% trans 'Perfect for large Databases' %}
-
-
-
-
-
-
-
-
-
-
-
{% trans 'Shopping Settings' %}
-
-
-
+
+
+
+
{% endblock %}
diff --git a/cookbook/templates/shoppinglist_template.html b/cookbook/templates/shoppinglist_template.html
index 51e9a652..c8c1d3f5 100644
--- a/cookbook/templates/shoppinglist_template.html
+++ b/cookbook/templates/shoppinglist_template.html
@@ -19,6 +19,7 @@
{% render_bundle 'shopping_list_view' %} {% endblock %}
diff --git a/cookbook/templates/user_settings.html b/cookbook/templates/user_settings.html
index 2ffb9b7a..15861f8b 100644
--- a/cookbook/templates/user_settings.html
+++ b/cookbook/templates/user_settings.html
@@ -29,6 +29,7 @@
diff --git a/vue/src/components/Settings/ShoppingSettingsComponent.vue b/vue/src/components/Settings/ShoppingSettingsComponent.vue
index 29ae5f84..af0052d4 100644
--- a/vue/src/components/Settings/ShoppingSettingsComponent.vue
+++ b/vue/src/components/Settings/ShoppingSettingsComponent.vue
@@ -1,32 +1,92 @@
+
+
+
-
+
+
+
+
+ {{ Math.round(user_preferences.shopping_auto_sync) }}
+ {{ $t('Second') }}
+ {{ $t('Seconds') }}
+
-
-
+ {{ $t('Disable') }}
+
+
+ {{ $t('Disabled') }}
+
-
-
-
-
+
+ {{ $t('mealplan_autoadd_shopping') }}
+
+
-
-
-
+
+ {{ $t('mealplan_autoexclude_onhand') }}
+
+
+
+
+ {{ $t('mealplan_autoinclude_related') }}
+
+
+
+
+ {{ $t('shopping_add_onhand') }}
+
+
+
+
+
+
+ {{ Math.round(user_preferences.default_delay) }}
+ {{ $t('Hour') }}
+ {{ $t('Hours') }}
+
+
+
+
+
+ {{ $t('filter_to_supermarket') }}
+
+
+
+
+
+
+ {{ Math.round(user_preferences.shopping_recent_days) }}
+ {{ $t('Day') }}
+ {{ $t('Days') }}
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -50,6 +110,7 @@ export default {
data() {
return {
user_preferences: undefined,
+ SHOPPING_MIN_AUTOSYNC_INTERVAL: window.SHOPPING_MIN_AUTOSYNC_INTERVAL,
languages: [],
}
},
@@ -69,9 +130,10 @@ export default {
},
updateSettings: function (reload) {
let apiFactory = new ApiApiFactory()
+ this.$emit('updated', this.user_preferences)
apiFactory.partialUpdateUserPreference(this.user_id.toString(), this.user_preferences).then(result => {
StandardToasts.makeStandardToast(this, StandardToasts.SUCCESS_UPDATE)
- if (reload !== undefined) {
+ if (reload) {
location.reload()
}
}).catch(err => {
diff --git a/vue/src/locales/en.json b/vue/src/locales/en.json
index 3b3c34ad..9214740e 100644
--- a/vue/src/locales/en.json
+++ b/vue/src/locales/en.json
@@ -169,6 +169,8 @@
"tree_root": "Root of Tree",
"Icon": "Icon",
"Unit": "Unit",
+ "Decimals": "Decimals",
+ "Default_Unit": "Default Unit",
"No_Results": "No Results",
"New_Unit": "New Unit",
"Create_New_Shopping Category": "Create New Shopping Category",
@@ -219,6 +221,8 @@
"Title_or_Recipe_Required": "Title or recipe selection required",
"Color": "Color",
"New_Meal_Type": "New Meal type",
+ "Use_Fractions": "Use Fractions",
+ "Use_Fractions_Help": "Automatically convert decimals to fractions when viewing a recipe.",
"AddFoodToShopping": "Add {food} to your shopping list",
"RemoveFoodFromShopping": "Remove {food} from your shopping list",
"DeleteShoppingConfirm": "Are you sure that you want to remove all {food} from the shopping list?",
@@ -241,6 +245,8 @@
"FoodInherit": "Food Inheritable Fields",
"ShowUncategorizedFood": "Show Undefined",
"GroupBy": "Group By",
+ "Language": "Language",
+ "Theme": "Theme",
"SupermarketCategoriesOnly": "Supermarket Categories Only",
"MoveCategory": "Move To: ",
"CountMore": "...+{count} more",
@@ -259,6 +265,7 @@
"mealplan_autoexclude_onhand": "Exclude Food On Hand",
"mealplan_autoinclude_related": "Add Related Recipes",
"default_delay": "Default Delay Hours",
+ "plan_share_desc": "New Meal Plan entries will automatically be shared with selected users.",
"shopping_share_desc": "Users will see all items you add to your shopping list. They must add you to see items on their list.",
"shopping_auto_sync_desc": "Setting to 0 will disable auto sync. When viewing a shopping list the list is updated every set seconds to sync changes someone else might have made. Useful when shopping with multiple people but will use mobile data.",
"mealplan_autoadd_shopping_desc": "Automatically add meal plan ingredients to shopping list.",
@@ -270,6 +277,12 @@
"Auto_Planner": "Auto-Planner",
"New_Cookbook": "New cookbook",
"Hide_Keyword": "Hide keywords",
+ "Hour": "Hour",
+ "Hours": "Hours",
+ "Day": "Day",
+ "Days": "Days",
+ "Second": "Second",
+ "Seconds": "Seconds",
"Clear": "Clear",
"Users": "Users",
"Invites": "Invites",
@@ -310,6 +323,9 @@
"shopping_category_help": "Supermarkets can be ordered and filtered by Shopping Category according to the layout of the aisles.",
"food_recipe_help": "Linking a recipe here will include the linked recipe in any other recipe that use this food",
"Foods": "Foods",
+ "Account": "Account",
+ "Cosmetic": "Cosmetic",
+ "API": "API",
"enable_expert": "Enable Expert Mode",
"expert_mode": "Expert Mode",
"simple_mode": "Simple Mode",
@@ -353,6 +369,12 @@
"App": "App",
"Message": "Message",
"Bookmarklet": "Bookmarklet",
+ "Sticky_Nav": "Sticky Navigation",
+ "Sticky_Nav_Help": "Always show the navigation menu at the top of the screen.",
+ "Nav_Color": "Navigation Color",
+ "Nav_Color_Help": "Change navigation color.",
+ "Use_Kj": "Use kJ instead of kcal",
+ "Comments_setting": "Show Comments",
"click_image_import": "Click the image you want to import for this recipe",
"no_more_images_found": "No additional images found on Website.",
"import_duplicates": "To prevent duplicates recipes with the same name as existing ones are ignored. Check this box to import everything.",
@@ -391,6 +413,9 @@
"Ratings": "Ratings",
"Internal": "Internal",
"Units": "Units",
+ "Manage_Emails": "Manage Emails",
+ "Change_Password": "Change Password",
+ "Social_Authentication": "Social Authentication",
"Random Recipes": "Random Recipes",
"parameter_count": "Parameter {count}",
"select_keyword": "Select Keyword",
@@ -404,12 +429,17 @@
"Select": "Select",
"Supermarkets": "Supermarkets",
"User": "User",
+ "Username": "Username",
+ "First_name": "First Name",
+ "Last_name": "Last Name",
"Keyword": "Keyword",
"Advanced": "Advanced",
"Page": "Page",
"Single": "Single",
"Multiple": "Multiple",
"Reset": "Reset",
+ "Disabled": "Disabled",
+ "Disable": "Disable",
"Options": "Options",
"Create Food": "Create Food",
"create_food_desc": "Create a food and link it to this recipe.",