Commit 6eb045fc98f02a54b5db37ff2a43b008fe971158
1 parent
52f312a8
Exists in
master
and in
4 other branches
Prevent Project.all & User.all in selectboxes
Showing
5 changed files
with
18 additions
and
15 deletions
Show diff stats
app/assets/stylesheets/selects.scss
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 |