diff --git a/app/assets/javascripts/admin/routes/admin_dashboard_route.js b/app/assets/javascripts/admin/routes/admin_dashboard_route.js index 74845ee5174..769d19870ae 100644 --- a/app/assets/javascripts/admin/routes/admin_dashboard_route.js +++ b/app/assets/javascripts/admin/routes/admin_dashboard_route.js @@ -26,6 +26,7 @@ Discourse.AdminDashboardRoute = Discourse.Route.extend({ d.reports.each(function(report){ c.set(report.type, Discourse.Report.create(report)); }); + c.set('totalUsers', d.total_users); c.set('loading', false); }); } diff --git a/app/assets/javascripts/admin/templates/dashboard.js.handlebars b/app/assets/javascripts/admin/templates/dashboard.js.handlebars index 266947fa95e..bd4cde74b2c 100644 --- a/app/assets/javascripts/admin/templates/dashboard.js.handlebars +++ b/app/assets/javascripts/admin/templates/dashboard.js.handlebars @@ -38,6 +38,15 @@

+
+ + + + + +
{{i18n admin.dashboard.total_users}}{{#unless loading}}{{ totalUsers }}{{/unless}}
+
+
@@ -70,7 +79,6 @@ {{#unless loading}} - {{ render 'admin_report_total_users' total_users }} {{ render 'admin_report_visits' visits }} {{/unless}}
diff --git a/app/assets/stylesheets/admin/admin_base.scss b/app/assets/stylesheets/admin/admin_base.scss index bee0325f099..2d6a1e38c9b 100644 --- a/app/assets/stylesheets/admin/admin_base.scss +++ b/app/assets/stylesheets/admin/admin_base.scss @@ -324,6 +324,14 @@ table { text-align: center; } } + + &.totals { + width: 160px; + + table tr:first-child td { + border-top: none; + } + } } diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb index 9d34bbaf4ee..3bf4263bdce 100644 --- a/app/controllers/admin/dashboard_controller.rb +++ b/app/controllers/admin/dashboard_controller.rb @@ -2,7 +2,8 @@ class Admin::DashboardController < Admin::AdminController def index render_json_dump({ - reports: ['visits', 'signups', 'topics', 'posts', 'total_users', 'flags'].map { |type| Report.find(type) } + reports: ['visits', 'signups', 'topics', 'posts', 'flags'].map { |type| Report.find(type) }, + total_users: User.count }.merge( SiteSetting.version_checks? ? {version_check: DiscourseUpdates.check_version} : {} )) diff --git a/app/models/report.rb b/app/models/report.rb index 31d22e4933f..038fe34ec33 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -69,17 +69,6 @@ class Report end end - def self.report_total_users(report) - report.data = [] - fetch report do - (0..30).to_a.reverse.each do |i| - if (count = User.where('created_at < ?', i.days.ago).count) > 0 - report.data << {x: i.days.ago.to_date.to_s, y: count} - end - end - end - end - def self.report_flags(report) report.data = [] fetch report do diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 6711ebcd8f8..3065cb9d3d0 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -690,6 +690,7 @@ en: please_upgrade: "Please upgrade!" latest_version: "Latest version" update_often: 'Please update often!' + total_users: "Total Users" reports: today: "Today" diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index f451d6df6af..daa7033e7ce 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -58,29 +58,6 @@ describe Report do end end - describe "total_users report" do - let(:report) { Report.find("total_users", cache: false) } - - context "no total_users" do - it 'returns an empty report' do - report.data.should be_blank - end - end - - context "with users" do - before do - Fabricate(:user, created_at: 25.hours.ago) - Fabricate(:user, created_at: 1.hours.ago) - Fabricate(:user, created_at: 1.hours.ago) - end - - it 'returns correct data' do - report.data[0][:y].should == 1 - report.data[1][:y].should == 3 - end - end - end - describe '#fetch' do context 'signups' do let(:report) { Report.find('signups', cache: true) }