1
0
mirror of https://github.com/aclindsa/moneygo.git synced 2025-06-13 13:39:23 -04:00

Add lots of backend and back-frontend report infrastructure

This commit is contained in:
2017-06-16 20:55:22 -04:00
parent eb5c9cdcd8
commit 9ce6454997
13 changed files with 652 additions and 232 deletions

View File

@ -8,7 +8,6 @@ var SecurityTemplateReducer = require('./SecurityTemplateReducer');
var SelectedAccountReducer = require('./SelectedAccountReducer');
var SelectedSecurityReducer = require('./SelectedSecurityReducer');
var ReportReducer = require('./ReportReducer');
var SelectedReportReducer = require('./SelectedReportReducer');
var TransactionReducer = require('./TransactionReducer');
var TransactionPageReducer = require('./TransactionPageReducer');
var ImportReducer = require('./ImportReducer');
@ -23,7 +22,6 @@ module.exports = Redux.combineReducers({
selectedAccount: SelectedAccountReducer,
selectedSecurity: SelectedSecurityReducer,
reports: ReportReducer,
selectedReport: SelectedReportReducer,
transactions: TransactionReducer,
transactionPage: TransactionPageReducer,
imports: ImportReducer,

View File

@ -3,15 +3,78 @@ var assign = require('object-assign');
var ReportConstants = require('../constants/ReportConstants');
var UserConstants = require('../constants/UserConstants');
module.exports = function(state = {}, action) {
const initialState = {
map: {},
tabulations: {},
list: [],
selected: -1,
selectedTabulation: null,
seriesTraversal: []
};
module.exports = function(state = initialState, action) {
switch (action.type) {
case ReportConstants.REPORT_FETCHED:
var report = action.report;
case ReportConstants.REPORTS_FETCHED:
var selected = -1;
var reports = {};
var list = [];
for (var i = 0; i < action.reports.length; i++) {
var report = action.reports[i];
reports[report.ReportId] = report;
list.push(report.ReportId);
if (state.selected == report.ReportId)
selected = state.selected;
}
return assign({}, state, {
map: reports,
list: list,
tabulations: {},
selected: selected
});
case ReportConstants.REPORT_CREATED:
case ReportConstants.REPORT_UPDATED:
var report = action.report;
var reports = assign({}, state.map, {
[report.ReportId]: report
});
var list = [];
for (var reportId in reports) {
if (reports.hasOwnProperty(reportId))
list.push(report.ReportId);
}
return assign({}, state, {
map: reports,
list: list
});
case ReportConstants.REPORT_REMOVED:
var selected = state.selected;
if (action.reportId == selected)
selected = -1;
var reports = assign({}, state.map);
delete reports[action.reportId];
return assign({}, state, {
map: reports,
selected: selected
});
case ReportConstants.REPORT_SELECTED:
return assign({}, state, {
selected: action.report.ReportId,
selectedTabulation: null,
seriesTraversal: []
});
case ReportConstants.TABULATION_FETCHED:
var tabulation = action.tabulation;
return assign({}, state, {
[tabulation.ReportId]: tabulation
});
case ReportConstants.SERIES_SELECTED:
return {
selectedTabulation: action.tabulation,
seriesTraversal: action.seriesTraversal
};
case UserConstants.USER_LOGGEDOUT:
return {};
return initialState;
default:
return state;
}

View File

@ -1,23 +0,0 @@
var assign = require('object-assign');
var ReportConstants = require('../constants/ReportConstants');
var UserConstants = require('../constants/UserConstants');
const initialState = {
report: null,
seriesTraversal: []
};
module.exports = function(state = initialState, action) {
switch (action.type) {
case ReportConstants.REPORT_SELECTED:
return {
report: action.report,
seriesTraversal: action.seriesTraversal
};
case UserConstants.USER_LOGGEDOUT:
return initialState;
default:
return state;
}
};