Commented, cleaned up some calls.
This commit is contained in:
parent
1a6fa5de0d
commit
b5e8850aa8
@ -56,13 +56,15 @@ var ListViewModel = function() {
|
||||
|
||||
// Returns the data for the categories by summing values with same category
|
||||
self.expenseCategoriesChart = ko.computed(function() {
|
||||
var entries=ko.utils.unwrapObservable(self.entries);
|
||||
var unwrap = ko.utils.unwrapObservable;
|
||||
|
||||
var entries=unwrap(self.entries);
|
||||
|
||||
// First pass: get sum values for each category.
|
||||
var chartValuesTmp = {};
|
||||
$.each(entries, function(index, entry) {
|
||||
var category = entry.category();
|
||||
var value = entry.value() ? Number(entry.value()) : null;
|
||||
var category = unwrap(entry.category);
|
||||
var value = unwrap(entry.value) ? Number(unwrap(entry.value)) : null;
|
||||
|
||||
if(category && value && value < 0.0) {
|
||||
var oldValue = 0.0;
|
||||
@ -86,20 +88,22 @@ var ListViewModel = function() {
|
||||
|
||||
// Return the data for the sold chart.
|
||||
self.entriesChart = ko.computed(function() {
|
||||
var unwrap = ko.utils.unwrapObservable;
|
||||
|
||||
// We assume that entries are sorted by value date descending.
|
||||
var entries = ko.utils.unwrapObservable(self.entries).slice().reverse();
|
||||
var entries = unwrap(self.entries).slice().reverse();
|
||||
|
||||
// First pass: get open, high, low and close values for each day.
|
||||
var chartValuesTmp = {};
|
||||
$.each(entries, function(index, entry) {
|
||||
//var date = entry.value_date() ? entry.value_date().toString() : null;
|
||||
var date = entry.value_date();
|
||||
var value = entry.value ? Number(entry.value()) : null;
|
||||
var date = unwrap(entry.value_date);
|
||||
var value = unwrap(entry.value) ? Number(unwrap(entry.value())) : null;
|
||||
|
||||
if(date && value) {
|
||||
var values = {};
|
||||
|
||||
var sold = Number(entry.sold());
|
||||
var sold = Number(unwrap(entry.sold));
|
||||
var open = Number((sold - value).toFixed(2));
|
||||
|
||||
values['open'] = open;
|
||||
@ -208,28 +212,36 @@ var ListViewModel = function() {
|
||||
});
|
||||
};
|
||||
|
||||
// Function to select template in function of selected item.
|
||||
self.templateToUse = function (item) {
|
||||
return self.selectedItem() === item ? 'editTmpl' : 'itemsTmpl';
|
||||
};
|
||||
|
||||
// Function to edit an item
|
||||
self.edit = function(item) {
|
||||
// Cancel previous editing.
|
||||
if(self.savedItem) {
|
||||
self.cancel();
|
||||
}
|
||||
|
||||
// Save current item
|
||||
self.savedItem=ko.toJS(item);
|
||||
self.selectedItem(item);
|
||||
|
||||
// Initialize date picker for value date column.
|
||||
$("#value_date").datepicker().on('changeDate', function(ev){
|
||||
self.selectedItem().value_date(ev.date.format(ev.currentTarget.dataset.dateFormat));
|
||||
});
|
||||
|
||||
// Initialize date picker for operation date column.
|
||||
$("#operation_date").datepicker().on('changeDate', function(ev){
|
||||
self.selectedItem().operation_date(ev.date.format(ev.currentTarget.dataset.dateFormat));
|
||||
});
|
||||
};
|
||||
|
||||
// Function to cancel current editing.
|
||||
self.cancel = function() {
|
||||
// Reset selected item fields to saved item ones.
|
||||
if(self.selectedItem() && self.savedItem) {
|
||||
self.selectedItem().id(self.savedItem.id); // id should not change, but just in case...
|
||||
self.selectedItem().operation_date(self.savedItem.operation_date);
|
||||
@ -239,57 +251,80 @@ var ListViewModel = function() {
|
||||
self.selectedItem().account_id(self.savedItem.account_id); // account_id should not change, but just in case...
|
||||
}
|
||||
|
||||
// This item was just added.
|
||||
// This item was just added: remove it from the entries array.
|
||||
if(self.selectedItem() && !self.selectedItem().id()) {
|
||||
self.entries.remove(self.selectedItem());
|
||||
}
|
||||
|
||||
// Reset saved and selected items to null.
|
||||
self.savedItem = null;
|
||||
self.selectedItem(null);
|
||||
};
|
||||
|
||||
// Function to add a new entry.
|
||||
self.add = function() {
|
||||
var newEntry = new entry();
|
||||
newEntry.account_id(self.account().id());
|
||||
self.entries.unshift(ko.mapping.fromJS({
|
||||
id: null,
|
||||
value_date: null,
|
||||
operation_date: null,
|
||||
label: null,
|
||||
value: null,
|
||||
sold: null,
|
||||
pointedsold: null,
|
||||
category: null,
|
||||
account_id: self.account().id()
|
||||
}));
|
||||
|
||||
self.entries.unshift(newEntry);
|
||||
|
||||
self.edit(newEntry);
|
||||
self.edit(self.entries()[0]);
|
||||
};
|
||||
|
||||
// Function to save the current selected entry.
|
||||
self.save = function() {
|
||||
// Transform selected entry to a javascript object.
|
||||
var item = ko.toJS(self.selectedItem());
|
||||
|
||||
// Ajax call to save the entry.
|
||||
$.post("api/entry.php", {action: "save_entry", entry:item}).success(function(data) {
|
||||
message("success", "Save", data.message);
|
||||
|
||||
self.selectedItem(null);
|
||||
self.savedItem = null;
|
||||
|
||||
// Reload accounts to update solds.
|
||||
self.loadAccounts();
|
||||
}).error(function() {
|
||||
message("error", "Error.", "Unexpected error.");
|
||||
});
|
||||
};
|
||||
|
||||
// Function to remove an entry.
|
||||
self.remove = function (item) {
|
||||
// Cancel current editing.
|
||||
self.cancel();
|
||||
|
||||
if (item.id()) {
|
||||
self.itemToRemove(item);
|
||||
// This entry is saved in database, we show a modal dialog to confirm the removal.
|
||||
self.removedItem = item;
|
||||
$('#remove-confirm').modal();
|
||||
} else {
|
||||
// This entry was not saved in database yet, we just remove it from the list.
|
||||
self.entries.remove(item);
|
||||
}
|
||||
};
|
||||
|
||||
// Function to confirm the removal of an entry.
|
||||
self.confirmRemove = function() {
|
||||
var item = self.itemToRemove();
|
||||
var item = self.removedItem;
|
||||
|
||||
$.post("api/entry.php", {action: "remove_entry", entry:item}).success(function (result) {
|
||||
// Reload accounts to update solds.
|
||||
self.loadAccounts();
|
||||
}).complete(function (result) {
|
||||
self.itemToRemove(null);
|
||||
// Reset removed item to null and hide the modal dialog.
|
||||
self.removedItem = null;
|
||||
$('#remove-confirm').modal('hide');
|
||||
});
|
||||
};
|
||||
|
||||
// Callback function to select a new month.
|
||||
self.selectMonth = function(month) {
|
||||
if(month) {
|
||||
self.month(month);
|
||||
@ -297,6 +332,7 @@ var ListViewModel = function() {
|
||||
}
|
||||
};
|
||||
|
||||
// Callback function to select a new account.
|
||||
self.selectAccount = function(account) {
|
||||
if(account) {
|
||||
self.account(account);
|
||||
|
Loading…
Reference in New Issue
Block a user