armisa-models
Version:
models of armisa!
108 lines (107 loc) • 5.36 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SendByLetterFactory = void 0;
const ElementsOfFormFactory_1 = require("../Page/ElementsOfFormFactory");
class SendByLetterFactory {
get any() {
return this;
}
constructor(mainStateManager, onCloseSendByLetterForm) {
this.mainStateManager = mainStateManager;
this.onCloseSendByLetterForm = onCloseSendByLetterForm;
this.forceUpdate = () => { };
this.payLoad = 'forms';
this.forms = [];
this.addForm = (type, object) => {
this.forms.push({ type, object });
};
this.remove = (id) => {
const findIndex = this.forms.findIndex(i => i.object.id === id);
if (findIndex > -1) {
this.forms.splice(findIndex, 1);
this.forceUpdate();
}
};
this.getPayLoad = () => {
return { [this.payLoad]: this.forms.map(i => { return { id: i.object.getProp('id'), yearId: i.object.getProp('yearId'), formType: i.type }; }) };
};
this.dispose = () => {
this.sendByLetterRoot.removeChild(this.mainDivElement);
// this.sendByLetterRoot.removeChild(this.backdropDivElement);
};
this.axiosDate = {};
this.accept = (afterSuccess) => {
const elementErrorCount = this.elementsOfForm.validate();
if (elementErrorCount) {
this.elementsOfForm.showThereAreSomeErrorYouCanNot(elementErrorCount);
return;
}
this.saveData(afterSuccess);
};
this.saveData = (afterSuccess) => {
this.elementsOfForm.showWaitingFormSpinner();
this.elementsOfForm.customPayLoad = { ...this.elementsOfForm.customPayLoad, ...this.getPayLoad() };
const api = this.axiosDate.axios(this.axiosDate.controllerPath);
api.post(this.axiosDate.acceptPath, this.elementsOfForm.headPayLoad, this.mainStateManager.tokenInfo.headerOfAxios)
.then(response => {
if (response.data.isSuccess) {
if (response.data.getProp('isSuccess')) {
this.elementsOfForm.closeWaitingFormSpinner();
if (afterSuccess) {
this.elementsOfForm.showSuccessFullMessageBox(undefined, undefined, undefined, () => afterSuccess(response.data.getProp('data')));
}
else {
this.elementsOfForm.showSuccessFullMessageBox(undefined, undefined, undefined);
}
this.forceUpdate();
}
else {
this.elementsOfForm.closeWaitingFormSpinner();
this.elementsOfForm.showInvalidArgumentMessageBox(response.data.getProp('messageRoot'));
}
}
else {
this.elementsOfForm.closeWaitingFormSpinner();
this.elementsOfForm.showInvalidArgumentMessageBox(response.data.getProp('messageRoot'));
}
})
.catch(e => {
this.elementsOfForm.closeWaitingFormSpinner();
this.elementsOfForm.showErrorMessageBox(e);
});
};
this.id = Math.random().toString() + '-' + new Date().getMilliseconds().toString();
this.elementsOfForm = new ElementsOfFormFactory_1.ElementsOfFormFactory(this);
let tempSendByLetterFormRoot = document.getElementById('send_by_letter_form__container');
if (!tempSendByLetterFormRoot) {
tempSendByLetterFormRoot = document.createElement('div');
tempSendByLetterFormRoot.className = "send_by_letter_form__container";
tempSendByLetterFormRoot.id = "send_by_letter_form__container";
const root = document.getElementById('root');
root.insertAdjacentElement('beforebegin', tempSendByLetterFormRoot);
}
this.sendByLetterRoot = tempSendByLetterFormRoot;
// this.backdropDivElement = document.createElement('div');
// this.backdropDivElement.classList.add('backdrop-popup');
// this.backdropDivElement.style.zIndex = '2000';
// this.backdropDivElement.style.opacity = '0';
// this.backdropDivElement.onclick = (e: any) => this.closeByClick(this);
this.mainDivElement = document.createElement('div');
this.mainDivElement.classList.add('send_by_letter');
this.mainDivElement.style.position = 'fixed';
this.mainDivElement.style.right = `${20}px`;
this.mainDivElement.style.bottom = `${20}px`;
this.mainDivElement.style.zIndex = '3000';
this.mainDivElement.style.background = '#d4ecff';
// this.sendByLetterRoot.appendChild(this.backdropDivElement);
this.sendByLetterRoot.appendChild(this.mainDivElement);
}
closeByClick(e) {
e.close();
}
close() {
this.mainStateManager.closeSendByLetterForm();
this.onCloseSendByLetterForm && this.onCloseSendByLetterForm();
}
}
exports.SendByLetterFactory = SendByLetterFactory;