diff --git a/InvenTree/templates/js/translated/api.js b/InvenTree/templates/js/translated/api.js
index 8b72e166a2..6ca4b2672d 100644
--- a/InvenTree/templates/js/translated/api.js
+++ b/InvenTree/templates/js/translated/api.js
@@ -14,6 +14,7 @@
*/
$.urlParam = function(name){
+ // eslint-disable-next-line no-useless-escape
var results = new RegExp('[\?&]' + name + '=([^]*)').exec(window.location.href);
if (results==null) {
return null;
diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js
index 26f3876af3..a1485c5adf 100644
--- a/InvenTree/templates/js/translated/build.js
+++ b/InvenTree/templates/js/translated/build.js
@@ -1,6 +1,33 @@
{% load i18n %}
{% load inventree_extras %}
+/* globals
+ buildStatusDisplay,
+ constructForm,
+ getFieldByName,
+ global_settings,
+ imageHoverIcon,
+ inventreeGet,
+ launchModalForm,
+ linkButtonsToSelection,
+ loadTableFilters,
+ makeIconBadge,
+ makeIconButton,
+ makePartIcons,
+ makeProgressBar,
+ renderLink,
+ setupFilterList,
+*/
+
+/* exported
+ editBuildOrder,
+ loadAllocationTable,
+ loadBuildOrderAllocationTable,
+ loadBuildOutputAllocationTable,
+ loadBuildPartsTable,
+ loadBuildTable,
+*/
+
function buildFormFields() {
return {
@@ -32,7 +59,7 @@ function buildFormFields() {
}
-function editBuildOrder(pk, options={}) {
+function editBuildOrder(pk) {
var fields = buildFormFields();
@@ -76,10 +103,10 @@ function makeBuildOutputActionButtons(output, buildInfo, lines) {
var buildId = buildInfo.pk;
+ var outputId = 'untracked';
+
if (output) {
outputId = output.pk;
- } else {
- outputId = 'untracked';
}
var panel = `#allocation-panel-${outputId}`;
@@ -400,10 +427,8 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
// Callback for 'buy' button
$(table).find('.button-buy').click(function() {
- var pk = $(this).attr('pk');
- var idx = $(this).closest('tr').attr('data-index');
- var row = $(table).bootstrapTable('getData')[idx];
+ var pk = $(this).attr('pk');
launchModalForm('{% url "order-parts" %}', {
data: {
@@ -573,8 +598,6 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
element.html(html);
- var lineItem = row;
-
var subTable = $(`#${subTableId}`);
subTable.bootstrapTable({
@@ -595,7 +618,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
width: '50%',
field: 'quantity',
title: '{% trans "Assigned Stock" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var text = '';
var url = '';
@@ -618,7 +641,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
{
field: 'location',
title: '{% trans "Location" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
if (row.stock_item_detail.location) {
var text = row.stock_item_detail.location_name;
var url = `/stock/location/${row.stock_item_detail.location}/`;
@@ -631,7 +654,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
},
{
field: 'actions',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
/* Actions available for a particular stock item allocation:
*
* - Edit the allocation quantity
@@ -678,7 +701,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
field: 'sub_part_detail.full_name',
title: '{% trans "Required Part" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var url = `/part/${row.sub_part}/`;
var thumb = row.sub_part_detail.thumbnail;
var name = row.sub_part_detail.full_name;
@@ -709,7 +732,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
field: 'allocated',
title: '{% trans "Allocated" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var allocated = 0;
if (row.allocations) {
@@ -757,7 +780,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) {
{
field: 'actions',
title: '{% trans "Actions" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
// Generate action buttons for this build output
var html = `
`;
@@ -846,7 +869,7 @@ function loadBuildTable(table, options) {
title: '{% trans "Build" %}',
sortable: true,
switchable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var prefix = global_settings.BUILDORDER_REFERENCE_PREFIX;
@@ -873,7 +896,7 @@ function loadBuildTable(table, options) {
title: '{% trans "Part" %}',
sortable: true,
sortName: 'part__name',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var html = imageHoverIcon(row.part_detail.thumbnail);
@@ -887,7 +910,7 @@ function loadBuildTable(table, options) {
field: 'quantity',
title: '{% trans "Completed" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
return makeProgressBar(
row.completed,
row.quantity,
@@ -901,7 +924,7 @@ function loadBuildTable(table, options) {
field: 'status',
title: '{% trans "Status" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value) {
return buildStatusDisplay(value);
},
},
@@ -914,7 +937,7 @@ function loadBuildTable(table, options) {
field: 'issued_by',
title: '{% trans "Issued by" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
if (value)
{
return row.issued_by_detail.username;
@@ -929,7 +952,7 @@ function loadBuildTable(table, options) {
field: 'responsible',
title: '{% trans "Responsible" %}',
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
if (value)
{
return row.responsible_detail.name;
@@ -991,21 +1014,21 @@ function loadAllocationTable(table, part_id, part, url, required, button) {
{
field: 'stock_item_detail',
title: '{% trans "Stock Item" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value) {
return '' + parseFloat(value.quantity) + ' x ' + value.part_name + ' @ ' + value.location_name;
}
},
{
field: 'stock_item_detail.quantity',
title: '{% trans "Available" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value) {
return parseFloat(value);
}
},
{
field: 'quantity',
title: '{% trans "Allocated" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var html = parseFloat(value);
var bEdit = "";
@@ -1028,7 +1051,7 @@ function loadAllocationTable(table, part_id, part, url, required, button) {
});
});
- table.on('load-success.bs.table', function(data) {
+ table.on('load-success.bs.table', function() {
// Extract table data
var results = table.bootstrapTable('getData');
@@ -1106,9 +1129,6 @@ function loadBuildPartsTable(table, options={}) {
$(table).find('.button-buy').click(function() {
var pk = $(this).attr('pk');
- var idx = $(this).closest('tr').attr('data-index');
- var row = $(table).bootstrapTable('getData')[idx];
-
launchModalForm('{% url "order-parts" %}', {
data: {
parts: [
@@ -1122,10 +1142,6 @@ function loadBuildPartsTable(table, options={}) {
$(table).find('.button-build').click(function() {
var pk = $(this).attr('pk');
- // Extract row data from the table
- var idx = $(this).closest('tr').attr('data-index');
- var row = $(table).bootstrapTable('getData')[idx];
-
newBuildOrder({
part: pk,
parent: options.build,
@@ -1139,7 +1155,7 @@ function loadBuildPartsTable(table, options={}) {
title: '{% trans "Part" %}',
switchable: false,
sortable: true,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
var url = `/part/${row.sub_part}/`;
var html = imageHoverIcon(row.sub_part_detail.thumbnail) + renderLink(row.sub_part_detail.full_name, url);
@@ -1177,7 +1193,7 @@ function loadBuildPartsTable(table, options={}) {
switchable: false,
field: 'sub_part_detail.stock',
title: '{% trans "Available" %}',
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
return makeProgressBar(
value,
row.quantity * options.build_remaining,
@@ -1201,7 +1217,7 @@ function loadBuildPartsTable(table, options={}) {
field: 'actions',
title: '{% trans "Actions" %}',
switchable: false,
- formatter: function(value, row, index, field) {
+ formatter: function(value, row) {
// Generate action buttons against the part
var html = `
`;
@@ -1228,7 +1244,7 @@ function loadBuildPartsTable(table, options={}) {
sortable: true,
search: true,
onPostBody: setupTableCallbacks,
- rowStyle: function(row, index) {
+ rowStyle: function(row) {
var classes = [];
// Shade rows differently if they are for different parent parts