mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 13:05:42 +00:00
Replace StockItemAttachmentCreate form
- Also replace drag-and-drop - Add 'hidden' option for form fields - Adds renderer for StockItem model
This commit is contained in:
@ -304,10 +304,7 @@ function constructFormBody(fields, options) {
|
||||
fields[field].prefix = `<span class='fas ${field_options.icon}'></span>`;
|
||||
}
|
||||
|
||||
// // Field value?
|
||||
// if (fields[field].value == null) {
|
||||
// fields[field].value = field_options.value;
|
||||
// }
|
||||
fields[field].hidden = field_options.hidden;
|
||||
}
|
||||
}
|
||||
|
||||
@ -672,6 +669,8 @@ function initializeRelatedFields(fields, options) {
|
||||
|
||||
if (!field || field.type != 'related field') continue;
|
||||
|
||||
if (field.hidden) continue;
|
||||
|
||||
if (!field.api_url) {
|
||||
// TODO: Provide manual api_url option?
|
||||
console.log(`Related field '${name}' missing 'api_url' parameter.`);
|
||||
@ -962,6 +961,11 @@ function constructField(name, parameters, options) {
|
||||
|
||||
var field_name = `id_${name}`;
|
||||
|
||||
// Hidden inputs are rendered without label / help text / etc
|
||||
if (parameters.hidden) {
|
||||
return constructHiddenInput(name, parameters, options);
|
||||
}
|
||||
|
||||
var form_classes = 'form-group';
|
||||
|
||||
if (parameters.errors) {
|
||||
@ -1142,6 +1146,18 @@ function constructInputOptions(name, classes, type, parameters) {
|
||||
}
|
||||
|
||||
|
||||
// Construct a "hidden" input
|
||||
function constructHiddenInput(name, parameters, options) {
|
||||
|
||||
return constructInputOptions(
|
||||
name,
|
||||
'hiddeninput',
|
||||
'hidden',
|
||||
parameters
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Construct a "checkbox" input
|
||||
function constructCheckboxInput(name, parameters, options) {
|
||||
|
||||
|
@ -27,8 +27,27 @@ function renderCompany(name, data, parameters, options) {
|
||||
// Renderer for "StockItem" model
|
||||
function renderStockItem(name, data, parameters, options) {
|
||||
|
||||
// TODO - Include part detail, location, quantity
|
||||
// TODO - Include part image
|
||||
var image = data.part_detail.thumbnail || data.part_detail.image;
|
||||
|
||||
if (!image) {
|
||||
image = `/static/img/blank_image.png`;
|
||||
}
|
||||
|
||||
var html = `<img src='${image}' class='select2-thumbnail'>`;
|
||||
|
||||
html += ` <span>${data.part_detail.full_name || data.part_detail.name}</span>`;
|
||||
|
||||
if (data.serial && data.quantity == 1) {
|
||||
html += ` - <i>{% trans "Serial Number" %}: ${data.serial}`;
|
||||
} else {
|
||||
html += ` - <i>{% trans "Quantity" %}: ${data.quantity}`;
|
||||
}
|
||||
|
||||
if (data.part_detail.description) {
|
||||
html += `<p><small>${data.part_detail.description}</small></p>`;
|
||||
}
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
|
||||
@ -62,7 +81,7 @@ function renderPart(name, data, parameters, options) {
|
||||
|
||||
var html = `<img src='${image}' class='select2-thumbnail'>`;
|
||||
|
||||
html += ` <span>${data.full_name ?? data.name}</span>`;
|
||||
html += ` <span>${data.full_name || data.name}</span>`;
|
||||
|
||||
if (data.description) {
|
||||
html += ` - <i>${data.description}</i>`;
|
||||
|
Reference in New Issue
Block a user