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,151 @@
class SoeFeedbackFormDialog extends EICDialogContent {
actions = [
{
label: 'Cancel',
onclick: this.cancel.bind(this),
severity: 'secondary',
role: 'cancel'
},
{
label: 'Delete',
onclick: this.delete.bind(this),
severity: 'danger',
role: 'delete',
disabled: false
},
{
label: 'Send',
onclick: this.send.bind(this),
severity: 'primary',
role: 'send',
disabled: false
}
]
// meta item ID for 'Other source'
ALT_SOURCE_ID = 'dTVTpQG-KRzej86IwE0v7TA';
constructor(options) { super(options); }
DOMContentLoaded(options) {
this.pic = options.pic;
this.number = options.number;
this.id = options.id;
this.mode = options.mode || 'create';
for(let model in options.models) this[model] = options.models[model];
this.components = ui.eicfy(this.el);
this.source = this.components.find(o => o.el.name == 'fundingSource')
this.source.el.addEventListener('change', this.onSourceChange.bind(this))
this.sourceExtra = this.components.find(o => o.el.name == 'fundingSourceOther')
ui.hide(this.sourceExtra.el)
this.scheme = this.components.find(o => o.el.name == 'cutoffDate')
this.amount = this.components.find(o => o.el.name == 'fundingAmount')
this.details = this.components.find(o => o.el.name == 'additionalDetails')
this.duration = this.components.find(o => o.el.name == 'duration')
this.successStory = this.components.find(o => o.el.name == 'successStory')
this.successStory.el.addEventListener('change', this.onSuccessStoryChange.bind(this))
this.successStoryDetails = this.components.find(o => o.el.name == 'successStoryDetails')
ui.hide(this.successStoryDetails.container)
this.successStoryDetails.el.classList.remove('required')
this.confirmDelete = this.components.find(component => component.el.name == 'confirmDelete');
this.confirmation = this.find('.confirmation');
ui.hide(this.confirmation);
this.form = new Form(this.find('.soe-feedback.form'));
}
DOMContentFocused() {
this.actions.find(o => o.role == 'delete').button.hide();
if(this.mode == 'edit') {
this.fill(this.soe.getFeedback(this.id));
} else {
if(!this.soe.hasPrivilege('create')) {
this.actions.find(o => o.role == 'send').button.hide();
}
}
}
fill(feedback) {
this.source.value = feedback.fundingSource
this.sourceExtra.value = feedback.fundingSourceOther
this.scheme.value = feedback.cutoffDate
this.amount.value = feedback.fundingAmount
this.details.value = feedback.additionalDetails
this.duration.value = feedback.duration
this.successStory.value = feedback.successStory
this.successStoryDetails.value = feedback.successStoryDetails
if(this.soe.hasPrivilege('delete')) {
this.actions.find(o => o.role == 'delete').button.show();
}
if(!this.soe.hasPrivilege('update')) {
this.actions.find(o => o.role == 'send').button.hide();
}
}
onSourceChange(event) {
if(this.source.value.includes(this.ALT_SOURCE_ID)) {
ui.show(this.sourceExtra.el)
} else {
this.sourceExtra.value = '';
ui.hide(this.sourceExtra.el)
}
}
onSuccessStoryChange(event) {
if(this.successStory.value == 'true') {
ui.show(this.successStoryDetails.container)
this.successStoryDetails.el.classList.add('required')
} else {
ui.hide(this.successStoryDetails.container)
this.successStoryDetails.el.classList.remove('required')
}
}
send() {
ui.hide(this.confirmation);
if(this.form.validate()) {
switch(this.mode) {
case 'create':
this.actions.find(o => o.role == 'send').button.loading = true;
this.actions.find(o => o.role == 'cancel').button.disabled = true;
this.soe.create(this.pic, this.number, this.form.value)
.then( payload => this.commit(true) )
break;
case 'edit':
this.actions.find(o => o.role == 'send').button.loading = true;
this.actions.find(o => o.role == 'delete').button.disabled = true;
this.actions.find(o => o.role == 'cancel').button.disabled = true;
this.soe.update(this.pic, this.number, this.id, this.form.value)
.then( payload => this.commit(true) )
break;
}
}
}
delete() {
ui.show(this.confirmation);
if(this.confirmDelete.el.checked) {
this.actions.find(o => o.role == 'send').button.disabled = true;
this.actions.find(o => o.role == 'delete').button.loading = true;
this.actions.find(o => o.role == 'cancel').button.disabled = true;
this.soe.delete( this.pic, this.number, this.id )
.then( payload => this.commit(true))
}
}
}
app.registerClass('SoeFeedbackFormDialog', SoeFeedbackFormDialog);