From 2f71233d6233ddc76f9347fb0b59725faba04dd1 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sat, 11 Apr 2020 14:47:41 +1000 Subject: [PATCH] More refactoring --- .../static/script/inventree/filters.js | 6 ++-- .../static/script/inventree/stock.js | 33 ----------------- .../static/script/inventree/tables.js | 36 +++++++++++++++++++ 3 files changed, 39 insertions(+), 36 deletions(-) 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. */