diff --git a/app/assets/javascripts/admin/components/dashboard-mini-chart.js.es6 b/app/assets/javascripts/admin/components/dashboard-mini-chart.js.es6 index 676917e8c22..6e53028cbf3 100644 --- a/app/assets/javascripts/admin/components/dashboard-mini-chart.js.es6 +++ b/app/assets/javascripts/admin/components/dashboard-mini-chart.js.es6 @@ -20,14 +20,14 @@ export default Ember.Component.extend({ this._super(); loadScript("/javascripts/Chart.min.js").then(() => { - this.fetchReport.apply(this); + this.fetchReport(); }); }, didUpdateAttrs() { this._super(); - this.fetchReport.apply(this); + this.fetchReport(); }, @computed("dataSourceName") @@ -45,6 +45,8 @@ export default Ember.Component.extend({ }, fetchReport() { + if (this.get("isLoading")) return; + this.set("isLoading", true); let payload = {data: {}}; @@ -97,6 +99,23 @@ export default Ember.Component.extend({ }, _buildChartConfig(data) { + const values = this.get("chartData").map(d => d.y); + const max = Math.max(...values); + const min = Math.min(...values); + const stepSize = Math.max(...[Math.ceil((max - min)/5), 20]); + + const startDate = this.get("startDate") || moment(); + const endDate = this.get("endDate") || moment(); + const datesDifference = startDate.diff(endDate, "days"); + let unit = "day"; + if (datesDifference >= 366) { + unit = "quarter"; + } else if (datesDifference >= 61) { + unit = "month"; + } else if (datesDifference >= 14) { + unit = "week"; + } + return { type: "line", data, @@ -105,8 +124,22 @@ export default Ember.Component.extend({ responsive: true, layout: { padding: { left: 0, top: 0, right: 0, bottom: 0 } }, scales: { - yAxes: [{ display: true, ticks: { suggestedMin: 0 } }], - xAxes: [{ display: true }], + yAxes: [ + { + display: true, + ticks: { suggestedMin: 0, stepSize, suggestedMax: max + stepSize } + } + ], + xAxes: [ + { + display: true, + type: "time", + time: { + parser: "YYYY-MM-DD", + unit + } + } + ], } }, }; diff --git a/app/assets/javascripts/admin/components/dashboard-mini-table.js.es6 b/app/assets/javascripts/admin/components/dashboard-mini-table.js.es6 index 9b5f96e2f1b..30f22642e75 100644 --- a/app/assets/javascripts/admin/components/dashboard-mini-table.js.es6 +++ b/app/assets/javascripts/admin/components/dashboard-mini-table.js.es6 @@ -17,7 +17,7 @@ export default Ember.Component.extend({ didInsertElement() { this._super(); - this.fetchReport.apply(this); + this.fetchReport(); }, @computed("dataSourceName") @@ -26,6 +26,8 @@ export default Ember.Component.extend({ }, fetchReport() { + if (this.get("isLoading")) return; + this.set("isLoading", true); ajax(this.get("dataSource")) diff --git a/app/assets/javascripts/admin/controllers/admin-dashboard-next.js.es6 b/app/assets/javascripts/admin/controllers/admin-dashboard-next.js.es6 index 8094b042097..d030c25658e 100644 --- a/app/assets/javascripts/admin/controllers/admin-dashboard-next.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-dashboard-next.js.es6 @@ -41,6 +41,6 @@ export default Ember.Controller.extend({ }, _reportsForPeriodURL(period) { - return `/admin/dashboard_next?period=${period}`; + return `/admin/dashboard-next?period=${period}`; } }); diff --git a/app/assets/javascripts/admin/routes/admin-route-map.js.es6 b/app/assets/javascripts/admin/routes/admin-route-map.js.es6 index 1a82a9d1f8d..5b42f045e1d 100644 --- a/app/assets/javascripts/admin/routes/admin-route-map.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-route-map.js.es6 @@ -1,7 +1,7 @@ export default function() { this.route('admin', { resetNamespace: true }, function() { this.route('dashboard', { path: '/' }); - this.route('dashboard_next', { path: '/dashboard_next' }); + this.route('dashboardNext', { path: '/dashboard-next' }); this.route('adminSiteSettings', { path: '/site_settings', resetNamespace: true }, function() { this.route('adminSiteSettingsCategory', { path: 'category/:category_id', resetNamespace: true} ); }); diff --git a/app/assets/javascripts/admin/templates/components/dashboard-mini-chart.hbs b/app/assets/javascripts/admin/templates/components/dashboard-mini-chart.hbs index f2728c6d6db..7f12611bc98 100644 --- a/app/assets/javascripts/admin/templates/components/dashboard-mini-chart.hbs +++ b/app/assets/javascripts/admin/templates/components/dashboard-mini-chart.hbs @@ -10,7 +10,7 @@