2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-19 05:25:42 +00:00

Add dialog for selection of stock location labels

This commit is contained in:
Oliver Walters
2021-01-11 17:22:04 +11:00
parent 79b63e6d30
commit af47b211fd
2 changed files with 75 additions and 12 deletions

View File

@ -8,7 +8,7 @@ function printStockItemLabels(items, options={}) {
if (items.length == 0) {
showAlertDialog(
'{% trans "Select Stock Items" %}',
'{% trans "Stock items must be selected before printing labels" %}'
'{% trans "Stock item(s) must be selected before printing labels" %}'
);
return;
@ -29,16 +29,76 @@ function printStockItemLabels(items, options={}) {
'{% trans "No Labels Found" %}',
'{% trans "No labels found which match selected stock item(s)" %}',
);
return;
}
// Select label to print
selectLabel(response, items);
selectLabel(
response,
items,
{
success: function(pk) {
var href = `/api/label/stock/${pk}/print/?`;
items.forEach(function(item) {
href += `items[]=${item}&`;
});
window.location.href = href;
}
}
);
}
}
);
}
function printStockLocationLabels(locations, options={}) {
if (locations.length == 0) {
showAlertDialog(
'{% trans "Select Stock Locations" %}',
'{% trans "Stock location(s) must be selected before printing labels" %}'
);
return;
}
// Request available labels from the server
inventreeGet(
'{% url "api-stocklocation-label-list" %}',
{
enabled: true,
locations: locations,
},
{
success: function(response) {
if (response.length == 0) {
showAlertDialog(
'{% trans "No Labels Found" %}',
'{% trans "No labels found which match selected stock location(s)" %}',
);
return;
}
// Select label to print
selectLabel(
response,
locations,
{
success: function(pk) {
// TODO - Print the label!
}
}
);
}
}
)
}
function selectLabel(labels, items, options={}) {
/**
* Present the user with the available labels,
@ -48,8 +108,6 @@ function selectLabel(labels, items, options={}) {
* (via AJAX) from the server.
*/
var stock_items = items;
var modal = options.modal || '#modal-form';
var label_list = makeOptionsList(
@ -102,12 +160,8 @@ function selectLabel(labels, items, options={}) {
closeModal(modal);
var href = `/api/label/stock/${pk}/print/?`;
stock_items.forEach(function(item) {
href += `items[]=${item}&`;
});
window.location.href = href;
if (options.success) {
options.success(pk);
}
});
}