diff --git a/app/assets/javascripts/admin/controllers/admin_reports_controller.js b/app/assets/javascripts/admin/controllers/admin_reports_controller.js new file mode 100644 index 00000000000..e55489d07e7 --- /dev/null +++ b/app/assets/javascripts/admin/controllers/admin_reports_controller.js @@ -0,0 +1,24 @@ +Discourse.AdminReportsController = Ember.ObjectController.extend({ + viewMode: 'table', + + // true if we're viewing the table mode + viewingTable: function() { + return this.get('viewMode') === 'table'; + }.property('viewMode'), + + // true if we're viewing the bar chart mode + viewingBarChart: function() { + return this.get('viewMode') === 'barChart'; + }.property('viewMode'), + + // Changes the current view mode to 'table' + viewAsTable: function() { + this.set('viewMode', 'table'); + }, + + // Changes the current view mode to 'barChart' + viewAsBarChart: function() { + this.set('viewMode', 'barChart'); + } + +}); \ No newline at end of file diff --git a/app/assets/javascripts/admin/models/report.js b/app/assets/javascripts/admin/models/report.js index 6bff1e35fc4..1088edbbf21 100644 --- a/app/assets/javascripts/admin/models/report.js +++ b/app/assets/javascripts/admin/models/report.js @@ -6,6 +6,18 @@ Discourse.Report.reopenClass({ $.ajax("/admin/reports/" + type, { type: 'GET', success: function(json) { + + // Add a percent field to each tuple + var maxY = 0; + json.report.data.forEach(function (row) { + if (row.y > maxY) maxY = row.y; + }); + if (maxY > 0) { + json.report.data.forEach(function (row) { + row.percentage = Math.round((row.y / maxY) * 100); + }); + } + model.mergeAttributes(json.report); model.set('loaded', true); } diff --git a/app/assets/javascripts/admin/templates/reports.js.handlebars b/app/assets/javascripts/admin/templates/reports.js.handlebars index edf07fcf71a..7a5a3aadf0b 100644 --- a/app/assets/javascripts/admin/templates/reports.js.handlebars +++ b/app/assets/javascripts/admin/templates/reports.js.handlebars @@ -1,7 +1,15 @@ {{#if loaded}}
{{xaxis}} | {{yaxis}} | @@ -10,7 +18,16 @@ {{#each data}}|
---|---|---|
{{x}} | -{{y}} | ++ {{#if controller.viewingTable}} + {{y}} + {{/if}} + {{#if controller.viewingBarChart}} + | + {{/if}} +