Files
firefly-iii/resources/assets/v2/dashboard.js

99 lines
2.5 KiB
JavaScript
Raw Normal View History

2023-07-22 07:51:02 +02:00
/*
* dashboard.js
* Copyright (c) 2023 james@firefly-iii.org
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import './bootstrap.js';
2023-07-23 07:10:31 +02:00
import dates from './pages/shared/dates.js';
2023-07-22 16:42:33 +02:00
import boxes from './pages/dashboard/boxes.js';
2023-07-24 18:58:35 +02:00
import accounts from './pages/dashboard/accounts.js';
2023-08-04 19:10:49 +02:00
import budgets from './pages/dashboard/budgets.js';
2023-08-06 18:33:29 +02:00
import categories from './pages/dashboard/categories.js';
2023-08-08 14:11:04 +02:00
import sankey from './pages/dashboard/sankey.js';
2023-08-09 14:13:32 +02:00
import subscriptions from './pages/dashboard/subscriptions.js';
2023-08-10 19:51:36 +02:00
import piggies from './pages/dashboard/piggies.js';
2023-07-22 07:51:02 +02:00
2023-08-12 07:53:11 +02:00
import {
Chart,
LineController,
LineElement,
PieController,
BarController,
BarElement,
TimeScale,
ArcElement,
LinearScale,
Legend,
Filler,
Colors,
CategoryScale,
PointElement,
Tooltip
} from "chart.js";
import 'chartjs-adapter-date-fns';
// register things
Chart.register({
LineController,
LineElement,
ArcElement,
BarController,
TimeScale,
PieController,
BarElement,
Filler,
Colors,
LinearScale,
CategoryScale,
PointElement,
Tooltip,
Legend
});
const comps = {
dates,
boxes,
accounts,
budgets,
categories,
sankey,
subscriptions,
piggies
};
2023-07-22 07:51:02 +02:00
2023-07-22 16:42:33 +02:00
function loadPage(comps) {
Object.keys(comps).forEach(comp => {
2023-08-08 14:11:04 +02:00
console.log(`Loading page component "${comp}"`);
2023-07-22 16:42:33 +02:00
let data = comps[comp]();
Alpine.data(comp, () => data);
});
Alpine.start();
}
2023-07-22 07:51:02 +02:00
2023-07-22 16:42:33 +02:00
// wait for load until bootstrapped event is received.
document.addEventListener('firefly-iii-bootstrapped', () => {
2023-08-06 18:33:29 +02:00
//console.log('Loaded through event listener.');
2023-07-22 16:42:33 +02:00
loadPage(comps);
2023-07-22 07:51:02 +02:00
});
2023-07-22 16:42:33 +02:00
// or is bootstrapped before event is triggered.
if (window.bootstrapped) {
2023-08-06 18:33:29 +02:00
//console.log('Loaded through window variable.');
2023-07-22 16:42:33 +02:00
loadPage(comps);
}