mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add field support
- Support text field - Support checkbox field
This commit is contained in:
parent
66687a6915
commit
b71977bb6a
@ -179,8 +179,6 @@ function constructCreateForm(url, fields, options={}) {
|
|||||||
|
|
||||||
var field = fields[key];
|
var field = fields[key];
|
||||||
|
|
||||||
console.log(key, field.label, field.help_text);
|
|
||||||
|
|
||||||
var f = constructField(key, field, options);
|
var f = constructField(key, field, options);
|
||||||
|
|
||||||
html += f;
|
html += f;
|
||||||
@ -193,6 +191,8 @@ function constructCreateForm(url, fields, options={}) {
|
|||||||
$(modal).find('.modal-form-content').html(html);
|
$(modal).find('.modal-form-content').html(html);
|
||||||
|
|
||||||
$(modal).modal('show');
|
$(modal).modal('show');
|
||||||
|
|
||||||
|
attachToggle(modal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -293,17 +293,78 @@ function constructInput(name, parameters, options={}) {
|
|||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
// TODO: Construct input differently depending on the input type!
|
var func = null;
|
||||||
|
|
||||||
html = `<input id='id_${name}' class='form-control'`;
|
switch (parameters.type) {
|
||||||
|
case 'boolean':
|
||||||
|
func = constructCheckboxInput;
|
||||||
|
break;
|
||||||
|
case 'string':
|
||||||
|
func = constructTextInput;
|
||||||
|
break;
|
||||||
|
case 'url':
|
||||||
|
// TODO - url input
|
||||||
|
break;
|
||||||
|
case 'email':
|
||||||
|
// TODO - email input
|
||||||
|
break;
|
||||||
|
case 'integer':
|
||||||
|
// TODO: integer field
|
||||||
|
break;
|
||||||
|
case 'float':
|
||||||
|
// TODO: floating point field
|
||||||
|
break;
|
||||||
|
case 'decimal':
|
||||||
|
// TODO: decimal field
|
||||||
|
break;
|
||||||
|
case 'choice':
|
||||||
|
// TODO: choice field
|
||||||
|
break;
|
||||||
|
case 'field':
|
||||||
|
// TODO: foreign key field!
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Unsupported field type!
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (parameters.required) {
|
if (func != null) {
|
||||||
html += " required=''";
|
html = func(name, parameters, options);
|
||||||
|
} else {
|
||||||
|
console.log(`WARNING: Unhandled form field type: '${parameters.type}'`);
|
||||||
}
|
}
|
||||||
|
|
||||||
html += ` placeholder="${parameters.placeholder || ''}"`;
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
html += '>';
|
|
||||||
|
// Construct a "checkbox" input
|
||||||
|
function constructCheckboxInput(name, parameters, options={}) {
|
||||||
|
|
||||||
|
var html = `<input id='id_${name}' class='checkboxinput' type='checkbox' name='${name}'>`;
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Construct a "text" input
|
||||||
|
function constructTextInput(name, parameters, options={}) {
|
||||||
|
|
||||||
|
var html = `<input id='id_${name}' class='textinput textInput form-control' type='text' name='${name}'`;
|
||||||
|
|
||||||
|
// TODO: placeholder?
|
||||||
|
|
||||||
|
// TODO: value?
|
||||||
|
|
||||||
|
if (parameters.max_length) {
|
||||||
|
html += ` maxlength='${parameters.max_length}'`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parameters.required) {
|
||||||
|
html += ` required=''`;
|
||||||
|
}
|
||||||
|
|
||||||
|
html += `>`;
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user