mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Save tree state 'per tree'
- Separate save state for Part and Stock tree
This commit is contained in:
parent
45223fb607
commit
bff0f30b13
@ -57,7 +57,8 @@ class PartCategory(InvenTreeTree):
|
||||
(including children of child categories)
|
||||
"""
|
||||
|
||||
return len(Part.objects.filter(category__in=self.getUniqueChildren()))
|
||||
return len(Part.objects.filter(category__in=self.getUniqueChildren(),
|
||||
active=True))
|
||||
|
||||
@property
|
||||
def has_parts(self):
|
||||
|
@ -34,7 +34,11 @@ InvenTree | Part List
|
||||
{% block js_ready %}
|
||||
{{ block.super }}
|
||||
loadTree("{% url 'api-part-tree' %}",
|
||||
"#part-tree");
|
||||
"#part-tree",
|
||||
{
|
||||
name: 'part',
|
||||
}
|
||||
);
|
||||
|
||||
$("#toggle-part-tree").click(function() {
|
||||
toggleSideNav("#sidenav");
|
||||
|
@ -19,6 +19,14 @@
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.treeview .badge {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.treeview .list-group-item {
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
/* Force select2 elements in modal forms to be full width */
|
||||
.select-full-width {
|
||||
width: 100%;
|
||||
|
@ -1,4 +1,26 @@
|
||||
function loadTree(url, tree, data) {
|
||||
function loadTree(url, tree, options={}) {
|
||||
/* Load the side-nav tree view
|
||||
|
||||
Args:
|
||||
url: URL to request tree data
|
||||
tree: html ref to treeview
|
||||
options:
|
||||
data: data object to pass to the AJAX request
|
||||
selected: ID of currently selected item
|
||||
name: name of the tree
|
||||
*/
|
||||
|
||||
var data = {};
|
||||
|
||||
if (options.data) {
|
||||
data = options.data;
|
||||
}
|
||||
|
||||
var key = "inventree-sidenav-items-";
|
||||
|
||||
if (options.name) {
|
||||
key += options.name;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
@ -13,11 +35,13 @@ function loadTree(url, tree, data) {
|
||||
showTags: true,
|
||||
});
|
||||
|
||||
var saved_exp = sessionStorage.getItem('inventree-sidenav-expanded-items').split(",");
|
||||
if (sessionStorage.getItem(key)) {
|
||||
var saved_exp = sessionStorage.getItem(key).split(",");
|
||||
|
||||
// Automatically expand the desired notes
|
||||
for (var q = 0; q < saved_exp.length; q++) {
|
||||
$(tree).treeview('expandNode', parseInt(saved_exp[q]));
|
||||
// Automatically expand the desired notes
|
||||
for (var q = 0; q < saved_exp.length; q++) {
|
||||
$(tree).treeview('expandNode', parseInt(saved_exp[q]));
|
||||
}
|
||||
}
|
||||
|
||||
// Setup a callback whenever a node is toggled
|
||||
@ -33,7 +57,7 @@ function loadTree(url, tree, data) {
|
||||
}
|
||||
|
||||
// Save the expanded nodes
|
||||
sessionStorage.setItem('inventree-sidenav-expanded-items', exp);
|
||||
sessionStorage.setItem(key, exp);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
@ -33,7 +33,12 @@ InvenTree | Stock
|
||||
initSideNav();
|
||||
{{ block.super }}
|
||||
loadTree("{% url 'api-stock-tree' %}",
|
||||
"#stock-tree");
|
||||
"#stock-tree",
|
||||
{
|
||||
name: 'stock',
|
||||
selected: 'elab',
|
||||
}
|
||||
);
|
||||
|
||||
$("#toggle-stock-tree").click(function() {
|
||||
toggleSideNav("#sidenav");
|
||||
|
Loading…
Reference in New Issue
Block a user