Commit 6eb045fc98f02a54b5db37ff2a43b008fe971158

Authored by Dmitriy Zaporozhets
1 parent 52f312a8

Prevent Project.all & User.all in selectboxes

app/assets/stylesheets/selects.scss
@@ -10,6 +10,10 @@ @@ -10,6 +10,10 @@
10 10
11 .ajax-users-select { 11 .ajax-users-select {
12 width: 400px; 12 width: 400px;
  13 +
  14 + &.input-large {
  15 + width: 210px;
  16 + }
13 } 17 }
14 18
15 .user-result { 19 .user-result {
app/controllers/admin/projects_controller.rb
@@ -2,8 +2,10 @@ class Admin::ProjectsController < Admin::ApplicationController @@ -2,8 +2,10 @@ class Admin::ProjectsController < Admin::ApplicationController
2 before_filter :project, only: [:edit, :show, :update, :destroy, :team_update] 2 before_filter :project, only: [:edit, :show, :update, :destroy, :team_update]
3 3
4 def index 4 def index
5 - @projects = Project.scoped  
6 - @projects = @projects.where(namespace_id: params[:namespace_id]) if params[:namespace_id].present? 5 + owner_id = params[:owner_id]
  6 + user = User.find_by_id(owner_id)
  7 +
  8 + @projects = user ? user.owned_projects : Project.scoped
7 @projects = @projects.where(public: true) if params[:public_only].present? 9 @projects = @projects.where(public: true) if params[:public_only].present?
8 @projects = @projects.with_push if params[:with_push].present? 10 @projects = @projects.with_push if params[:with_push].present?
9 @projects = @projects.abandoned if params[:abandoned].present? 11 @projects = @projects.abandoned if params[:abandoned].present?
app/helpers/application_helper.rb
@@ -192,9 +192,12 @@ module ApplicationHelper @@ -192,9 +192,12 @@ module ApplicationHelper
192 alias_method :url_to_image, :image_url 192 alias_method :url_to_image, :image_url
193 193
194 def users_select_tag(id, opts = {}) 194 def users_select_tag(id, opts = {})
195 - css_class = "ajax-users-select"  
196 - css_class << " multiselect" if opts[:multiple]  
197 - hidden_field_tag(id, '', class: css_class) 195 + css_class = "ajax-users-select "
  196 + css_class << "multiselect " if opts[:multiple]
  197 + css_class << opts[:class] || ''
  198 + value = opts[:selected] || ''
  199 +
  200 + hidden_field_tag(id, value, class: css_class)
198 end 201 end
199 202
200 def body_data_page 203 def body_data_page
app/helpers/namespaces_helper.rb
1 module NamespacesHelper 1 module NamespacesHelper
2 def namespaces_options(selected = :current_user, scope = :default) 2 def namespaces_options(selected = :current_user, scope = :default)
3 - if current_user.admin  
4 - groups = Group.all  
5 - users = Namespace.root  
6 - else  
7 - groups = current_user.owned_groups.select {|n| n.type == 'Group'}  
8 - users = current_user.namespaces.reject {|n| n.type == 'Group'}  
9 - end  
10 - 3 + groups = current_user.owned_groups.select {|n| n.type == 'Group'}
  4 + users = current_user.namespaces.reject {|n| n.type == 'Group'}
11 5
12 global_opts = ["Global", [['/', Namespace.global_id]] ] 6 global_opts = ["Global", [['/', Namespace.global_id]] ]
13 group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ] 7 group_opts = ["Groups", groups.sort_by(&:human_name).map {|g| [g.human_name, g.id]} ]
app/views/admin/projects/index.html.haml
@@ -14,9 +14,9 @@ @@ -14,9 +14,9 @@
14 = text_field_tag :name, params[:name], class: "span2" 14 = text_field_tag :name, params[:name], class: "span2"
15 15
16 .control-group 16 .control-group
17 - = label_tag :namespace_id, 'Namespace:', class: 'control-label' 17 + = label_tag :owner_id, 'Owner:', class: 'control-label'
18 .controls 18 .controls
19 - = select_tag :namespace_id, namespaces_options(params[:namespace_id], :all), class: "chosen span2", prompt: "Any" 19 + = users_select_tag :owner_id, selected: params[:owner_id], class: 'input-large'
20 .control-group 20 .control-group
21 = label_tag :public_only, 'Public Only', class: 'control-label' 21 = label_tag :public_only, 'Public Only', class: 'control-label'
22 .controls 22 .controls