Commit fc72f8e37ccb447131ee1492c147cef9add83581

Authored by Dmitriy Zaporozhets
2 parents 34cf3c49 5a064b02

Merge branch 'performance-improvements' into 'master'

Performance improvements

Fixes #1135
app/assets/stylesheets/gl_bootstrap.scss
... ... @@ -253,6 +253,12 @@ ul.breadcrumb {
253 253 }
254 254 }
255 255  
  256 + .panel-footer {
  257 + .pagination {
  258 + margin: 0;
  259 + }
  260 + }
  261 +
256 262 &.panel-small {
257 263 .panel-heading {
258 264 padding: 6px 15px;
... ...
app/controllers/admin/groups_controller.rb
... ... @@ -8,6 +8,8 @@ class Admin::GroupsController < Admin::ApplicationController
8 8 end
9 9  
10 10 def show
  11 + @members = @group.members.order("group_access DESC").page(params[:members_page]).per(30)
  12 + @projects = @group.projects.page(params[:projects_page]).per(30)
11 13 end
12 14  
13 15 def new
... ...
app/controllers/admin/projects_controller.rb
... ... @@ -17,6 +17,11 @@ class Admin::ProjectsController < Admin::ApplicationController
17 17 end
18 18  
19 19 def show
  20 + if @group
  21 + @group_members = @group.members.order("group_access DESC").page(params[:group_members_page]).per(30)
  22 + end
  23 +
  24 + @project_members = @project.users_projects.page(params[:project_members_page]).per(30)
20 25 end
21 26  
22 27 def transfer
... ...
app/views/admin/groups/show.html.haml
... ... @@ -31,11 +31,12 @@
31 31  
32 32 .panel.panel-default
33 33 .panel-heading
34   - Projects
35   - %small
36   - (#{@group.projects.count})
  34 + %h3.panel-title
  35 + Projects
  36 + %span.badge
  37 + #{@group.projects.count}
37 38 %ul.well-list
38   - - @group.projects.sort_by(&:name).each do |project|
  39 + - @projects.each do |project|
39 40 %li
40 41 %strong
41 42 = link_to project.name_with_namespace, [:admin, project]
... ... @@ -43,6 +44,8 @@
43 44 = repository_size(project)
44 45 %span.pull-right.light
45 46 %span.monospace= project.path_with_namespace + ".git"
  47 + .panel-footer
  48 + = paginate @projects, param_name: 'projects_page', theme: 'gitlab'
46 49  
47 50 .col-md-6
48 51 .panel.panel-default
... ... @@ -62,12 +65,12 @@
62 65 = submit_tag 'Add users into group', class: "btn btn-create"
63 66 .panel.panel-default
64 67 .panel-heading
65   - %strong #{@group.name}
66   - Group Members
67   - %small
68   - (#{@group.users_groups.count})
  68 + %h3.panel-title
  69 + Members
  70 + %span.badge
  71 + #{@group.users_groups.count}
69 72 %ul.well-list.group-users-list
70   - - @group.users_groups.order('group_access DESC').each do |member|
  73 + - @members.each do |member|
71 74 - user = member.user
72 75 %li{class: dom_class(user)}
73 76 .list-item-name
... ... @@ -77,3 +80,5 @@
77 80 = member.human_access
78 81 = link_to group_users_group_path(@group, member), data: { confirm: remove_user_from_group_message(@group, user) }, method: :delete, remote: true, class: "btn-tiny btn btn-remove", title: 'Remove user from group' do
79 82 %i.icon-minus.icon-white
  83 + .panel-footer
  84 + = paginate @members, param_name: 'members_page', theme: 'gitlab'
... ...
app/views/admin/projects/show.html.haml
... ... @@ -100,8 +100,10 @@
100 100 = link_to admin_group_path(@group), class: 'btn btn-small' do
101 101 %i.icon-edit
102 102 %ul.well-list
103   - - @group.users_groups.order('group_access DESC').each do |member|
  103 + - @group_members.each do |member|
104 104 = render 'users_groups/users_group', member: member, show_controls: false
  105 + .panel-footer
  106 + = paginate @group_members, param_name: 'group_members_page', theme: 'gitlab'
105 107  
106 108 .panel.panel-default
107 109 .panel-heading
... ... @@ -113,7 +115,7 @@
113 115 %i.icon-edit
114 116 Manage Access
115 117 %ul.well-list.team_members
116   - - @project.users_projects.each do |users_project|
  118 + - @project_members.each do |users_project|
117 119 - user = users_project.user
118 120 %li.users_project
119 121 .list-item-name
... ... @@ -126,3 +128,5 @@
126 128 %span.light= users_project.human_access
127 129 = link_to project_team_member_path(@project, user), data: { confirm: remove_from_project_team_message(@project, user)}, method: :delete, remote: true, class: "btn btn-small btn-remove" do
128 130 %i.icon-remove
  131 + .panel-footer
  132 + = paginate @project_members, param_name: 'project_members_page', theme: 'gitlab'
... ...