mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
The part parameter table is now loaded via the API
This commit is contained in:
parent
81d5ff8f79
commit
467febf9ea
@ -1068,68 +1068,84 @@ function loadRelatedPartsTable(table, part_id, options={}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function loadParametricPartTable(table, options={}) {
|
/* Load parametric table for part parameters
|
||||||
/* Load parametric table for part parameters
|
|
||||||
*
|
|
||||||
* Args:
|
|
||||||
* - table: HTML reference to the table
|
|
||||||
* - table_headers: Unique parameters found in category
|
|
||||||
* - table_data: Parameters data
|
|
||||||
*/
|
*/
|
||||||
|
function loadParametricPartTable(table, options={}) {
|
||||||
|
|
||||||
var table_headers = options.headers;
|
var columns = [
|
||||||
var table_data = options.data;
|
{
|
||||||
|
field: 'name',
|
||||||
var columns = [];
|
|
||||||
|
|
||||||
for (var header of table_headers) {
|
|
||||||
if (header === 'part') {
|
|
||||||
columns.push({
|
|
||||||
field: header,
|
|
||||||
title: '{% trans "Part" %}',
|
title: '{% trans "Part" %}',
|
||||||
|
switchable: false,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
sortName: 'name',
|
|
||||||
formatter: function(value, row) {
|
formatter: function(value, row) {
|
||||||
|
var name = row.full_name;
|
||||||
|
|
||||||
var name = '';
|
var display = imageHoverIcon(row.thumbnail) + renderLink(name, `/part/${row.pk}/`);
|
||||||
|
|
||||||
if (row.IPN) {
|
return display;
|
||||||
name += row.IPN + ' | ' + row.name;
|
|
||||||
} else {
|
|
||||||
name += row.name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return renderLink(name, '/part/' + row.pk + '/');
|
|
||||||
}
|
}
|
||||||
});
|
];
|
||||||
} else if (header === 'description') {
|
|
||||||
|
// Request a list of parameters we are interested in for this category
|
||||||
|
inventreeGet(
|
||||||
|
'{% url "api-part-parameter-template-list" %}',
|
||||||
|
{
|
||||||
|
category: options.category,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
async: false,
|
||||||
|
success: function(response) {
|
||||||
|
for (var template of response) {
|
||||||
columns.push({
|
columns.push({
|
||||||
field: header,
|
field: `parameter_${template.pk}`,
|
||||||
title: '{% trans "Description" %}',
|
title: template.name,
|
||||||
sortable: true,
|
switchable: true,
|
||||||
});
|
|
||||||
} else {
|
|
||||||
columns.push({
|
|
||||||
field: header,
|
|
||||||
title: header,
|
|
||||||
sortable: true,
|
sortable: true,
|
||||||
filterControl: 'input',
|
filterControl: 'input',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// TODO: Re-enable filter control for parameter values
|
||||||
|
|
||||||
$(table).inventreeTable({
|
$(table).inventreeTable({
|
||||||
sortName: 'part',
|
url: '{% url "api-part-list" %}',
|
||||||
queryParams: table_headers,
|
queryParams: {
|
||||||
|
category: options.category,
|
||||||
|
cascade: true,
|
||||||
|
parameters: true,
|
||||||
|
},
|
||||||
groupBy: false,
|
groupBy: false,
|
||||||
name: options.name || 'parametric',
|
name: options.name || 'part-parameters',
|
||||||
formatNoMatches: function() {
|
formatNoMatches: function() {
|
||||||
return '{% trans "No parts found" %}';
|
return '{% trans "No parts found" %}';
|
||||||
},
|
},
|
||||||
columns: columns,
|
columns: columns,
|
||||||
showColumns: true,
|
showColumns: true,
|
||||||
data: table_data,
|
// filterControl: true,
|
||||||
filterControl: true,
|
sidePagination: 'server',
|
||||||
|
idField: 'pk',
|
||||||
|
uniqueId: 'pk',
|
||||||
|
onLoadSuccess: function() {
|
||||||
|
|
||||||
|
var data = $(table).bootstrapTable('getData');
|
||||||
|
|
||||||
|
for (var idx = 0; idx < data.length; idx++) {
|
||||||
|
var row = data[idx];
|
||||||
|
var pk = row.pk;
|
||||||
|
|
||||||
|
// Make each parameter accessible, based on the "template" columns
|
||||||
|
row.parameters.forEach(function(parameter) {
|
||||||
|
row[`parameter_${parameter.template}`] = parameter.data;
|
||||||
|
});
|
||||||
|
|
||||||
|
$(table).bootstrapTable('updateRow', pk, row);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user