{% load i18n %} function loadCompanyTable(table, url, options={}) { /* * Load company listing data into specified table. * * Args: * - table: Table element on the page * - url: Base URL for the API query * - options: table options. */ // Query parameters var params = options.params || {}; var filters = loadTableFilters("company"); for (var key in params) { filters[key] = params[key]; } setupFilterList("company", $(table)); var columns = [ { field: 'pk', title: 'ID', visible: false, switchable: false, }, { field: 'name', title: '{% trans "Company" %}', sortable: true, switchable: false, formatter: function(value, row, index, field) { var html = imageHoverIcon(row.image) + renderLink(value, row.url); if (row.is_customer) { html += ``; } if (row.is_manufacturer) { html += ``; } if (row.is_supplier) { html += ``; } return html; } }, { field: 'description', title: '{% trans "Description" %}', }, { field: 'website', title: '{% trans "Website" %}', formatter: function(value, row, index, field) { if (value) { return renderLink(value, value); } return ''; } }, ]; if (options.pagetype == 'suppliers') { columns.push({ sortable: true, field: 'parts_supplied', title: '{% trans "Parts Supplied" %}', formatter: function(value, row) { return renderLink(value, `/company/${row.pk}/parts/`); } }); } else if (options.pagetype == 'manufacturers') { columns.push({ sortable: true, field: 'parts_manufactured', title: '{% trans "Parts Manufactured" %}', formatter: function(value, row) { return renderLink(value, `/company/${row.pk}/parts/`); } }); } $(table).inventreeTable({ url: url, method: 'get', queryParams: filters, groupBy: false, sidePagination: 'server', formatNoMatches: function() { return "{% trans "No company information found" %}"; }, showColumns: true, name: options.pagetype || 'company', columns: columns, }); } function loadManufacturerPartTable(table, url, options) { /* * Load manufacturer part table * */ // Query parameters var params = options.params || {}; // Load filters var filters = loadTableFilters("manufacturer-part"); for (var key in params) { filters[key] = params[key]; } setupFilterList("manufacturer-part", $(table)); $(table).inventreeTable({ url: url, method: 'get', original: params, queryParams: filters, name: 'manufacturerparts', groupBy: false, formatNoMatches: function() { return '{% trans "No manufacturer parts found" %}'; }, columns: [ { checkbox: true, switchable: false, }, { visible: params['part_detail'], switchable: params['part_detail'], sortable: true, field: 'part_detail.full_name', title: '{% trans "Part" %}', formatter: function(value, row, index, field) { var url = `/part/${row.part}/`; var html = imageHoverIcon(row.part_detail.thumbnail) + renderLink(value, url); if (row.part_detail.is_template) { html += ``; } if (row.part_detail.assembly) { html += ``; } if (!row.part_detail.active) { html += `{% trans "Inactive" %}`; } return html; } }, { sortable: true, field: 'manufacturer', title: '{% trans "Manufacturer" %}', formatter: function(value, row, index, field) { if (value && row.manufacturer_detail) { var name = row.manufacturer_detail.name; var url = `/company/${value}/`; var html = imageHoverIcon(row.manufacturer_detail.image) + renderLink(name, url); return html; } else { return "-"; } } }, { sortable: true, field: 'MPN', title: '{% trans "MPN" %}', formatter: function(value, row, index, field) { return renderLink(value, `/manufacturer-part/${row.pk}/`); } }, { field: 'link', title: '{% trans "Link" %}', formatter: function(value, row, index, field) { if (value) { return renderLink(value, value); } else { return ''; } } }, ], }); } function loadManufacturerPartParameterTable(table, url, options) { /* * Load table of ManufacturerPartParameter objects */ var params = options.params || {}; // Load filters var filters = loadTableFilters("manufacturer-part-parameters"); // Overwrite explicit parameters for (var key in params) { filters[key] = params[key]; } // setupFilterList("manufacturer-part-parameters", $(table)); $(table).inventreeTable({ url: url, method: 'get', original: params, queryParams: filters, name: 'manufacturerpartparameters', groupBy: false, formatNoMatches: function() { return '{% trans "No parameters found" %}'; }, columns: [ { checkbox: true, switchable: false, visible: false, }, { field: 'name', title: '{% trans "Name" %}', switchable: false, sortable: true, }, { field: 'value', title: '{% trans "Value" %}', switchable: false, sortable: true, }, { field: 'units', title: '{% trans "Units" %}', switchable: true, sortable: true, }, { field: 'actions', title: '', switchable: false, sortable: false, formatter: function(value, row) { var pk = row.pk; var html = `