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);