diff --git a/changelog/47_UNRELEASED_xxxx-xx-xx.md b/changelog/47_UNRELEASED_xxxx-xx-xx.md index 55129e4e..dcb71605 100644 --- a/changelog/47_UNRELEASED_xxxx-xx-xx.md +++ b/changelog/47_UNRELEASED_xxxx-xx-xx.md @@ -20,3 +20,5 @@ - This involved some string changes which results in a needed (re)translation of about 20 strings (excluding demo data) - Also applies to quantity units, n-plural forms can be entered on the quantity unit edit page - It's not required to install the PHP gettext extension, on both, server and client, managed implementations of gettext are used ([oscarotero/Gettext](https://github.com/oscarotero/Gettext) & [oscarotero/gettext-translator](https://github.com/oscarotero/gettext-translator)) +- Some other small fixes + - The "Add as barcode to existing product" productpicker workflow failed to add the barcode to the given product diff --git a/public/viewjs/consume.js b/public/viewjs/consume.js index 5e126710..2203415e 100644 --- a/public/viewjs/consume.js +++ b/public/viewjs/consume.js @@ -32,6 +32,33 @@ Grocy.Api.Post(apiUrl, jsonData, function(result) { + var addBarcode = GetUriParam('addbarcodetoselection'); + if (addBarcode !== undefined) + { + var existingBarcodes = productDetails.product.barcode || ''; + if (existingBarcodes.length === 0) + { + productDetails.product.barcode = addBarcode; + } + else + { + productDetails.product.barcode += ',' + addBarcode; + } + + Grocy.Api.Put('objects/products/' + productDetails.product.id, productDetails.product, + function(result) + { + $("#flow-info-addbarcodetoselection").addClass("d-none"); + $('#barcode-lookup-disabled-hint').addClass('d-none'); + window.history.replaceState({ }, document.title, U("/consume")); + }, + function(xhr) + { + console.error(xhr); + } + ); + } + $("#specific_stock_entry").find("option").remove().end().append(""); if ($("#use_specific_stock_entry").is(":checked")) { diff --git a/public/viewjs/inventory.js b/public/viewjs/inventory.js index 05a7a5ab..e3be340d 100644 --- a/public/viewjs/inventory.js +++ b/public/viewjs/inventory.js @@ -30,7 +30,12 @@ } Grocy.Api.Put('objects/products/' + productDetails.product.id, productDetails.product, - function (result) { }, + function(result) + { + $("#flow-info-addbarcodetoselection").addClass("d-none"); + $('#barcode-lookup-disabled-hint').addClass('d-none'); + window.history.replaceState({ }, document.title, U("/inventory")); + }, function(xhr) { console.error(xhr); @@ -41,24 +46,17 @@ Grocy.FrontendHelpers.EndUiBusy("inventory-form"); toastr.success(__t('Stock amount of %s is now %s %s', productDetails.product.name, productDetails.stock_amount, __n(productDetails.stock_amount, productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural)) + '
' + __t("Undo") + ''); - if (addBarcode !== undefined) - { - window.location.href = U('/inventory'); - } - else - { - $('#inventory-change-info').addClass('d-none'); - $("#tare-weight-handling-info").addClass("d-none"); - $("#new_amount").attr("min", "0"); - $("#new_amount").attr("step", "1"); - $("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', '0')); - $('#new_amount').val(''); - $('#new_amount_qu_unit').text(""); - Grocy.Components.DateTimePicker.Clear(); - Grocy.Components.ProductPicker.SetValue(''); - Grocy.Components.ProductPicker.GetInputElement().focus(); - Grocy.FrontendHelpers.ValidateForm('inventory-form'); - } + $('#inventory-change-info').addClass('d-none'); + $("#tare-weight-handling-info").addClass("d-none"); + $("#new_amount").attr("min", "0"); + $("#new_amount").attr("step", "1"); + $("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', '0')); + $('#new_amount').val(''); + $('#new_amount_qu_unit').text(""); + Grocy.Components.DateTimePicker.Clear(); + Grocy.Components.ProductPicker.SetValue(''); + Grocy.Components.ProductPicker.GetInputElement().focus(); + Grocy.FrontendHelpers.ValidateForm('inventory-form'); }, function(xhr) { diff --git a/public/viewjs/purchase.js b/public/viewjs/purchase.js index 6b4928f6..e5943e50 100644 --- a/public/viewjs/purchase.js +++ b/public/viewjs/purchase.js @@ -39,7 +39,12 @@ } Grocy.Api.Put('objects/products/' + productDetails.product.id, productDetails.product, - function (result) { }, + function(result) + { + $("#flow-info-addbarcodetoselection").addClass("d-none"); + $('#barcode-lookup-disabled-hint').addClass('d-none'); + window.history.replaceState({ }, document.title, U("/purchase")); + }, function(xhr) { Grocy.FrontendHelpers.EndUiBusy("purchase-form"); @@ -50,11 +55,7 @@ var successMessage = __t('Added %s %s of %s to stock', result.amount, __n(result.amount, productDetails.quantity_unit_stock.name, productDetails.quantity_unit_stock.name_plural), productDetails.product.name) + '
' + __t("Undo") + ''; - if (addBarcode !== undefined) - { - window.location.href = U('/purchase'); - } - else if (GetUriParam("flow") === "shoppinglistitemtostock" && typeof GetUriParam("embedded") !== undefined) + if (GetUriParam("flow") === "shoppinglistitemtostock" && typeof GetUriParam("embedded") !== undefined) { window.parent.postMessage(WindowMessageBag("AfterItemAdded", GetUriParam("listitemid")), Grocy.BaseUrl); window.parent.postMessage(WindowMessageBag("ShowSuccessMessage", successMessage), Grocy.BaseUrl);