From 6a7436dbf04b13e4cef0ba0342c55a8d5b43e720 Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Mon, 3 Feb 2025 18:36:10 +0100 Subject: [PATCH] Persist shopping list print settings (closes #2667) --- changelog/79_UNRELEASED_xx-xx-xxxx.md | 2 +- config-dist.php | 3 ++ public/viewjs/shoppinglist.js | 73 +++++++++++++++++---------- 3 files changed, 51 insertions(+), 27 deletions(-) diff --git a/changelog/79_UNRELEASED_xx-xx-xxxx.md b/changelog/79_UNRELEASED_xx-xx-xxxx.md index 12582126..b810926f 100644 --- a/changelog/79_UNRELEASED_xx-xx-xxxx.md +++ b/changelog/79_UNRELEASED_xx-xx-xxxx.md @@ -14,7 +14,7 @@ ### Shopping list -- xxx +- The print options (show header, layout type etc.) are now saved (as user settings, so global defaults can also defined in `config.php` as usual) ### Recipes diff --git a/config-dist.php b/config-dist.php index 4267c75e..717222ca 100644 --- a/config-dist.php +++ b/config-dist.php @@ -202,6 +202,9 @@ DefaultUserSetting('shopping_list_show_calendar', false); // When enabled, a sma DefaultUserSetting('shopping_list_round_up', false); // When enabled, all quantity amounts on the shopping list are always displayed rounded up to the nearest whole number DefaultUserSetting('shopping_list_auto_add_below_min_stock_amount', false); // If products should be automatically added to the shopping list when they are below their min. stock amount DefaultUserSetting('shopping_list_auto_add_below_min_stock_amount_list_id', 1); // When the above setting is enabled, the id of the shopping list to which the products will be added +DefaultUserSetting('shopping_list_print_show_header', true); // Default for the shopping list print option "Show header" +DefaultUserSetting('shopping_list_print_group_by_product_group', true); // Default for the shopping list print option "Group by product group" +DefaultUserSetting('shopping_list_print_layout_type', 'table'); // Default for the shopping list print option "Layout type" (table or list) // Recipe settings DefaultUserSetting('recipe_ingredients_group_by_product_group', false); // Group recipe ingredients by their product group diff --git a/public/viewjs/shoppinglist.js b/public/viewjs/shoppinglist.js index 51c169c7..8da79494 100644 --- a/public/viewjs/shoppinglist.js +++ b/public/viewjs/shoppinglist.js @@ -375,12 +375,38 @@ OnListItemRemoved(); $(document).on("click", "#print-shopping-list-button", function(e) { + var checkedPrintShowHeader = ""; + if (BoolVal(Grocy.UserSettings.shopping_list_print_show_header)) + { + checkedPrintShowHeader = "checked"; + } + + var checkedGroupByProductGroup = ""; + if (BoolVal(Grocy.UserSettings.shopping_list_print_group_by_product_group)) + { + checkedGroupByProductGroup = "checked"; + } + + var checkedLayoutTypeTable = ""; + var checkedLayoutTypeList = ""; + if (Grocy.UserSettings.shopping_list_print_layout_type == "table") + { + checkedLayoutTypeTable = "checked"; + checkedLayoutTypeList = ""; + } + else + { + checkedLayoutTypeTable = ""; + checkedLayoutTypeList = "checked"; + } + var dialogHtml = ' \
' + __t('Print options') + '

\
\ \