From 3c98cd87a75bd16257d433644990be573710188e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 19 Sep 2019 23:29:03 +1000 Subject: [PATCH] Use localStorage rather than sessionStorage for storing user prefs - Also create some helper functions --- .../static/script/inventree/inventree.js | 43 +++++++++++++++++++ InvenTree/part/templates/part/category.html | 6 +-- InvenTree/stock/templates/stock/location.html | 6 +-- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js index 703c49218b..390aba92ab 100644 --- a/InvenTree/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/InvenTree/static/script/inventree/inventree.js @@ -136,4 +136,47 @@ function imageHoverIcon(url) { `; return html; +} + +function inventreeSave(name, value) { + /* + * Save a key:value pair to local storage + */ + + var key = "inventree-" + name; + localStorage.setItem(key, value); +} + +function inventreeLoad(name) { + /* + * Retrieve a key:value pair from local storage + */ + + var key = "inventree-" + name; + + return localStorage.getItem(key); +} + +function inventreeLoadInt(name) { + /* + * Retrieve a value from local storage, and attempt to cast to integer + */ + + var data = inventreeLoad(name); + + return parseInt(data, 10); +} + +function inventreeLoadFloat(name) { + + var data = inventreeLoad(name); + + return parseFloat(data); +} + +function inventreeDel(name) { + + var key = 'inventree-' + name; + + localStorage.removeItem(key); } \ No newline at end of file diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index d9913482fd..f48e06e6d7 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -67,16 +67,16 @@ {% block js_ready %} {{ block.super }} - if (sessionStorage.getItem("inventree-show-part-categories")) { + if (inventreeLoadInt("show-part-cats") == 1) { $("#collapse-item-categories").collapse('show'); } $("#collapse-item-categories").on('shown.bs.collapse', function() { - sessionStorage.setItem('inventree-show-part-categories', 1); + inventreeSave('show-part-cats', 1); }); $("#collapse-item-categories").on('hidden.bs.collapse', function() { - sessionStorage.removeItem('inventree-show-part-categories'); + inventreeDel('show-part-cats'); }); $("#cat-create").click(function() { diff --git a/InvenTree/stock/templates/stock/location.html b/InvenTree/stock/templates/stock/location.html index 6a0d05cfcc..929dd7baf8 100644 --- a/InvenTree/stock/templates/stock/location.html +++ b/InvenTree/stock/templates/stock/location.html @@ -55,16 +55,16 @@ {% block js_ready %} {{ block.super }} - if (sessionStorage.getItem("inventree-show-part-locations")) { + if (inventreeLoadInt("show-part-locs") == 1) { $("#collapse-item-locations").collapse('show'); } $("#collapse-item-locations").on('shown.bs.collapse', function() { - sessionStorage.setItem('inventree-show-part-locations', 1); + inventreeSave('show-part-locs', 1); }); $("#collapse-item-locations").on('hidden.bs.collapse', function() { - sessionStorage.removeItem('inventree-show-part-locations'); + inventreeDel('show-part-locs'); }); $("#stock-export").click(function() {