mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	Add more options for form rendering
- "before" a field - "after" a field - pure "eye candy" field
This commit is contained in:
		| @@ -366,6 +366,10 @@ function constructFormBody(fields, options) { | ||||
|  | ||||
|             // TODO: Refactor the following code with Object.assign (see above) | ||||
|  | ||||
|             // "before" and "after" renders | ||||
|             fields[field].before = field_options.before; | ||||
|             fields[field].after = field_options.after; | ||||
|  | ||||
|             // Secondary modal options | ||||
|             fields[field].secondary = field_options.secondary; | ||||
|  | ||||
| @@ -560,10 +564,15 @@ function submitFormData(fields, options) { | ||||
|     var has_files = false; | ||||
|  | ||||
|     // Extract values for each field | ||||
|     options.field_names.forEach(function(name) { | ||||
|     for (var idx = 0; idx < options.fields_names.length; idx++) { | ||||
|  | ||||
|         var name = options.field_names[idx]; | ||||
|  | ||||
|         var field = fields[name] || null; | ||||
|  | ||||
|         // Ignore visual fields | ||||
|         if (field && field.type == 'candy') continue; | ||||
|  | ||||
|         if (field) { | ||||
|  | ||||
|             var value = getFormFieldValue(name, field, options); | ||||
| @@ -593,7 +602,7 @@ function submitFormData(fields, options) { | ||||
|         } else { | ||||
|             console.log(`WARNING: Could not find field matching '${name}'`); | ||||
|         } | ||||
|     }); | ||||
|     } | ||||
|  | ||||
|     var upload_func = inventreePut; | ||||
|  | ||||
| @@ -1279,6 +1288,11 @@ function renderModelData(name, model, data, parameters, options) { | ||||
|  */ | ||||
| function constructField(name, parameters, options) { | ||||
|  | ||||
|     // Shortcut for simple visual fields | ||||
|     if (parameters.type == 'candy') { | ||||
|         return constructCandyInput(name, parameters, options); | ||||
|     } | ||||
|  | ||||
|     var field_name = `id_${name}`; | ||||
|  | ||||
|     // Hidden inputs are rendered without label / help text / etc | ||||
| @@ -1292,7 +1306,14 @@ function constructField(name, parameters, options) { | ||||
|         form_classes += ' has-error'; | ||||
|     } | ||||
|  | ||||
|     var html = `<div id='div_${field_name}' class='${form_classes}'>`; | ||||
|     var html = ''; | ||||
|      | ||||
|     // Optional content to render before the field | ||||
|     if (parameters.before) { | ||||
|         html += parameters.before; | ||||
|     } | ||||
|      | ||||
|     html += `<div id='div_${field_name}' class='${form_classes}'>`; | ||||
|  | ||||
|     // Add a label | ||||
|     html += constructLabel(name, parameters); | ||||
| @@ -1352,6 +1373,10 @@ function constructField(name, parameters, options) { | ||||
|     html += `</div>`;   // controls | ||||
|     html += `</div>`;   // form-group | ||||
|      | ||||
|     if (parameters.after) { | ||||
|         html += parameters.after; | ||||
|     } | ||||
|  | ||||
|     return html; | ||||
| } | ||||
|  | ||||
| @@ -1430,6 +1455,9 @@ function constructInput(name, parameters, options) { | ||||
|         case 'date': | ||||
|             func = constructDateInput; | ||||
|             break; | ||||
|         case 'candy': | ||||
|             func = constructCandyInput; | ||||
|             break; | ||||
|         default: | ||||
|             // Unsupported field type! | ||||
|             break; | ||||
| @@ -1658,6 +1686,17 @@ function constructDateInput(name, parameters, options) { | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Construct a "candy" field input | ||||
|  * No actual field data! | ||||
|  */ | ||||
| function constructCandyInput(name, parameters, options) { | ||||
|  | ||||
|     return parameters.html; | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Construct a 'help text' div based on the field parameters | ||||
|  *  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user