diff --git a/GrocyDemoDataGenerator.php b/GrocyDemoDataGenerator.php index cb9fb702..eaf66973 100644 --- a/GrocyDemoDataGenerator.php +++ b/GrocyDemoDataGenerator.php @@ -53,6 +53,7 @@ class GrocyDemoDataGenerator GrocyLogicStock::AddProduct(13, 5, date('Y-m-d', strtotime('-2 days')), GrocyLogicStock::TRANSACTION_TYPE_PURCHASE); GrocyLogicStock::AddProduct(14, 5, date('Y-m-d', strtotime('+2 days')), GrocyLogicStock::TRANSACTION_TYPE_PURCHASE); GrocyLogicStock::AddProduct(15, 5, date('Y-m-d', strtotime('-2 days')), GrocyLogicStock::TRANSACTION_TYPE_PURCHASE); + GrocyLogicStock::AddMissingProductsToShoppingList(); } } } diff --git a/version.txt b/version.txt index 7f207341..1cc5f657 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.0.1 \ No newline at end of file +1.1.0 \ No newline at end of file diff --git a/views/consumption.js b/views/consumption.js index 7c6b0269..25a2dbbf 100644 --- a/views/consumption.js +++ b/views/consumption.js @@ -57,6 +57,7 @@ $('#product_id').on('change', function(e) $('#selected-product-last-used-timeago').text($.timeago(productDetails.last_used || '')); $('#amount').attr('max', productDetails.stock_amount); $('#consumption-form').validator('update'); + $('#amount_qu_unit').text(productDetails.quantity_unit_stock.name); Grocy.EmptyElementWhenMatches('#selected-product-last-purchased-timeago', 'NaN years ago'); Grocy.EmptyElementWhenMatches('#selected-product-last-used-timeago', 'NaN years ago'); diff --git a/views/consumption.php b/views/consumption.php index 0953c638..c65c55c7 100644 --- a/views/consumption.php +++ b/views/consumption.php @@ -16,7 +16,7 @@
- +
@@ -30,6 +30,7 @@ +
diff --git a/views/inventory.php b/views/inventory.php index 0998b98b..64b0360b 100644 --- a/views/inventory.php +++ b/views/inventory.php @@ -37,6 +37,7 @@ +
diff --git a/views/purchase.js b/views/purchase.js index 85691ff1..e7577bee 100644 --- a/views/purchase.js +++ b/views/purchase.js @@ -82,7 +82,7 @@ $('#product_id').on('change', function(e) $('#selected-product-last-purchased-timeago').text($.timeago(productDetails.last_purchased || '')); $('#selected-product-last-used').text((productDetails.last_used || 'never').substring(0, 10)); $('#selected-product-last-used-timeago').text($.timeago(productDetails.last_used || '')); - $('#new_amount_qu_unit').text(productDetails.quantity_unit_stock.name); + $('#amount_qu_unit').text(productDetails.quantity_unit_purchase.name); if (productDetails.product.default_best_before_days.toString() !== '0') { diff --git a/views/purchase.php b/views/purchase.php index 791384f2..6a30ae29 100644 --- a/views/purchase.php +++ b/views/purchase.php @@ -28,7 +28,7 @@
- +
@@ -36,6 +36,7 @@ +
diff --git a/views/shoppinglistform.js b/views/shoppinglistform.js index 0e662952..6faeeaf3 100644 --- a/views/shoppinglistform.js +++ b/views/shoppinglistform.js @@ -30,6 +30,71 @@ } }); +$('#product_id').on('change', function(e) +{ + var productId = $(e.target).val(); + + if (productId) + { + Grocy.FetchJson('/api/stock/get-product-details/' + productId, + function (productDetails) + { + $('#selected-product-name').text(productDetails.product.name); + $('#selected-product-stock-amount').text(productDetails.stock_amount || '0'); + $('#selected-product-stock-qu-name').text(productDetails.quantity_unit_stock.name); + $('#selected-product-stock-qu-name2').text(productDetails.quantity_unit_stock.name); + $('#selected-product-last-purchased').text((productDetails.last_purchased || 'never').substring(0, 10)); + $('#selected-product-last-purchased-timeago').text($.timeago(productDetails.last_purchased || '')); + $('#selected-product-last-used').text((productDetails.last_used || 'never').substring(0, 10)); + $('#selected-product-last-used-timeago').text($.timeago(productDetails.last_used || '')); + $('#amount_qu_unit').text(productDetails.quantity_unit_purchase.name); + + Grocy.EmptyElementWhenMatches('#selected-product-last-purchased-timeago', 'NaN years ago'); + Grocy.EmptyElementWhenMatches('#selected-product-last-used-timeago', 'NaN years ago'); + + if ($('#product_id').hasClass('suppress-next-custom-validate-event')) + { + $('#product_id').removeClass('suppress-next-custom-validate-event'); + } + else + { + Grocy.FetchJson('/api/get-objects/shopping_list', + function (currentShoppingListItems) + { + if (currentShoppingListItems.filter(function (e) { return e.product_id === productId; }).length > 0) + { + $('#product_id').val(''); + $('#product_id_text_input').val(''); + $('#product_id_text_input').addClass('has-error'); + $('#product_id_text_input').parent('.input-group').addClass('has-error'); + $('#product_id_text_input').closest('.form-group').addClass('has-error'); + $('#product-error').text('This product is already on the shopping list.'); + $('#product-error').show(); + $('#product_id_text_input').focus(); + } + else + { + $('#product_id_text_input').removeClass('has-error'); + $('#product_id_text_input').parent('.input-group').removeClass('has-error'); + $('#product_id_text_input').closest('.form-group').removeClass('has-error'); + $('#product-error').hide(); + } + }, + function(xhr) + { + console.error(xhr); + } + ); + } + }, + function(xhr) + { + console.error(xhr); + } + ); + } +}); + $(function() { $('.combobox').combobox({ @@ -40,28 +105,23 @@ $(function() { var input = $('#product_id_text_input').val().toString(); var possibleOptionElement = $("#product_id option[data-additional-searchdata*='" + input + "']").first(); - - if (possibleOptionElement.length > 0) - { + + if (possibleOptionElement.length > 0 && possibleOptionElement.text().length > 0) { $('#product_id').val(possibleOptionElement.val()); $('#product_id').data('combobox').refresh(); $('#product_id').trigger('change'); } }); + + $('#product_id_text_input').focus(); + $('#product_id_text_input').trigger('change'); - if (Grocy.EditMode === 'create') + if (Grocy.EditMode === 'edit') { - $('#product_id').val(''); - $('#product_id_text_input').focus(); - $('#product_id_text_input').val(''); - $('#product_id_text_input').trigger('change'); - } - else - { - $('#product_id').data('combobox').refresh(); + $('#product_id').addClass('suppress-next-custom-validate-event'); $('#product_id').trigger('change'); } - + $('#shoppinglist-form').validator(); $('#shoppinglist-form').validator('validate'); diff --git a/views/shoppinglistform.php b/views/shoppinglistform.php index 43995f36..f67335c3 100644 --- a/views/shoppinglistform.php +++ b/views/shoppinglistform.php @@ -1,4 +1,4 @@ -
+

@@ -15,14 +15,14 @@
- +
@@ -32,3 +32,14 @@
+ +
+

Product overview

+

Stock quantity unit:

+ +

+ Stock amount:
+ Last purchased:
+ Last used: +

+