diff --git a/InvenTree/InvenTree/static/script/inventree/filters.js b/InvenTree/InvenTree/static/script/inventree/filters.js index 989d97643b..f1653a860a 100644 --- a/InvenTree/InvenTree/static/script/inventree/filters.js +++ b/InvenTree/InvenTree/static/script/inventree/filters.js @@ -294,7 +294,7 @@ function setupFilterList(tableKey, table, target) { var filters = addTableFilter(tableKey, tag, val); - reloadStockTable(table, filters); + reloadTable(table, filters); // Run this function again setupFilterList(tableKey, table, target); @@ -311,7 +311,7 @@ function setupFilterList(tableKey, table, target) { element.find(`#${clear}`).click(function() { var filters = clearTableFilters(tableKey); - reloadStockTable(table, filters); + reloadTable(table, filters); setupFilterList(tableKey, table, target); }); @@ -324,7 +324,7 @@ function setupFilterList(tableKey, table, target) { var filters = removeTableFilter(tableKey, filter); - reloadStockTable(table, filters); + reloadTable(table, filters); // Run this function again! setupFilterList(tableKey, table, target); diff --git a/InvenTree/InvenTree/static/script/inventree/stock.js b/InvenTree/InvenTree/static/script/inventree/stock.js index 5a098294fe..58eeefaf41 100644 --- a/InvenTree/InvenTree/static/script/inventree/stock.js +++ b/InvenTree/InvenTree/static/script/inventree/stock.js @@ -30,39 +30,6 @@ function removeStockRow(e) { } -function reloadStockTable(table, filters) { - /* Reload the stock table. - * - * 'original' is the original query params provided to the - * 'loadStockTable' function. - * These override any user-configured filters. - */ - - - // Override the queryParams for the table - var options = table.bootstrapTable('getOptions'); - - var params = {}; - - var filters = loadTableFilters("stock"); - - for (var key in filters) { - params[key] = filters[key]; - } - - // Original parameters will override - for (var key in options.original) { - params[key] = options.original[key]; - } - - options.queryParams = params; - - table.bootstrapTable('refreshOptions', options); - table.bootstrapTable('refresh'); -} - - - function loadStockTable(table, options) { /* Load data into a stock table with adjustable options. * Fetches data (via AJAX) and loads into a bootstrap table. diff --git a/InvenTree/InvenTree/static/script/inventree/tables.js b/InvenTree/InvenTree/static/script/inventree/tables.js index 3b2279e18e..0280b7cdd4 100644 --- a/InvenTree/InvenTree/static/script/inventree/tables.js +++ b/InvenTree/InvenTree/static/script/inventree/tables.js @@ -44,6 +44,42 @@ function isNumeric(n) { } +/* + * Reload a table which has already been made into a bootstrap table. + * New filters can be optionally provided, to change the query params. + */ +function reloadTable(table, filters) { + + // Simply perform a refresh + if (filters == null) { + table.bootstrapTable('refresh'); + return; + } + + // More complex refresh with new filters supplied + var options = table.bootstrapTable('getOptions'); + + // Construct a new list of filters to use for the query + var params = {}; + + for (var key in filters) { + params[key] = filters[key]; + } + + // Original query params will override + if (options.original != null) { + for (var key in options.original) { + params[key] = options.original[key]; + } + } + + options.queryParams = params; + + table.bootstrapTable('refreshOptions', options); + table.bootstrapTable('refresh'); +} + + /* Wrapper function for bootstrapTable. * Sets some useful defaults, and manage persistent settings. */