armisa-models
Version:
models of armisa!
112 lines (111 loc) • 5.63 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Dataing = exports.Data = void 0;
const FinancialPeriods_1 = require("./FinancialPeriods");
const TabData_1 = require("./Page/Tab/TabData");
class Data {
constructor(mainStateManager, id, isActive, name, caption, owner) {
this.mainStateManager = mainStateManager;
this.id = id;
this.isActive = isActive;
this.name = name;
this.caption = caption;
this.owner = owner;
this.financialPeriods = [];
}
}
exports.Data = Data;
class Dataing {
constructor(mainStateManager) {
this.mainStateManager = mainStateManager;
this.waitForChangeData = false;
this.changeToSelectedDataAndFinancialPeriod = () => {
if (this.waitForBeingActiveData && this.waitForBeingActiveFinancialPeriod) {
this.waitForChangeData = true;
this.pageData.Eventing.trigger('form.waitLoading');
// this.mainStateManager.Usering.LoginFactory.startToChangeDataBase(this.waitForBeingActiveData.id, this.waitForBeingActiveFinancialPeriod.id, true);
}
};
this.closeSelectModel = () => {
};
// selectActiveData = () => {
// if (this.mainStateManager.Tabing.tabs.length === 0 && this.mainStateManager.Modaling.modals.length === 0) {
// this.mainStateManager.Modaling.addModalPage('select-active-data', 40, 80);
// }
// }
this.goToNextRow = () => {
const lengths = this.datas.length - 1;
const focusIndex = this.datas.findIndex(i => i === this.waitForBeingActiveData);
if (focusIndex > -1 && focusIndex + 1 <= lengths) {
this.waitForBeingActiveData = this.datas[focusIndex + 1];
}
else {
this.waitForBeingActiveData = this.datas[0];
}
this.pageData.Eventing.trigger('form.change');
};
this.goToPreviousRow = () => {
const lengths = this.datas.length - 1;
const focusIndex = this.datas.findIndex(i => i === this.waitForBeingActiveData);
if (focusIndex && focusIndex > 0) {
this.waitForBeingActiveData = this.datas[focusIndex - 1];
}
else {
this.waitForBeingActiveData = this.datas[lengths];
}
this.pageData.Eventing.trigger('form.change');
};
this.goToNextFinancePeriod = () => {
if (this.waitForBeingActiveData && this.waitForBeingActiveData.financialPeriods && this.waitForBeingActiveData.financialPeriods.length) {
const lengths = this.waitForBeingActiveData.financialPeriods.length - 1;
const focusIndex = this.waitForBeingActiveData.financialPeriods.findIndex(i => i === this.waitForBeingActiveFinancialPeriod);
if (focusIndex > -1 && focusIndex + 1 <= lengths) {
this.waitForBeingActiveFinancialPeriod = this.waitForBeingActiveData.financialPeriods[focusIndex + 1];
}
else {
this.waitForBeingActiveFinancialPeriod = this.waitForBeingActiveData.financialPeriods[0];
}
this.pageData.Eventing.trigger('form.change');
}
};
this.goToPreviousPeriod = () => {
if (this.waitForBeingActiveData && this.waitForBeingActiveData.financialPeriods && this.waitForBeingActiveData.financialPeriods.length) {
const lengths = this.waitForBeingActiveData.financialPeriods.length - 1;
const focusIndex = this.waitForBeingActiveData.financialPeriods.findIndex(i => i === this.waitForBeingActiveFinancialPeriod);
if (focusIndex && focusIndex > 0) {
this.waitForBeingActiveFinancialPeriod = this.waitForBeingActiveData.financialPeriods[focusIndex - 1];
}
else {
this.waitForBeingActiveFinancialPeriod = this.waitForBeingActiveData.financialPeriods[lengths];
}
this.pageData.Eventing.trigger('form.change');
}
};
this.initializeListenersInSelectMode = undefined;
this.datas = [];
this.pageData = new TabData_1.TabPageData(this.mainStateManager);
this.initializeStatusBar = false;
this.deserialize = (json) => {
if (json && json.length) {
let isAnyActive = false;
this.datas = json.map((data, index) => {
const newData = new Data(this.mainStateManager, data.id, data.isActive, data.name, data.caption, data.owner);
newData.financialPeriods = FinancialPeriods_1.FinancialPeriod.deserialize(data.financialPeriods);
if (newData.isActive) {
isAnyActive = true;
this.activeData = newData;
}
if (!isAnyActive && index === json.length - 1) {
newData.isActive = true;
this.activeData = newData;
}
if (this.activeData) {
this.activeFinancialPeriod = this.activeData.financialPeriods.find(financialPeriod => financialPeriod.isActive);
}
return newData;
});
}
};
}
}
exports.Dataing = Dataing;