mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Adds tree view for stock locations
This commit is contained in:
parent
be23634c5d
commit
8e1d9c281a
@ -120,6 +120,9 @@
|
|||||||
<h4>{% trans "Parts" %}</h4>
|
<h4>{% trans "Parts" %}</h4>
|
||||||
{% include "spacer.html" %}
|
{% include "spacer.html" %}
|
||||||
<div class='btn-group' role='group'>
|
<div class='btn-group' role='group'>
|
||||||
|
<button type='button' class='btn btn-outline-secondary' id='part-export' title='{% trans "Export Part Data" %}'>
|
||||||
|
<span class='fas fa-file-download'></span> {% trans "Export" %}
|
||||||
|
</button>
|
||||||
{% if roles.part.add %}
|
{% if roles.part.add %}
|
||||||
<button type='button' class='btn btn-success' id='part-create' title='{% trans "Create new part" %}'>
|
<button type='button' class='btn btn-success' id='part-create' title='{% trans "Create new part" %}'>
|
||||||
<span class='fas fa-plus-circle'></span> {% trans "New Part" %}
|
<span class='fas fa-plus-circle'></span> {% trans "New Part" %}
|
||||||
@ -131,9 +134,6 @@
|
|||||||
<div id='part-button-toolbar'>
|
<div id='part-button-toolbar'>
|
||||||
<div class='btn-group' role='group'>
|
<div class='btn-group' role='group'>
|
||||||
<div class='btn-group' role='group'>
|
<div class='btn-group' role='group'>
|
||||||
<button type='button' class='btn btn-outline-secondary' id='part-export' title='{% trans "Export Part Data" %}'>
|
|
||||||
<span class='fas fa-file-download'></span> {% trans "Export" %}
|
|
||||||
</button>
|
|
||||||
<button id='part-options' class='btn btn-primary dropdown-toggle' type='button' data-bs-toggle="dropdown">
|
<button id='part-options' class='btn btn-primary dropdown-toggle' type='button' data-bs-toggle="dropdown">
|
||||||
{% trans "Options" %}
|
{% trans "Options" %}
|
||||||
</button>
|
</button>
|
||||||
|
@ -1140,10 +1140,6 @@ function loadPartCategoryTable(table, options) {
|
|||||||
|
|
||||||
var params = options.params || {};
|
var params = options.params || {};
|
||||||
|
|
||||||
if (tree_view) {
|
|
||||||
params.cascade = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
var filterListElement = options.filterList || '#filter-list-category';
|
var filterListElement = options.filterList || '#filter-list-category';
|
||||||
|
|
||||||
var filters = {};
|
var filters = {};
|
||||||
|
@ -1438,7 +1438,19 @@ function loadStockLocationTable(table, options) {
|
|||||||
filters[key] = params[key];
|
filters[key] = params[key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var tree_view = inventreeLoad('location-tree-view') == 1;
|
||||||
|
|
||||||
table.inventreeTable({
|
table.inventreeTable({
|
||||||
|
treeEnable: tree_view,
|
||||||
|
rootParentId: options.params.parent,
|
||||||
|
uniqueId: 'pk',
|
||||||
|
idField: 'pk',
|
||||||
|
treeShowField: 'name',
|
||||||
|
parentIdField: 'parent',
|
||||||
|
disablePagination: tree_view,
|
||||||
|
sidePagination: tree_view ? 'client' : 'server',
|
||||||
|
serverSort: !tree_view,
|
||||||
|
search: !tree_view,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: options.url || '{% url "api-location-list" %}',
|
url: options.url || '{% url "api-location-list" %}',
|
||||||
queryParams: filters,
|
queryParams: filters,
|
||||||
@ -1446,6 +1458,69 @@ function loadStockLocationTable(table, options) {
|
|||||||
name: 'location',
|
name: 'location',
|
||||||
original: original,
|
original: original,
|
||||||
showColumns: true,
|
showColumns: true,
|
||||||
|
onPostBody: function() {
|
||||||
|
|
||||||
|
tree_view = inventreeLoad('location-tree-view') == 1;
|
||||||
|
|
||||||
|
if (tree_view) {
|
||||||
|
|
||||||
|
$('#view-location-list').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||||
|
$('#view-location-tree').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||||
|
|
||||||
|
table.treegrid({
|
||||||
|
treeColumn: 1,
|
||||||
|
onChange: function() {
|
||||||
|
table.bootstrapTable('resetView');
|
||||||
|
},
|
||||||
|
onExpand: function() {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('#view-location-tree').removeClass('btn-secondary').addClass('btn-outline-secondary');
|
||||||
|
$('#view-location-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
icon: 'fas fa-bars',
|
||||||
|
attributes: {
|
||||||
|
title: '{% trans "Display as list" %}',
|
||||||
|
id: 'view-location-list',
|
||||||
|
},
|
||||||
|
event: () => {
|
||||||
|
inventreeSave('location-tree-view', 0);
|
||||||
|
table.bootstrapTable(
|
||||||
|
'refreshOptions',
|
||||||
|
{
|
||||||
|
treeEnable: false,
|
||||||
|
serverSort: true,
|
||||||
|
search: true,
|
||||||
|
pagination: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'fas fa-sitemap',
|
||||||
|
attributes: {
|
||||||
|
title: '{% trans "Display as tree" %}',
|
||||||
|
id: 'view-location-tree',
|
||||||
|
},
|
||||||
|
event: () => {
|
||||||
|
inventreeSave('location-tree-view', 1);
|
||||||
|
table.bootstrapTable(
|
||||||
|
'refreshOptions',
|
||||||
|
{
|
||||||
|
treeEnable: true,
|
||||||
|
serverSort: false,
|
||||||
|
search: false,
|
||||||
|
pagination: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
checkbox: true,
|
checkbox: true,
|
||||||
|
Loading…
Reference in New Issue
Block a user