Mini Kabibi Habibi
window.app = window.app || {};
window.app.navigator = (function () {
return {
navigateToTab: function (tabName) {
var tab = pageControl.GetTabByName(tabName);
if (tab)
pageControl.SetActiveTab(tab);
}
};
})();
window.app.accounts = (function() {
function refreshTransactionGrid(accName) {
if(window["HiddenField"]) {
var accId = accName.split('_')[1];
HiddenField.Set('selectedAccount', accId ? accId : '');
if(window.TransactionGrid)
window.TransactionGrid.Refresh();
}
}
function setAllAccountSelectedItem(accName) {
var item = nbAllAccounts.GetItemByName(accName);
if(item)
nbAllAccounts.SetSelectedItem(item);
}
return {
onAccountNavBarItemClick: function(s, e) {
var accName = e.item.name;
refreshTransactionGrid(accName);
if(!window.nbAllAccounts)
HiddenField.Set('selectedAccountName', accName);
else
setAllAccountSelectedItem(accName);
pageControl.SetActiveTab(pageControl.GetTab(3));
},
onAllAccountsNavBarItemClick: function(s, e) {
refreshTransactionGrid(e.item.name);
},
onAllAccountsNavBarInit: function(s, e) {
setAllAccountSelectedItem(HiddenField.Get('selectedAccountName'));
}
}
})();
window.app.budgets = (function () {
return {
showModifyDialog: function() {
this.prepareEditDialog("ModifyBudget", "Modify my budgets");
},
showModifyOverviewDialog: function() {
this.prepareEditDialog("ModifyOverviewBudgets", "Modify my budgets on the overview page");
},
prepareEditDialog: function(param, header) {
budgetsDialog.SetHeaderText(header);
budgetsDialog.PerformCallback(param);
},
showEditDialog: function() {
budgetsDialog.Show();
},
addBudget: function(s, e) {
if(!app.global.showReadOnlyMessage()) {
MainCallbackPanel.PerformCallback("AddBudget;" + e.item.name);
}
},
applyModifyChanges: function(mode) {
budgetsDialog.Hide();
if(!app.global.showReadOnlyMessage()) {
MainCallbackPanel.PerformCallback("ModifyBudget");
}
},
applyModifyOverviewChanges: function(mode) {
budgetsDialog.Hide();
if(!app.global.showReadOnlyMessage()) {
MainCallbackPanel.PerformCallback("ModifyOverviewBudget");
}
},
cancelEditing: function () {
budgetsDialog.Hide();
},
showAddPopup: function(s, e) {
addBudgetPopupMenu.ShowAtElement(s.GetMainElement());
},
/*Mobile*/
setEditModeOn_Mobile: function(){
window.app.global.applyClassToElement(document.body, 'budgetEditMode');
window.app.mobile.adjust();
},
setEditModeOff_Mobile: function(){
window.app.global.removeClassFromElement(document.body, 'budgetEditMode');
if(!app.global.showReadOnlyMessage()) {
MainCallbackPanel.PerformCallback("ModifyBudget");
}
}
};
})();
window.app.animation = (function() {
return {
lastPage: null,
pageChanged: function(s, e) {
if(this.lastPage)
this.hide(this.lastPage);
this.lastPage = document.getElementById("Page" + s.GetActiveTab().index);
var _this = this;
setTimeout(function() {
_this.show(_this.lastPage)
}, 10);
},
show: function(element) {
element.className = "animateFadeIn";
},
hide: function(element) {
element.className = "hidden";
}
};
})();
window.app.global = (function () {
return {
elementHasClass: function(element, cssClassName) {
return element.className.indexOf(cssClassName) > -1;
},
applyClassToElement: function(element, cssClassName) {
if(!this.elementHasClass(element, cssClassName)){
element.className += " " + cssClassName;
}
},
removeClassFromElement: function(element, cssClassName) {
if(this.elementHasClass(element, cssClassName)){
element.className = element.className.replace(cssClassName, "");
}
},
showReadOnlyMessage: function() {
if(window["ReadOnlyPopup"]) {
ReadOnlyPopup.Show();
return true;
}
return false;
},
hideReadOnlyMessage: function() {
if(window["ReadOnlyPopup"])
ReadOnlyPopup.Hide();
}
};
})();
window.app.transactions = (function() {
function reloadCategoryComboItems(combo, itemsType) {
var items = combo.cpItems[itemsType];
combo.ClearItems();
for(var i = 0; i < items.length; i++)
combo.AddItem(items[i][1], items[i][0]);
};
function prepareEditorsInPopup() {
prepareEditor(TitleTextBox);
DateEdit.SetValue(new Date());
TypeList.SetValue("expense");
reloadCategoryComboItems(CategoryCombo, "expense");
prepareEditor(CategoryCombo);
prepareEditor(AmountSpinEdit);
};
function prepareEditor(editor) {
editor.SetValue();
editor.SetIsValid(true);
}
return {
Grid_RowClick: function(s, e) {
s.StartEditRow(e.visibleIndex);
},
onGridEndCallback: function(s, e) {
if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
s.cpIsReadOnly = null;
return;
}
if(s.cpReloadMainPanel) {
s.cpReloadMainPanel = null;
MainCallbackPanel.PerformCallback();
}
},
onCategoryComboInit: function(s, e) {
var savedValue = s.GetValue();
var itemsType = s.cpIsGridEditor ? s.cpItemsType : "expense";
reloadCategoryComboItems(s, itemsType);
s.SetValue(savedValue);
},
onAddTransactionButtonClick: function(s, e) {
prepareEditorsInPopup();
AddTransactionPopup.ShowAtElement(TransactionGrid.GetMainElement());
},
onTypeListSelectedIndexChanged: function(s, e) {
reloadCategoryComboItems(CategoryCombo, s.GetValue());
},
onUpdateLinkClick: function(s, e) {
if(ASPxClientEdit.ValidateEditorsInContainer(AddTransactionPopup.GetMainElement())) {
AddTransactionPopup.Hide();
if(!app.global.showReadOnlyMessage())
MainCallbackPanel.PerformCallback("TransactionsGrid");
}
},
onCancelLinkClick: function(s, e) {
AddTransactionPopup.Hide();
},
/* Mobile */
addNew_Mobile: function(){
TitleTextBox.SetValue(null);
DateEdit.SetValue(new Date());
TypeList.SetValue("expense");
CategoryCombo.SetValue(null);
AmountSpinEdit.SetValue(null);
AddTransactionPopup.Show();
ASPxClientEdit.ClearGroup(null);
},
setEditModeOn_Mobile: function(){
window.app.global.applyClassToElement(document.body, 'transactionEditMode');
window.app.mobile.adjust();
},
setEditModeOff_Mobile: function(){
if(TransactionGrid.IsEditing())
TransactionGrid.CancelEdit();
window.app.global.removeClassFromElement(document.body, 'transactionEditMode');
},
editTransaction_Mobile: function(id){
TransactionGrid.StartEditRowByKey(id);
},
transactionEndCallback: function(s) {
if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
s.cpIsReadOnly = null;
return;
}
}
};
})();
window.app.upcomingBills = (function() {
return {
onAddButtonClick: function(s, e) {
UpcomingBillsGrid.AddNewRow();
},
onDeleteButtonClick: function(s, e) {
if(!UpcomingBillsGrid.InCallback() && UpcomingBillsGrid.GetSelectedRowCount() > 0 && confirm("Confirm Delete?"))
UpcomingBillsGrid.PerformCallback("deleteSelected");
},
onGridEndCallback: function(s, e) {
if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
s.cpIsReadOnly = null;
return;
}
if(s.cpReloadMainPanel) {
s.cpReloadMainPanel = null;
MainCallbackPanel.PerformCallback();
}
}
};
})();