unclean SPARC

This commit is contained in:
STEINNI
2025-08-27 07:03:09 +00:00
commit f308460931
430 changed files with 54426 additions and 0 deletions
@@ -0,0 +1,104 @@
/**
* Class SubmissionShortFormTabView
* Handles a form chunk as a local form by matching form fields with model data,
* managing modes (read-only or edition) and handling form specific encoding rules.
* Compatible with all proposal form versions.
*
* @author Michael Fallise
* @version 1.0
*/
class SubmissionShortFormTabView extends EICDomContent {
options = {
mode: 'read'
}
DOMContentLoaded(options) {
this.components = ui.eicfy(this.el);
//this.mode = options && options.mode ? options.mode: this.options.mode;
this.form = new Form(this.el);
if(options.model) this.model = options.model;
this.setupRules();
if(!this.model && !this.model.data) {
console.warn('SubmissionShortFormTabView: No model provided.')
}
}
DOMContentFocused(options) {
if(options) this.model = options.models.submission
}
/**
* Validates the local form
* Overridable.
*/
validate() { return this.form.validate(true); }
/**
* Initializes the local form with specific field rules
* Overridable.
*/
setupRules() {}
/**
* Fills the local form with available Model data
*/
fill(mode) {
this.mode = mode;
let fields = this.form.scan();
for(let field of fields) {
let component = this.el2component(field.el.dataset.path, field.el.name);
if(component) component.disabled = this.mode == 'read';
let item = this.findField(field.el.dataset.path, field.el.name)
if(item) {
if(component.el.type == 'checkbox'){
component.el.checked = item == true;
}
else
component.value = item;
}
}
}
/**
* Retrieves a data field value based on path an name
* @param {*} path
* @param {*} name
* @returns
*/
findField(path, name) {
let levels = path && path != '' && path !== undefined ? path.split('.'): [];
let tree = this.model.data;
for(let level of levels)
if(tree.hasOwnProperty(level)) tree = tree[level];
if(tree.hasOwnProperty(name)) return tree[name];
}
/**
* Converts a DOM Element into EICUI Component
* @param {*} path
* @param {*} name
* @returns
*/
el2component(path, name) {
return (
this.components
.find(o =>
o.el.hasAttribute('name') && o.el.getAttribute('name') == name &&
( !path || (path && o.el.dataset.path == path))
)
)
}
}
app.registerClass('SubmissionShortFormTabView', SubmissionShortFormTabView);