Working users/storage page!
authorMisha Zatsman <misha-arvados@zatsman.com>
Wed, 23 Apr 2014 01:14:31 +0000 (01:14 +0000)
committerMisha Zatsman <misha-arvados@zatsman.com>
Wed, 23 Apr 2014 01:14:31 +0000 (01:14 +0000)
apps/workbench/app/controllers/users_controller.rb
apps/workbench/app/views/users/storage.html.erb

index cf61c4bb22b2353486cbb2af0bc85e2c9acf6dcc..72d44f51c2b27d36b8f12c8d359308b5d3500ecf 100644 (file)
@@ -66,6 +66,23 @@ class UsersController < ApplicationController
   def storage
     @breadcrumb_page_name = nil
     @users = User.limit(params[:limit] || 1000).all
+    @user_storage = {}
+    @users.each do |u|
+      @user_storage[u.uuid] ||= {}
+      storage_log = Log.
+        # filter([[:object_uuid, '=', u.uuid],
+        #         [:event_type, '=', 'user-storage-report']])
+        filter([[:object_uuid, '=', u.uuid],
+                [:event_type, '=', 'user-storage-report']]).
+        order(:created_at => :desc).
+        limit(1)
+      storage_log.each do |log_entry|
+        @user_storage[u.uuid] = log_entry['properties']
+      end
+    end
+    @users = @users.sort_by do |u|
+      [-@user_storage[u.uuid].values.push(0).inject(:+), u.full_name]
+    end
   end
 
   def show_pane_list
index ffa67003cdd129d5fb887609c8a61ac99e2f2502..51d0c2e1e3986cea501c9dc3d68f30c66d16aba2 100644 (file)
@@ -43,6 +43,11 @@ table#users-storage-table .cell-for-span-Last-month {
        <% end %>
       </small>
     </td>
+    <% [:read_collections_total_bytes, :read_collections_weighted_bytes, :persisted_collections_total_bytes, :persisted_collections_weighted_bytes].each do |key| %>
+    <td>
+      <%= @user_storage[user.uuid][key].to_s %>
+    </td>
+    <% end %>
   </tr>
   <% end %>
 </table>