Bugfix: Recursive BOM display

- Actually request recursively! (duh)
- Fix the idField and parentIdField for the BOM display (was incredibly wrong)
- Sub-rows are initially displayed in the "collapsed" state
This commit is contained in:
Oliver Walters 2020-08-20 08:52:22 +10:00
parent 8556bdec6a
commit 41c4a5376b

View File

@ -280,7 +280,9 @@ function loadBomTable(table, options) {
params.sub_part_detail = true; params.sub_part_detail = true;
} }
function requestSubItems(part_pk) { // Function to request BOM data for sub-items
// This function may be called recursively for multi-level BOMs
function requestSubItems(bom_pk, part_pk) {
inventreeGet( inventreeGet(
options.bom_url, options.bom_url,
@ -291,10 +293,17 @@ function loadBomTable(table, options) {
{ {
success: function(response) { success: function(response) {
for (var idx = 0; idx < response.length; idx++) { for (var idx = 0; idx < response.length; idx++) {
response[idx].parentId = part_pk;
response[idx].parentId = bom_pk;
if (response[idx].sub_part_detail.assembly) {
requestSubItems(response[idx].pk, response[idx].sub_part)
}
} }
table.bootstrapTable('append', response); table.bootstrapTable('append', response);
table.treegrid('collapseAll');
}, },
error: function() { error: function() {
console.log('Error requesting BOM for part=' + part_pk); console.log('Error requesting BOM for part=' + part_pk);
@ -306,9 +315,9 @@ function loadBomTable(table, options) {
table.bootstrapTable({ table.bootstrapTable({
treeEnable: true, treeEnable: true,
rootParentId: options.parent_id, rootParentId: options.parent_id,
idField: 'sub_part', idField: 'pk',
uniqueId: 'pk', uniqueId: 'pk',
parentIdField: 'part', parentIdField: 'parentId',
treeShowField: 'sub_part', treeShowField: 'sub_part',
sortable: true, sortable: true,
search: true, search: true,
@ -351,7 +360,7 @@ function loadBomTable(table, options) {
table.bootstrapTable('updateRow', idx, row, true); table.bootstrapTable('updateRow', idx, row, true);
if (row.sub_part_detail.assembly) { if (row.sub_part_detail.assembly) {
requestSubItems(row.sub_part); requestSubItems(row.pk, row.sub_part);
} }
} }
}, },