mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Load / save stock table filters in session storage
This commit is contained in:
parent
eeeb04c9f4
commit
5aa43a5a18
@ -14,6 +14,48 @@ function getStockLocations(filters={}, options={}) {
|
|||||||
return inventreeGet('/api/stock/location/', filters, options)
|
return inventreeGet('/api/stock/location/', filters, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadStockFilters() {
|
||||||
|
// Load the stock table filters from session-storage
|
||||||
|
var filterstring = inventreeLoad("stockfilters", "cascade=true&loc=1");
|
||||||
|
|
||||||
|
var split = filterstring.split("&");
|
||||||
|
|
||||||
|
var filters = {};
|
||||||
|
|
||||||
|
console.log("Loaded stock filters: " + filterstring);
|
||||||
|
|
||||||
|
split.forEach(function(item, index) {
|
||||||
|
var f = item.split('=');
|
||||||
|
|
||||||
|
if (f.length == 2) {
|
||||||
|
filters[f[0]] = f[1];
|
||||||
|
} else {
|
||||||
|
console.log("Improperly formatted filter: " + item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return filters;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function saveStockFilters(filters) {
|
||||||
|
// Save the stock table filters to session storage
|
||||||
|
|
||||||
|
var strings = [];
|
||||||
|
|
||||||
|
for (var key in filters) {
|
||||||
|
strings.push(key + "=" + filters[key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var filterstring = strings.join('&');
|
||||||
|
|
||||||
|
console.log("Saving stock filters: " + filterstring);
|
||||||
|
|
||||||
|
inventreeSave("stockfilters", filterstring);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Functions for interacting with stock management forms
|
/* Functions for interacting with stock management forms
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -40,19 +82,23 @@ function loadStockTable(table, options) {
|
|||||||
* buttons - Which buttons to link to stock selection callbacks
|
* buttons - Which buttons to link to stock selection callbacks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// List of user-params which override the default filters
|
||||||
var params = options.params || {};
|
var params = options.params || {};
|
||||||
|
|
||||||
// Enforce 'cascade' option
|
var filters = loadStockFilters();
|
||||||
// TODO - Make this user-configurable?
|
|
||||||
params.cascade = true;
|
|
||||||
|
|
||||||
console.log('load stock table');
|
// Override the default values, or add new ones
|
||||||
|
for (var key in params) {
|
||||||
|
filters[key] = params[key];
|
||||||
|
}
|
||||||
|
|
||||||
table.inventreeTable({
|
table.inventreeTable({
|
||||||
method: 'get',
|
method: 'get',
|
||||||
formatNoMatches: function() {
|
formatNoMatches: function() {
|
||||||
return 'No stock items matching query';
|
return 'No stock items matching query';
|
||||||
},
|
},
|
||||||
|
url: options.url,
|
||||||
|
queryParams: filters,
|
||||||
customSort: customGroupSorter,
|
customSort: customGroupSorter,
|
||||||
groupBy: true,
|
groupBy: true,
|
||||||
groupByField: options.groupByField || 'part',
|
groupByField: options.groupByField || 'part',
|
||||||
@ -241,8 +287,6 @@ function loadStockTable(table, options) {
|
|||||||
title: 'Notes',
|
title: 'Notes',
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
url: options.url,
|
|
||||||
queryParams: params,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (options.buttons) {
|
if (options.buttons) {
|
||||||
|
Loading…
Reference in New Issue
Block a user