summaryrefslogtreecommitdiff
path: root/assets/js/src/Router.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/src/Router.js')
-rw-r--r--assets/js/src/Router.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/assets/js/src/Router.js b/assets/js/src/Router.js
new file mode 100644
index 00000000..d1e5de2a
--- /dev/null
+++ b/assets/js/src/Router.js
@@ -0,0 +1,34 @@
+function Router() {
+ this.routes = {};
+}
+
+Router.prototype.addRoute = function(id, controller) {
+ this.routes[id] = controller;
+};
+
+Router.prototype.dispatch = function(app) {
+ for (var id in this.routes) {
+ if (document.getElementById(id)) {
+ var controller = Object.create(this.routes[id].prototype);
+ controller.execute(app);
+ break;
+ }
+ }
+};
+
+jQuery(document).ready(function() {
+ var app = new App();
+ var router = new Router();
+ router.addRoute('board', Board);
+ router.addRoute('calendar', Calendar);
+ router.addRoute('screenshot-zone', Screenshot);
+ router.addRoute('analytic-task-repartition', TaskRepartitionChart);
+ router.addRoute('analytic-user-repartition', UserRepartitionChart);
+ router.addRoute('analytic-cfd', CumulativeFlowDiagram);
+ router.addRoute('analytic-burndown', BurndownChart);
+ router.addRoute('budget-chart', BudgetChart);
+ router.addRoute('analytic-avg-time-column', AvgTimeColumnChart);
+ router.addRoute('analytic-task-time-column', TaskTimeColumnChart);
+ router.addRoute('analytic-lead-cycle-time', LeadCycleTimeChart);
+ router.dispatch(app);
+});