diff --git a/changelog/60_UNRELEASED_2020-xx-xx.md b/changelog/60_UNRELEASED_2020-xx-xx.md
index ec86bcb9..6740397f 100644
--- a/changelog/60_UNRELEASED_2020-xx-xx.md
+++ b/changelog/60_UNRELEASED_2020-xx-xx.md
@@ -44,6 +44,7 @@
- The product option "Allow partial units in stock" was removed, partial amounts are now possible by default for all products
- On purchase there is now a warning shown, when the due date of the purchased product is earlier than the next due date in stock (enabled by default, can be disabled by a new stock setting (top right corner settings menu))
- The amount to be used for the "quick consume/open buttons" on the stock overview page can now be configured per product (new product option "Quick consume amount", defaults to 1)
+ - This "Quick consume amount" can optionally also be used as the default on the consume page (new stock setting / top right corner settings menu)
- Products can now be duplicated (new button on the products list page, all fields will be preset from the copied product, except the name)
- Optimized/clarified what the total/unit price is on the purchase page (thanks @kriddles)
- On the purchase page the amount field is now displayed above/before the due date for better `TAB` handling (thanks @kriddles)
diff --git a/config-dist.php b/config-dist.php
index 1d6fab2a..1684b94e 100644
--- a/config-dist.php
+++ b/config-dist.php
@@ -116,6 +116,7 @@ DefaultUserSetting('stock_decimal_places_prices', 2); // Default decimal places
DefaultUserSetting('stock_due_soon_days', 5);
DefaultUserSetting('stock_default_purchase_amount', 0);
DefaultUserSetting('stock_default_consume_amount', 1);
+DefaultUserSetting('stock_default_consume_amount_use_quick_consume_amount', false);
DefaultUserSetting('scan_mode_consume_enabled', false);
DefaultUserSetting('scan_mode_purchase_enabled', false);
DefaultUserSetting('show_icon_on_stock_overview_page_when_product_is_on_shopping_list', true);
diff --git a/localization/strings.pot b/localization/strings.pot
index d1551eb0..8a452a90 100644
--- a/localization/strings.pot
+++ b/localization/strings.pot
@@ -1993,3 +1993,6 @@ msgstr ""
msgid "Download file"
msgstr ""
+
+msgid "Use the products \"Quick consume amount\""
+msgstr ""
diff --git a/public/viewjs/consume.js b/public/viewjs/consume.js
index e3462436..f00c5348 100644
--- a/public/viewjs/consume.js
+++ b/public/viewjs/consume.js
@@ -94,7 +94,14 @@
Grocy.Components.ProductAmountPicker.Reset();
$("#display_amount").attr("min", "0." + "0".repeat(parseInt(Grocy.UserSettings.stock_decimal_places_amounts) - 1) + "1");
$("#display_amount").removeAttr("max");
- $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ if (BoolVal(Grocy.UserSettings.stock_default_consume_amount_use_quick_consume_amount))
+ {
+ $('#display_amount').val(productDetails.product.quick_consume_amount);
+ }
+ else
+ {
+ $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ }
RefreshLocaleNumberInput();
$(".input-group-productamountpicker").trigger("change");
$("#tare-weight-handling-info").addClass("d-none");
@@ -160,7 +167,14 @@ $('#save-mark-as-open-button').on('click', function(e)
Grocy.FrontendHelpers.EndUiBusy("consume-form");
toastr.success(__t('Marked %1$s of %2$s as opened', jsonForm.amount + " " + __n(jsonForm.amount, productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + '');
- $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ if (BoolVal(Grocy.UserSettings.stock_default_consume_amount_use_quick_consume_amount))
+ {
+ $('#display_amount').val(productDetails.product.quick_consume_amount);
+ }
+ else
+ {
+ $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ }
RefreshLocaleNumberInput();
$(".input-group-productamountpicker").trigger("change");
Grocy.Components.ProductPicker.Clear();
@@ -276,7 +290,14 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
Grocy.Components.ProductAmountPicker.Reload(productDetails.product.id, productDetails.quantity_unit_stock.id);
Grocy.Components.ProductAmountPicker.SetQuantityUnit(productDetails.quantity_unit_stock.id);
- $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ if (BoolVal(Grocy.UserSettings.stock_default_consume_amount_use_quick_consume_amount))
+ {
+ $('#display_amount').val(productDetails.product.quick_consume_amount);
+ }
+ else
+ {
+ $('#display_amount').val(parseFloat(Grocy.UserSettings.stock_default_consume_amount));
+ }
RefreshLocaleNumberInput();
$(".input-group-productamountpicker").trigger("change");
diff --git a/public/viewjs/stocksettings.js b/public/viewjs/stocksettings.js
index 2d599a73..5e06e23f 100644
--- a/public/viewjs/stocksettings.js
+++ b/public/viewjs/stocksettings.js
@@ -21,4 +21,22 @@ if (BoolVal(Grocy.UserSettings.show_warning_on_purchase_when_due_date_is_earlier
$("#show_warning_on_purchase_when_due_date_is_earlier_than_next").prop("checked", true);
}
+if (BoolVal(Grocy.UserSettings.stock_default_consume_amount_use_quick_consume_amount))
+{
+ $("#stock_default_consume_amount_use_quick_consume_amount").prop("checked", true);
+ $("#stock_default_consume_amount").attr("disabled", "");
+}
+
RefreshLocaleNumberInput();
+
+$("#stock_default_consume_amount_use_quick_consume_amount").on("click", function()
+{
+ if (this.checked)
+ {
+ $("#stock_default_consume_amount").attr("disabled", "");
+ }
+ else
+ {
+ $("#stock_default_consume_amount").removeAttr("disabled");
+ }
+});
diff --git a/views/stocksettings.blade.php b/views/stocksettings.blade.php
index 71a9ddf9..6f5937ba 100644
--- a/views/stocksettings.blade.php
+++ b/views/stocksettings.blade.php
@@ -122,9 +122,23 @@
'label' => 'Default amount for consume',
'min' => 0,
'decimals' => $userSettings['stock_decimal_places_amounts'],
- 'additionalCssClasses' => 'user-setting-control locale-number-input locale-number-quantity-amount'
+ 'additionalCssClasses' => 'user-setting-control locale-number-input locale-number-quantity-amount',
+ 'additionalGroupCssClasses' => 'mb-0'
))
+