mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
part.js
This commit is contained in:
parent
3e03b1c31d
commit
7d5b859233
@ -1,11 +1,48 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load inventree_extras %}
|
{% load inventree_extras %}
|
||||||
|
|
||||||
|
/* globals
|
||||||
|
Chart,
|
||||||
|
constructForm,
|
||||||
|
global_settings,
|
||||||
|
imageHoverIcon,
|
||||||
|
inventreeGet,
|
||||||
|
inventreePut,
|
||||||
|
launchModalForm,
|
||||||
|
linkButtonsToSelection,
|
||||||
|
loadTableFilters,
|
||||||
|
makeIconBadge,
|
||||||
|
makeIconButton,
|
||||||
|
printPartLabels,
|
||||||
|
renderLink,
|
||||||
|
setFormGroupVisibility,
|
||||||
|
setupFilterList,
|
||||||
|
yesNoLabel,
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* exported
|
||||||
|
duplicatePart,
|
||||||
|
editCategory,
|
||||||
|
editPart,
|
||||||
|
initPriceBreakSet,
|
||||||
|
loadBomChart,
|
||||||
|
loadParametricPartTable,
|
||||||
|
loadPartCategoryTable,
|
||||||
|
loadPartParameterTable,
|
||||||
|
loadPartTable,
|
||||||
|
loadPartTestTemplateTable,
|
||||||
|
loadPartVariantTable,
|
||||||
|
loadSellPricingChart,
|
||||||
|
loadSimplePartTable,
|
||||||
|
loadStockPricingChart,
|
||||||
|
toggleStar,
|
||||||
|
*/
|
||||||
|
|
||||||
/* Part API functions
|
/* Part API functions
|
||||||
* Requires api.js to be loaded first
|
* Requires api.js to be loaded first
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function partGroups(options={}) {
|
function partGroups() {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
attributes: {
|
attributes: {
|
||||||
@ -36,7 +73,7 @@ function partFields(options={}) {
|
|||||||
category: {
|
category: {
|
||||||
secondary: {
|
secondary: {
|
||||||
title: '{% trans "Add Part Category" %}',
|
title: '{% trans "Add Part Category" %}',
|
||||||
fields: function(data) {
|
fields: function() {
|
||||||
var fields = categoryFields();
|
var fields = categoryFields();
|
||||||
|
|
||||||
return fields;
|
return fields;
|
||||||
@ -255,7 +292,7 @@ function categoryFields() {
|
|||||||
|
|
||||||
|
|
||||||
// Edit a PartCategory via the API
|
// Edit a PartCategory via the API
|
||||||
function editCategory(pk, options={}) {
|
function editCategory(pk) {
|
||||||
|
|
||||||
var url = `/api/part/category/${pk}/`;
|
var url = `/api/part/category/${pk}/`;
|
||||||
|
|
||||||
@ -270,7 +307,7 @@ function editCategory(pk, options={}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function editPart(pk, options={}) {
|
function editPart(pk) {
|
||||||
|
|
||||||
var url = `/api/part/${pk}/`;
|
var url = `/api/part/${pk}/`;
|
||||||
|
|
||||||
@ -282,7 +319,7 @@ function editPart(pk, options={}) {
|
|||||||
|
|
||||||
constructForm(url, {
|
constructForm(url, {
|
||||||
fields: fields,
|
fields: fields,
|
||||||
groups: partGroups(),
|
groups: groups,
|
||||||
title: '{% trans "Edit Part" %}',
|
title: '{% trans "Edit Part" %}',
|
||||||
reload: true,
|
reload: true,
|
||||||
});
|
});
|
||||||
@ -361,7 +398,7 @@ function toggleStar(options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function makePartIcons(part, options={}) {
|
function makePartIcons(part) {
|
||||||
/* Render a set of icons for the given part.
|
/* Render a set of icons for the given part.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -388,7 +425,7 @@ function makePartIcons(part, options={}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (part.salable) {
|
if (part.salable) {
|
||||||
html += makeIconBadge('fa-dollar-sign', title='{% trans "Salable part" %}');
|
html += makeIconBadge('fa-dollar-sign', '{% trans "Salable part" %}');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!part.active) {
|
if (!part.active) {
|
||||||
@ -428,7 +465,7 @@ function loadPartVariantTable(table, partId, options={}) {
|
|||||||
field: 'name',
|
field: 'name',
|
||||||
title: '{% trans "Name" %}',
|
title: '{% trans "Name" %}',
|
||||||
switchable: false,
|
switchable: false,
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
var name = '';
|
var name = '';
|
||||||
@ -646,14 +683,14 @@ function loadParametricPartTable(table, options={}) {
|
|||||||
|
|
||||||
var columns = [];
|
var columns = [];
|
||||||
|
|
||||||
for (header of table_headers) {
|
for (var header of table_headers) {
|
||||||
if (header === 'part') {
|
if (header === 'part') {
|
||||||
columns.push({
|
columns.push({
|
||||||
field: header,
|
field: header,
|
||||||
title: '{% trans "Part" %}',
|
title: '{% trans "Part" %}',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
sortName: 'name',
|
sortName: 'name',
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
|
|
||||||
var name = '';
|
var name = '';
|
||||||
|
|
||||||
@ -776,6 +813,8 @@ function loadPartTable(table, url, options={}) {
|
|||||||
|
|
||||||
var filters = {};
|
var filters = {};
|
||||||
|
|
||||||
|
var col = null;
|
||||||
|
|
||||||
if (!options.disableFilters) {
|
if (!options.disableFilters) {
|
||||||
filters = loadTableFilters("parts");
|
filters = loadTableFilters("parts");
|
||||||
}
|
}
|
||||||
@ -809,16 +848,18 @@ function loadPartTable(table, url, options={}) {
|
|||||||
field: 'IPN',
|
field: 'IPN',
|
||||||
title: 'IPN',
|
title: 'IPN',
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!options.params.ordering) {
|
if (!options.params.ordering) {
|
||||||
col['sortable'] = true;
|
col['sortable'] = true;
|
||||||
};
|
}
|
||||||
|
|
||||||
columns.push(col);
|
columns.push(col);
|
||||||
|
|
||||||
col = {
|
col = {
|
||||||
field: 'name',
|
field: 'name',
|
||||||
title: '{% trans "Part" %}',
|
title: '{% trans "Part" %}',
|
||||||
switchable: false,
|
switchable: false,
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
|
|
||||||
var name = '';
|
var name = '';
|
||||||
|
|
||||||
@ -844,16 +885,18 @@ function loadPartTable(table, url, options={}) {
|
|||||||
|
|
||||||
return display;
|
return display;
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
if (!options.params.ordering) {
|
if (!options.params.ordering) {
|
||||||
col['sortable'] = true;
|
col['sortable'] = true;
|
||||||
};
|
}
|
||||||
|
|
||||||
columns.push(col);
|
columns.push(col);
|
||||||
|
|
||||||
columns.push({
|
columns.push({
|
||||||
field: 'description',
|
field: 'description',
|
||||||
title: '{% trans "Description" %}',
|
title: '{% trans "Description" %}',
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
|
|
||||||
if (row.is_template) {
|
if (row.is_template) {
|
||||||
value = '<i>' + value + '</i>';
|
value = '<i>' + value + '</i>';
|
||||||
@ -867,7 +910,7 @@ function loadPartTable(table, url, options={}) {
|
|||||||
sortName: 'category',
|
sortName: 'category',
|
||||||
field: 'category_detail',
|
field: 'category_detail',
|
||||||
title: '{% trans "Category" %}',
|
title: '{% trans "Category" %}',
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
if (row.category) {
|
if (row.category) {
|
||||||
return renderLink(value.pathstring, "/part/category/" + row.category + "/");
|
return renderLink(value.pathstring, "/part/category/" + row.category + "/");
|
||||||
}
|
}
|
||||||
@ -876,16 +919,18 @@ function loadPartTable(table, url, options={}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!options.params.ordering) {
|
if (!options.params.ordering) {
|
||||||
col['sortable'] = true;
|
col['sortable'] = true;
|
||||||
};
|
}
|
||||||
|
|
||||||
columns.push(col);
|
columns.push(col);
|
||||||
|
|
||||||
col = {
|
col = {
|
||||||
field: 'in_stock',
|
field: 'in_stock',
|
||||||
title: '{% trans "Stock" %}',
|
title: '{% trans "Stock" %}',
|
||||||
searchable: false,
|
searchable: false,
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value, row) {
|
||||||
var link = "stock";
|
var link = "stock";
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
@ -912,15 +957,17 @@ function loadPartTable(table, url, options={}) {
|
|||||||
return renderLink(value, '/part/' + row.pk + "/" + link + "/");
|
return renderLink(value, '/part/' + row.pk + "/" + link + "/");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!options.params.ordering) {
|
if (!options.params.ordering) {
|
||||||
col['sortable'] = true;
|
col['sortable'] = true;
|
||||||
};
|
}
|
||||||
|
|
||||||
columns.push(col);
|
columns.push(col);
|
||||||
|
|
||||||
columns.push({
|
columns.push({
|
||||||
field: 'link',
|
field: 'link',
|
||||||
title: '{% trans "Link" %}',
|
title: '{% trans "Link" %}',
|
||||||
formatter: function(value, row, index, field) {
|
formatter: function(value) {
|
||||||
return renderLink(
|
return renderLink(
|
||||||
value, value,
|
value, value,
|
||||||
{
|
{
|
||||||
@ -1122,8 +1169,8 @@ function loadPartTestTemplateTable(table, options) {
|
|||||||
|
|
||||||
var original = {};
|
var original = {};
|
||||||
|
|
||||||
for (var key in params) {
|
for (var k in params) {
|
||||||
original[key] = params[key];
|
original[k] = params[k];
|
||||||
}
|
}
|
||||||
|
|
||||||
setupFilterList("parttests", table, filterListElement);
|
setupFilterList("parttests", table, filterListElement);
|
||||||
@ -1268,7 +1315,7 @@ function loadPriceBreakTable(table, options) {
|
|||||||
field: 'price',
|
field: 'price',
|
||||||
title: '{% trans "Price" %}',
|
title: '{% trans "Price" %}',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
formatter: function(value, row, index) {
|
formatter: function(value, row) {
|
||||||
var html = value;
|
var html = value;
|
||||||
|
|
||||||
html += `<div class='btn-group float-right' role='group'>`
|
html += `<div class='btn-group float-right' role='group'>`
|
||||||
|
Loading…
Reference in New Issue
Block a user