Files
firefly-iii/public/js/ff/reports/all.js
2017-12-12 18:22:29 +01:00

136 lines
3.7 KiB
JavaScript
Vendored

function loadAjaxPartial(holder, uri) {
"use strict";
$.get(uri).done(function (data) {
displayAjaxPartial(data, holder);
}).fail(function () {
failAjaxPartial(uri, holder);
});
}
function failAjaxPartial(uri, holder) {
"use strict";
var holderObject = $('#' + holder);
holderObject.parent().find('.overlay').remove();
holderObject.addClass('general-chart-error');
}
function createCookie(name, value, days) {
"use strict";
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
} else {
expires = "";
}
document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}
function readCookie(name) {
"use strict";
var nameEQ = encodeURIComponent(name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) === 0) {
return decodeURIComponent(c.substring(nameEQ.length, c.length));
}
}
return null;
}
function triggerInfoClick() {
"use strict";
// find the little info buttons and respond to them.
$('.firefly-info-button').unbind('click').click(clickInfoButton);
}
function clickInfoButton(e) {
"use strict";
// find all data tags, regardless of what they are:
var element = $(e.target);
var attributes = element.data();
// set wait cursor
$('body').addClass('waiting');
// add some more elements:
attributes.startDate = startDate;
attributes.endDate = endDate;
attributes.accounts = accountIds;
$.getJSON('popup/general', {attributes: attributes}).done(respondInfoButton).fail(errorInfoButton);
}
function errorInfoButton() {
"use strict";
// remove wait cursor
$('body').removeClass('waiting');
alert('Apologies. The requested data is not (yet) available.');
}
function respondInfoButton(data) {
"use strict";
// remove wait cursor
$('body').removeClass('waiting');
$('#defaultModal').empty().html(data.html).modal('show');
}
function displayAjaxPartial(data, holder) {
"use strict";
var obj = $('#' + holder);
obj.html(data);
obj.parent().find('.overlay').remove();
// call some often needed recalculations and what-not:
// find a sortable table and make it sortable:
if (typeof $.bootstrapSortable === "function") {
$.bootstrapSortable(true);
}
// find the info click things and respond to them:
triggerInfoClick();
// trigger list thing
listLengthInitial();
// budget thing in year and multi year report:
$('.budget-chart-activate').unbind('click').on('click', clickBudgetChart);
// category thing in year and multi year report:
$('.category-chart-activate').unbind('click').on('click', clickCategoryChart);
}
function clickCategoryChart(e) {
"use strict";
var link = $(e.target);
var categoryId = link.data('category');
$('#category_help').remove();
var URL = 'chart/category/report-period/' + categoryId + '/' + accountIds + '/' + startDate + '/' + endDate;
var container = 'category_chart';
columnChart(URL, container);
return false;
}
function clickBudgetChart(e) {
"use strict";
var link = $(e.target);
var budgetId = link.data('budget');
$('#budget_help').remove();
var URL = 'chart/budget/period/' + budgetId + '/' + accountIds + '/' + startDate + '/' + endDate;
var container = 'budget_chart';
columnChart(URL, container);
return false;
}