diff --git a/app/assets/javascripts/admin/controllers/admin-reports.js.es6 b/app/assets/javascripts/admin/controllers/admin-reports.js.es6 index 9a8a4555c88..6bb36989b75 100644 --- a/app/assets/javascripts/admin/controllers/admin-reports.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-reports.js.es6 @@ -2,17 +2,27 @@ export default Ember.ObjectController.extend({ viewMode: 'table', viewingTable: Em.computed.equal('viewMode', 'table'), viewingBarChart: Em.computed.equal('viewMode', 'barChart'), + startDate: null, + endDate: null, + refreshing: false, actions: { - // Changes the current view mode to 'table' + refreshReport: function() { + var self = this; + this.set('refreshing', true); + Discourse.Report.find(this.get('type'), this.get('startDate'), this.get('endDate')).then(function(r) { + self.set('model', r); + }).finally(function() { + self.set('refreshing', false); + }); + }, + viewAsTable: function() { this.set('viewMode', 'table'); }, - // Changes the current view mode to 'barChart' viewAsBarChart: function() { this.set('viewMode', 'barChart'); } } - }); diff --git a/app/assets/javascripts/admin/models/report.js b/app/assets/javascripts/admin/models/report.js index a182d846813..8157adc0b4a 100644 --- a/app/assets/javascripts/admin/models/report.js +++ b/app/assets/javascripts/admin/models/report.js @@ -140,9 +140,12 @@ Discourse.Report = Discourse.Model.extend({ }); Discourse.Report.reopenClass({ - find: function(type) { - var model = Discourse.Report.create({type: type}); - Discourse.ajax("/admin/reports/" + type).then(function (json) { + find: function(type, startDate, endDate) { + + return Discourse.ajax("/admin/reports/" + type, {data: { + start_date: startDate, + end_date: endDate + }}).then(function (json) { // Add a percent field to each tuple var maxY = 0; json.report.data.forEach(function (row) { @@ -153,9 +156,9 @@ Discourse.Report.reopenClass({ row.percentage = Math.round((row.y / maxY) * 100); }); } + var model = Discourse.Report.create({type: type}); model.setProperties(json.report); - model.set('loaded', true); + return model; }); - return(model); } }); diff --git a/app/assets/javascripts/admin/routes/admin_reports_route.js b/app/assets/javascripts/admin/routes/admin_reports_route.js index cdc06720ecd..21b842a9f86 100644 --- a/app/assets/javascripts/admin/routes/admin_reports_route.js +++ b/app/assets/javascripts/admin/routes/admin_reports_route.js @@ -9,5 +9,13 @@ Discourse.AdminReportsRoute = Discourse.Route.extend({ model: function(params) { return Discourse.Report.find(params.type); + }, + + setupController: function(controller, model) { + controller.setProperties({ + model: model, + startDate: moment(model.get('start_date')).format('YYYY-MM-DD'), + endDate: moment(model.get('end_date')).format('YYYY-MM-DD') + }); } }); diff --git a/app/assets/javascripts/admin/templates/reports.hbs b/app/assets/javascripts/admin/templates/reports.hbs index 6fbfeb39ce5..a675a74480d 100644 --- a/app/assets/javascripts/admin/templates/reports.hbs +++ b/app/assets/javascripts/admin/templates/reports.hbs @@ -1,14 +1,28 @@ -{{#if loaded}} -
{{xaxis}} | @@ -31,7 +45,4 @@
---|