From 4aef6531076e8c9d00252050d0757b32a22519c1 Mon Sep 17 00:00:00 2001 From: Misha Zatsman Date: Wed, 23 Apr 2014 21:20:57 +0000 Subject: [PATCH] Added row to display totals. --- apps/workbench/app/controllers/users_controller.rb | 6 ++++++ apps/workbench/app/views/users/storage.html.erb | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/apps/workbench/app/controllers/users_controller.rb b/apps/workbench/app/controllers/users_controller.rb index 53f3d3912f..8a3d35aaf0 100644 --- a/apps/workbench/app/controllers/users_controller.rb +++ b/apps/workbench/app/controllers/users_controller.rb @@ -67,6 +67,7 @@ class UsersController < ApplicationController @breadcrumb_page_name = nil @users = User.limit(params[:limit] || 1000).all @user_storage = {} + total_storage = {} @log_date = {} @users.each do |u| @user_storage[u.uuid] ||= {} @@ -76,12 +77,17 @@ class UsersController < ApplicationController order(:created_at => :desc). limit(1) storage_log.each do |log_entry| + # We expect this block to only execute once since we specified limit(1) @user_storage[u.uuid] = log_entry['properties'] @log_date[u.uuid] = log_entry['event_at'] end + total_storage.merge!(@user_storage[u.uuid]) { |k,v1,v2| v1 + v2 } end @users = @users.sort_by { |u| [-@user_storage[u.uuid].values.push(0).inject(:+), u.full_name]} + # Prepend a "Total" pseudo-user to the sorted list + @users = [OpenStruct.new(uuid: nil)] + @users + @user_storage[nil] = total_storage end def show_pane_list diff --git a/apps/workbench/app/views/users/storage.html.erb b/apps/workbench/app/views/users/storage.html.erb index b82fd856b0..e736e78cb7 100644 --- a/apps/workbench/app/views/users/storage.html.erb +++ b/apps/workbench/app/views/users/storage.html.erb @@ -36,13 +36,13 @@ table#users-storage-table .byte-value { <% @users.each do |user| %> + <% if user.uuid %> - <% if user.uuid %> - <%= link_to_if_arvados_object user, friendly_name: true %> - <% else %> - Total - <% end %> + <%= link_to_if_arvados_object user, friendly_name: true %> + <% else %> + Total + <% end %> <% [:read_collections_total_bytes, :read_collections_weighted_bytes, :persisted_collections_total_bytes, :persisted_collections_weighted_bytes].each do |key| %> -- 2.30.2