mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 09:39:57 +00:00
Fixed product picker workflows
This commit is contained in:
parent
71f6b38cb2
commit
b267295e86
@ -44,6 +44,13 @@ UpdateUriParam = function(key, value)
|
|||||||
window.history.replaceState({}, "", decodeURIComponent(`${location.pathname}?${queryParameters}`));
|
window.history.replaceState({}, "", decodeURIComponent(`${location.pathname}?${queryParameters}`));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
RemoveUriParam = function(key)
|
||||||
|
{
|
||||||
|
var queryParameters = new URLSearchParams(location.search);
|
||||||
|
queryParameters.delete(key);
|
||||||
|
window.history.replaceState({}, "", decodeURIComponent(`${location.pathname}?${queryParameters}`));
|
||||||
|
};
|
||||||
|
|
||||||
IsTouchInputDevice = function()
|
IsTouchInputDevice = function()
|
||||||
{
|
{
|
||||||
if (("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch)
|
if (("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch)
|
||||||
|
@ -36,12 +36,24 @@ Grocy.Components.ProductPicker.Clear = function()
|
|||||||
|
|
||||||
Grocy.Components.ProductPicker.InProductAddWorkflow = function()
|
Grocy.Components.ProductPicker.InProductAddWorkflow = function()
|
||||||
{
|
{
|
||||||
return typeof GetUriParam('createdproduct') !== "undefined" || typeof GetUriParam('product') !== "undefined";
|
return GetUriParam('flow') == "InplaceNewProductWithName";
|
||||||
}
|
}
|
||||||
|
|
||||||
Grocy.Components.ProductPicker.InProductModifyWorkflow = function()
|
Grocy.Components.ProductPicker.InProductModifyWorkflow = function()
|
||||||
{
|
{
|
||||||
return typeof GetUriParam('addbarcodetoselection') !== "undefined";
|
return GetUriParam('flow') == "InplaceAddBarcodeToExistingProduct";
|
||||||
|
}
|
||||||
|
|
||||||
|
Grocy.Components.ProductPicker.InAnyFlow = function()
|
||||||
|
{
|
||||||
|
return Grocy.Components.ProductPicker.InProductAddWorkflow() || Grocy.Components.ProductPicker.InProductModifyWorkflow();
|
||||||
|
}
|
||||||
|
|
||||||
|
Grocy.Components.ProductPicker.FinishFlow = function()
|
||||||
|
{
|
||||||
|
RemoveUriParam("flow");
|
||||||
|
RemoveUriParam("barcode");
|
||||||
|
RemoveUriParam("product-name");
|
||||||
}
|
}
|
||||||
|
|
||||||
Grocy.Components.ProductPicker.ShowCustomError = function(text)
|
Grocy.Components.ProductPicker.ShowCustomError = function(text)
|
||||||
@ -76,7 +88,7 @@ $('.product-combobox').combobox({
|
|||||||
clearIfNoMatch: false
|
clearIfNoMatch: false
|
||||||
});
|
});
|
||||||
|
|
||||||
var prefillProduct = GetUriParam('createdproduct');
|
var prefillProduct = GetUriParam('product-name');
|
||||||
var prefillProduct2 = Grocy.Components.ProductPicker.GetPicker().parent().data('prefill-by-name').toString();
|
var prefillProduct2 = Grocy.Components.ProductPicker.GetPicker().parent().data('prefill-by-name').toString();
|
||||||
if (!prefillProduct2.isEmpty())
|
if (!prefillProduct2.isEmpty())
|
||||||
{
|
{
|
||||||
@ -117,11 +129,10 @@ if (typeof prefillProductId !== "undefined")
|
|||||||
nextInputElement.focus();
|
nextInputElement.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
var addBarcode = GetUriParam('addbarcodetoselection');
|
if (GetUriParam("flow") === "InplaceAddBarcodeToExistingProduct")
|
||||||
if (addBarcode !== undefined)
|
|
||||||
{
|
{
|
||||||
$('#addbarcodetoselection').text(addBarcode);
|
$('#InplaceAddBarcodeToExistingProduct').text(GetUriParam("barcode"));
|
||||||
$('#flow-info-addbarcodetoselection').removeClass('d-none');
|
$('#flow-info-InplaceAddBarcodeToExistingProduct').removeClass('d-none');
|
||||||
$('#barcode-lookup-disabled-hint').removeClass('d-none');
|
$('#barcode-lookup-disabled-hint').removeClass('d-none');
|
||||||
$('#barcode-lookup-hint').addClass('d-none');
|
$('#barcode-lookup-hint').addClass('d-none');
|
||||||
}
|
}
|
||||||
@ -138,7 +149,7 @@ $('#product_id_text_input').on('blur', function(e)
|
|||||||
var input = $('#product_id_text_input').val().toString();
|
var input = $('#product_id_text_input').val().toString();
|
||||||
var possibleOptionElement = $("#product_id option[data-additional-searchdata*=\"" + input + ",\"]").first();
|
var possibleOptionElement = $("#product_id option[data-additional-searchdata*=\"" + input + ",\"]").first();
|
||||||
|
|
||||||
if (GetUriParam('addbarcodetoselection') === undefined && input.length > 0 && possibleOptionElement.length > 0)
|
if (GetUriParam('flow') === undefined && input.length > 0 && possibleOptionElement.length > 0)
|
||||||
{
|
{
|
||||||
$('#product_id').val(possibleOptionElement.val());
|
$('#product_id').val(possibleOptionElement.val());
|
||||||
$('#product_id').attr("barcode", input);
|
$('#product_id').attr("barcode", input);
|
||||||
@ -153,7 +164,7 @@ $('#product_id_text_input').on('blur', function(e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
var optionElement = $("#product_id option:contains(\"" + input + "\")").first();
|
var optionElement = $("#product_id option:contains(\"" + input + "\")").first();
|
||||||
if (input.length > 0 && optionElement.length === 0 && typeof GetUriParam('addbarcodetoselection') === "undefined" && Grocy.Components.ProductPicker.GetPicker().parent().data('disallow-all-product-workflows').toString() === "false")
|
if (input.length > 0 && optionElement.length === 0 && GetUriParam('flow') === undefined && Grocy.Components.ProductPicker.GetPicker().parent().data('disallow-all-product-workflows').toString() === "false")
|
||||||
{
|
{
|
||||||
var addProductWorkflowsAdditionalCssClasses = "";
|
var addProductWorkflowsAdditionalCssClasses = "";
|
||||||
if (Grocy.Components.ProductPicker.GetPicker().parent().data('disallow-add-product-workflows').toString() === "true")
|
if (Grocy.Components.ProductPicker.GetPicker().parent().data('disallow-add-product-workflows').toString() === "true")
|
||||||
@ -189,7 +200,7 @@ $('#product_id_text_input').on('blur', function(e)
|
|||||||
callback: function()
|
callback: function()
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.PopupOpen = false;
|
Grocy.Components.ProductPicker.PopupOpen = false;
|
||||||
window.location.href = U('/product/new?prefillname=' + encodeURIComponent(input) + '&returnto=' + encodeURIComponent(Grocy.CurrentUrlRelative));
|
window.location.href = U('/product/new?flow=InplaceNewProductWithName&name=' + encodeURIComponent(input) + '&returnto=' + encodeURIComponent(Grocy.CurrentUrlRelative + "?flow=InplaceNewProductWithName"));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addbarcode: {
|
addbarcode: {
|
||||||
@ -198,7 +209,7 @@ $('#product_id_text_input').on('blur', function(e)
|
|||||||
callback: function()
|
callback: function()
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.PopupOpen = false;
|
Grocy.Components.ProductPicker.PopupOpen = false;
|
||||||
window.location.href = U(Grocy.CurrentUrlRelative + '?addbarcodetoselection=' + encodeURIComponent(input));
|
window.location.href = U(Grocy.CurrentUrlRelative + '?flow=InplaceAddBarcodeToExistingProduct&barcode=' + encodeURIComponent(input));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addnewproductwithbarcode: {
|
addnewproductwithbarcode: {
|
||||||
@ -207,7 +218,7 @@ $('#product_id_text_input').on('blur', function(e)
|
|||||||
callback: function()
|
callback: function()
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.PopupOpen = false;
|
Grocy.Components.ProductPicker.PopupOpen = false;
|
||||||
window.location.href = U('/product/new?prefillbarcode=' + encodeURIComponent(input) + '&returnto=' + encodeURIComponent(Grocy.CurrentUrlRelative));
|
window.location.href = U('/product/new?flow=InplaceNewProductWithBarcode&barcode=' + encodeURIComponent(input) + '&returnto=' + encodeURIComponent(Grocy.CurrentUrlRelative + "?flow=InplaceAddBarcodeToExistingProduct&barcode=" + input));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,17 +42,16 @@
|
|||||||
|
|
||||||
bookingResponse = result;
|
bookingResponse = result;
|
||||||
|
|
||||||
var addBarcode = GetUriParam('addbarcodetoselection');
|
if (GetUriParam("flow") === "InplaceAddBarcodeToExistingProduct")
|
||||||
if (addBarcode !== undefined)
|
|
||||||
{
|
{
|
||||||
var jsonDataBarcode = {};
|
var jsonDataBarcode = {};
|
||||||
jsonDataBarcode.barcode = addBarcode;
|
jsonDataBarcode.barcode = GetUriParam("barcode");
|
||||||
jsonDataBarcode.product_id = jsonForm.product_id;
|
jsonDataBarcode.product_id = jsonForm.product_id;
|
||||||
|
|
||||||
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
$("#flow-info-addbarcodetoselection").addClass("d-none");
|
$("#flow-info-InplaceAddBarcodeToExistingProduct").addClass("d-none");
|
||||||
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
||||||
$('#barcode-lookup-hint').removeClass('d-none');
|
$('#barcode-lookup-hint').removeClass('d-none');
|
||||||
window.history.replaceState({}, document.title, U("/consume"));
|
window.history.replaceState({}, document.title, U("/consume"));
|
||||||
@ -90,6 +89,7 @@
|
|||||||
{
|
{
|
||||||
Grocy.FrontendHelpers.EndUiBusy("consume-form");
|
Grocy.FrontendHelpers.EndUiBusy("consume-form");
|
||||||
toastr.success(successMessage);
|
toastr.success(successMessage);
|
||||||
|
Grocy.Components.ProductPicker.FinishFlow();
|
||||||
|
|
||||||
Grocy.Components.ProductAmountPicker.Reset();
|
Grocy.Components.ProductAmountPicker.Reset();
|
||||||
$("#display_amount").attr("min", "1");
|
$("#display_amount").attr("min", "1");
|
||||||
|
@ -39,18 +39,17 @@
|
|||||||
{
|
{
|
||||||
bookingResponse = result;
|
bookingResponse = result;
|
||||||
|
|
||||||
var addBarcode = GetUriParam('addbarcodetoselection');
|
if (GetUriParam("flow") === "InplaceAddBarcodeToExistingProduct")
|
||||||
if (addBarcode !== undefined)
|
|
||||||
{
|
{
|
||||||
var jsonDataBarcode = {};
|
var jsonDataBarcode = {};
|
||||||
jsonDataBarcode.barcode = addBarcode;
|
jsonDataBarcode.barcode = GetUriParam("barcode");
|
||||||
jsonDataBarcode.product_id = jsonForm.product_id;
|
jsonDataBarcode.product_id = jsonForm.product_id;
|
||||||
jsonDataBarcode.shopping_location_id = jsonForm.shopping_location_id;
|
jsonDataBarcode.shopping_location_id = jsonForm.shopping_location_id;
|
||||||
|
|
||||||
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
$("#flow-info-addbarcodetoselection").addClass("d-none");
|
$("#flow-info-InplaceAddBarcodeToExistingProduct").addClass("d-none");
|
||||||
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
||||||
$('#barcode-lookup-hint').removeClass('d-none');
|
$('#barcode-lookup-hint').removeClass('d-none');
|
||||||
window.history.replaceState({}, document.title, U("/inventory"));
|
window.history.replaceState({}, document.title, U("/inventory"));
|
||||||
@ -78,6 +77,7 @@
|
|||||||
{
|
{
|
||||||
Grocy.FrontendHelpers.EndUiBusy("inventory-form");
|
Grocy.FrontendHelpers.EndUiBusy("inventory-form");
|
||||||
toastr.success(successMessage);
|
toastr.success(successMessage);
|
||||||
|
Grocy.Components.ProductPicker.FinishFlow();
|
||||||
|
|
||||||
Grocy.Components.ProductAmountPicker.Reset();
|
Grocy.Components.ProductAmountPicker.Reset();
|
||||||
$('#inventory-change-info').addClass('d-none');
|
$('#inventory-change-info').addClass('d-none');
|
||||||
@ -189,13 +189,18 @@ $('#display_amount').val('');
|
|||||||
$(".input-group-productamountpicker").trigger("change");
|
$(".input-group-productamountpicker").trigger("change");
|
||||||
Grocy.FrontendHelpers.ValidateForm('inventory-form');
|
Grocy.FrontendHelpers.ValidateForm('inventory-form');
|
||||||
|
|
||||||
if (Grocy.Components.ProductPicker.InProductAddWorkflow() === false)
|
if (Grocy.Components.ProductPicker.InAnyFlow() === false)
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.GetInputElement().focus();
|
Grocy.Components.ProductPicker.GetInputElement().focus();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.GetPicker().trigger('change');
|
Grocy.Components.ProductPicker.GetPicker().trigger('change');
|
||||||
|
|
||||||
|
if (Grocy.Components.ProductPicker.InProductModifyWorkflow())
|
||||||
|
{
|
||||||
|
Grocy.Components.ProductPicker.GetInputElement().focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#display_amount').on('focus', function(e)
|
$('#display_amount').on('focus', function(e)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
function saveProductPicture(result, location, jsonData)
|
function saveProductPicture(result, location, jsonData)
|
||||||
{
|
{
|
||||||
var productId = Grocy.EditObjectId || result.created_object_id;
|
var productId = Grocy.EditObjectId || result.created_object_id;
|
||||||
|
|
||||||
Grocy.Components.UserfieldsForm.Save(() =>
|
Grocy.Components.UserfieldsForm.Save(() =>
|
||||||
{
|
{
|
||||||
if (jsonData.hasOwnProperty("picture_file_name") && !Grocy.DeleteProductPictureOnSave)
|
if (jsonData.hasOwnProperty("picture_file_name") && !Grocy.DeleteProductPictureOnSave)
|
||||||
@ -21,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
else if (returnTo !== undefined)
|
else if (returnTo !== undefined)
|
||||||
{
|
{
|
||||||
window.location.href = U(returnTo) + '?createdproduct=' + encodeURIComponent($('#name').val());
|
window.location.href = U(returnTo) + '&product-name=' + encodeURIComponent($('#name').val());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -51,7 +52,7 @@
|
|||||||
}
|
}
|
||||||
else if (returnTo !== undefined)
|
else if (returnTo !== undefined)
|
||||||
{
|
{
|
||||||
window.location.href = U(returnTo) + '?createdproduct=' + encodeURIComponent($('#name').val());
|
window.location.href = U(returnTo) + '&product-name=' + encodeURIComponent($('#name').val());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -123,7 +124,9 @@ $('.save-product-button').on('click', function(e)
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
Grocy.Api.Get('stock/products/' + Grocy.EditObjectId,
|
if (Grocy.EditMode == "edit")
|
||||||
|
{
|
||||||
|
Grocy.Api.Get('stock/products/' + Grocy.EditObjectId,
|
||||||
function(productDetails)
|
function(productDetails)
|
||||||
{
|
{
|
||||||
if (productDetails.last_purchased == null)
|
if (productDetails.last_purchased == null)
|
||||||
@ -135,16 +138,20 @@ Grocy.Api.Get('stock/products/' + Grocy.EditObjectId,
|
|||||||
{
|
{
|
||||||
console.error(xhr);
|
console.error(xhr);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
var prefillName = GetUriParam('prefillname');
|
if (GetUriParam("flow") == "InplaceNewProductWithName")
|
||||||
if (prefillName !== undefined)
|
|
||||||
{
|
{
|
||||||
$('#name').val(prefillName);
|
$('#name').val(GetUriParam("name"));
|
||||||
$('#name').focus();
|
$('#name').focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
var prefillBarcode = GetUriParam('prefillbarcode');
|
if (GetUriParam("flow") !== undefined)
|
||||||
|
{
|
||||||
|
$("#save-hint").addClass("d-none");
|
||||||
|
$(".save-product-button[data-location='return']").addClass("d-none");
|
||||||
|
}
|
||||||
|
|
||||||
$('.input-group-qu').on('change', function(e)
|
$('.input-group-qu').on('change', function(e)
|
||||||
{
|
{
|
||||||
@ -171,6 +178,7 @@ $('#product-form input').keyup(function(event)
|
|||||||
{
|
{
|
||||||
Grocy.FrontendHelpers.ValidateForm('product-form');
|
Grocy.FrontendHelpers.ValidateForm('product-form');
|
||||||
$(".input-group-qu").trigger("change");
|
$(".input-group-qu").trigger("change");
|
||||||
|
$("#product-form select").trigger("select");
|
||||||
|
|
||||||
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
||||||
{
|
{
|
||||||
@ -180,42 +188,11 @@ $('#product-form input').keyup(function(event)
|
|||||||
{
|
{
|
||||||
$("#qu-conversion-add-button").removeClass("disabled");
|
$("#qu-conversion-add-button").removeClass("disabled");
|
||||||
}
|
}
|
||||||
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
|
||||||
{
|
|
||||||
$("#barcode-add-button").addClass("disabled");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (prefillBarcode === undefined)
|
|
||||||
{
|
|
||||||
$("#barcode-add-button").removeClass("disabled");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#product-form select').change(function(event)
|
|
||||||
{
|
|
||||||
Grocy.FrontendHelpers.ValidateForm('product-form');
|
|
||||||
|
|
||||||
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
||||||
{
|
{
|
||||||
$("#barcode-add-button").addClass("disabled");
|
$("#barcode-add-button").addClass("disabled");
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (prefillBarcode === undefined)
|
|
||||||
{
|
|
||||||
$("#barcode-add-button").removeClass("disabled");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (document.getElementById('product-form').checkValidity() === false) //There is at least one validation error
|
|
||||||
{
|
|
||||||
$("#qu-conversion-add-button").addClass("disabled");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$("#qu-conversion-add-button").removeClass("disabled");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#location_id').change(function(event)
|
$('#location_id').change(function(event)
|
||||||
|
@ -58,18 +58,17 @@
|
|||||||
Grocy.UISound.Success();
|
Grocy.UISound.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
var addBarcode = GetUriParam('addbarcodetoselection');
|
if (GetUriParam("flow") == "InplaceAddBarcodeToExistingProduct")
|
||||||
if (addBarcode !== undefined)
|
|
||||||
{
|
{
|
||||||
var jsonDataBarcode = {};
|
var jsonDataBarcode = {};
|
||||||
jsonDataBarcode.barcode = addBarcode;
|
jsonDataBarcode.barcode = GetUriParam("barcode");
|
||||||
jsonDataBarcode.product_id = jsonForm.product_id;
|
jsonDataBarcode.product_id = jsonForm.product_id;
|
||||||
jsonDataBarcode.shopping_location_id = jsonForm.shopping_location_id;
|
jsonDataBarcode.shopping_location_id = jsonForm.shopping_location_id;
|
||||||
|
|
||||||
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
$("#flow-info-addbarcodetoselection").addClass("d-none");
|
$("#flow-info-InplaceAddBarcodeToExistingProduct").addClass("d-none");
|
||||||
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
||||||
$('#barcode-lookup-hint').removeClass('d-none');
|
$('#barcode-lookup-hint').removeClass('d-none');
|
||||||
window.history.replaceState({}, document.title, U("/purchase"));
|
window.history.replaceState({}, document.title, U("/purchase"));
|
||||||
@ -96,6 +95,7 @@
|
|||||||
{
|
{
|
||||||
Grocy.FrontendHelpers.EndUiBusy("purchase-form");
|
Grocy.FrontendHelpers.EndUiBusy("purchase-form");
|
||||||
toastr.success(successMessage);
|
toastr.success(successMessage);
|
||||||
|
Grocy.Components.ProductPicker.FinishFlow();
|
||||||
|
|
||||||
Grocy.Components.ProductAmountPicker.Reset();
|
Grocy.Components.ProductAmountPicker.Reset();
|
||||||
$("#display_amount").attr("min", "1");
|
$("#display_amount").attr("min", "1");
|
||||||
@ -325,13 +325,18 @@ Grocy.FrontendHelpers.ValidateForm('purchase-form');
|
|||||||
|
|
||||||
if (Grocy.Components.ProductPicker)
|
if (Grocy.Components.ProductPicker)
|
||||||
{
|
{
|
||||||
if (Grocy.Components.ProductPicker.InProductAddWorkflow() === false)
|
if (Grocy.Components.ProductPicker.InAnyFlow() === false)
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.GetInputElement().focus();
|
Grocy.Components.ProductPicker.GetInputElement().focus();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Grocy.Components.ProductPicker.GetPicker().trigger('change');
|
Grocy.Components.ProductPicker.GetPicker().trigger('change');
|
||||||
|
|
||||||
|
if (Grocy.Components.ProductPicker.InProductModifyWorkflow())
|
||||||
|
{
|
||||||
|
Grocy.Components.ProductPicker.GetInputElement().focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,19 +25,18 @@
|
|||||||
Grocy.Api.Post(apiUrl, jsonData,
|
Grocy.Api.Post(apiUrl, jsonData,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
var addBarcode = GetUriParam('addbarcodetoselection');
|
|
||||||
bookingResponse = result;
|
bookingResponse = result;
|
||||||
|
|
||||||
if (addBarcode !== undefined)
|
if (GetUriParam("flow") === "InplaceAddBarcodeToExistingProduct")
|
||||||
{
|
{
|
||||||
var jsonDataBarcode = {};
|
var jsonDataBarcode = {};
|
||||||
jsonDataBarcode.barcode = addBarcode;
|
jsonDataBarcode.barcode = GetUriParam("barcode");
|
||||||
jsonDataBarcode.product_id = jsonForm.product_id;
|
jsonDataBarcode.product_id = jsonForm.product_id;
|
||||||
|
|
||||||
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
Grocy.Api.Post('objects/product_barcodes', jsonDataBarcode,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
$("#flow-info-addbarcodetoselection").addClass("d-none");
|
$("#flow-info-InplaceAddBarcodeToExistingProduct").addClass("d-none");
|
||||||
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
$('#barcode-lookup-disabled-hint').addClass('d-none');
|
||||||
$('#barcode-lookup-hint').removeClass('d-none');
|
$('#barcode-lookup-hint').removeClass('d-none');
|
||||||
window.history.replaceState({}, document.title, U("/transfer"));
|
window.history.replaceState({}, document.title, U("/transfer"));
|
||||||
@ -69,6 +68,7 @@
|
|||||||
{
|
{
|
||||||
Grocy.FrontendHelpers.EndUiBusy("transfer-form");
|
Grocy.FrontendHelpers.EndUiBusy("transfer-form");
|
||||||
toastr.success(successMessage);
|
toastr.success(successMessage);
|
||||||
|
Grocy.Components.ProductPicker.FinishFlow();
|
||||||
|
|
||||||
if (parseInt($("#location_id_from option:selected").attr("data-is-freezer")) === 0 && parseInt($("#location_id_to option:selected").attr("data-is-freezer")) === 1) // Frozen
|
if (parseInt($("#location_id_from option:selected").attr("data-is-freezer")) === 0 && parseInt($("#location_id_to option:selected").attr("data-is-freezer")) === 1) // Frozen
|
||||||
{
|
{
|
||||||
|
@ -60,8 +60,8 @@
|
|||||||
<div class="invalid-feedback">{{ $__t('You have to select a product') }}</div>
|
<div class="invalid-feedback">{{ $__t('You have to select a product') }}</div>
|
||||||
<div id="custom-productpicker-error"
|
<div id="custom-productpicker-error"
|
||||||
class="form-text text-danger d-none"></div>
|
class="form-text text-danger d-none"></div>
|
||||||
<div id="flow-info-addbarcodetoselection"
|
<div id="flow-info-InplaceAddBarcodeToExistingProduct"
|
||||||
class="form-text text-info small d-none"><strong><span id="addbarcodetoselection"></span></strong> {{ $__t('will be added to the list of barcodes for the selected product on submit') }}</div>
|
class="form-text text-info small d-none"><strong><span id="InplaceAddBarcodeToExistingProduct"></span></strong> {{ $__t('will be added to the list of barcodes for the selected product on submit') }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@include('components.barcodescanner')
|
@include('components.barcodescanner')
|
||||||
|
@ -356,7 +356,8 @@
|
|||||||
'entity' => 'products'
|
'entity' => 'products'
|
||||||
))
|
))
|
||||||
|
|
||||||
<small class="my-2 form-text text-muted @if($mode == 'edit') d-none @endif">{{ $__t('Save & continue to add quantity unit conversions & barcodes') }}</small>
|
<small id="save-hint"
|
||||||
|
class="my-2 form-text text-muted @if($mode == 'edit') d-none @endif">{{ $__t('Save & continue to add quantity unit conversions & barcodes') }}</small>
|
||||||
|
|
||||||
<button id="save-product-button"
|
<button id="save-product-button"
|
||||||
class="save-product-button btn btn-success mb-2"
|
class="save-product-button btn btn-success mb-2"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user