Commit 68bfcd0521020d9f0154ffe767aa1e327e93ca24
1 parent
122acb22
Exists in
master
and in
4 other branches
Add public filter to admin projects
Showing
10 changed files
with
73 additions
and
34 deletions
Show diff stats
app/assets/stylesheets/application.scss
@@ -32,6 +32,7 @@ | @@ -32,6 +32,7 @@ | ||
32 | @import "sections/profile.scss"; | 32 | @import "sections/profile.scss"; |
33 | @import "sections/login.scss"; | 33 | @import "sections/login.scss"; |
34 | @import "sections/editor.scss"; | 34 | @import "sections/editor.scss"; |
35 | +@import "sections/admin.scss"; | ||
35 | 36 | ||
36 | @import "highlight/white.scss"; | 37 | @import "highlight/white.scss"; |
37 | @import "highlight/dark.scss"; | 38 | @import "highlight/dark.scss"; |
app/controllers/admin/projects_controller.rb
@@ -4,6 +4,7 @@ class Admin::ProjectsController < AdminController | @@ -4,6 +4,7 @@ class Admin::ProjectsController < AdminController | ||
4 | def index | 4 | def index |
5 | @projects = Project.scoped | 5 | @projects = Project.scoped |
6 | @projects = @projects.where(namespace_id: params[:namespace_id]) if params[:namespace_id].present? | 6 | @projects = @projects.where(namespace_id: params[:namespace_id]) if params[:namespace_id].present? |
7 | + @projects = @projects.where(public: true) if params[:public_only].present? | ||
7 | @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id | 8 | @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id |
8 | @projects = @projects.search(params[:name]) if params[:name].present? | 9 | @projects = @projects.search(params[:name]) if params[:name].present? |
9 | @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) | 10 | @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) |
app/controllers/public/projects_controller.rb
@@ -7,5 +7,6 @@ class Public::ProjectsController < ApplicationController | @@ -7,5 +7,6 @@ class Public::ProjectsController < ApplicationController | ||
7 | 7 | ||
8 | def index | 8 | def index |
9 | @projects = Project.public | 9 | @projects = Project.public |
10 | + @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) | ||
10 | end | 11 | end |
11 | end | 12 | end |
app/views/admin/projects/index.html.haml
1 | %h3.page_title | 1 | %h3.page_title |
2 | - Projects (#{Project.count}) | 2 | + Projects |
3 | = link_to 'New Project', new_project_path, class: "btn small right" | 3 | = link_to 'New Project', new_project_path, class: "btn small right" |
4 | -%br | ||
5 | -= form_tag admin_projects_path, method: :get, class: 'form-inline' do | ||
6 | - = select_tag :namespace_id, namespaces_options(params[:namespace_id], :all), class: "chosen xlarge", prompt: "Project namespace" | ||
7 | - = text_field_tag :name, params[:name], class: "xlarge" | ||
8 | - = submit_tag "Search", class: "btn submit primary" | ||
9 | 4 | ||
10 | -%table | ||
11 | - %thead | ||
12 | - %tr | ||
13 | - %th | ||
14 | - Name | ||
15 | - %i.icon-sort-down | ||
16 | - %th Path | ||
17 | - %th Team Members | ||
18 | - %th Owner | ||
19 | - %th Last Commit | ||
20 | - %th Edit | ||
21 | - %th.cred Danger Zone! | 5 | +%hr |
22 | 6 | ||
23 | - - @projects.each do |project| | ||
24 | - %tr | ||
25 | - %td | ||
26 | - = link_to project.name_with_namespace, [:admin, project] | ||
27 | - %td | ||
28 | - %span.monospace= project.path_with_namespace + ".git" | ||
29 | - %td= project.users_projects.count | ||
30 | - %td | ||
31 | - - if project.owner | ||
32 | - = link_to project.owner.name, [:admin, project.owner] | 7 | +.row |
8 | + .span4 | ||
9 | + .admin-filter | ||
10 | + = form_tag admin_projects_path, method: :get, class: 'form-inline' do | ||
11 | + .control-group | ||
12 | + = label_tag :name, 'Name:', class: 'control-label' | ||
13 | + .controls | ||
14 | + = text_field_tag :name, params[:name], class: "span2" | ||
15 | + | ||
16 | + .control-group | ||
17 | + = label_tag :namespace_id, 'Namespace:', class: 'control-label' | ||
18 | + .controls | ||
19 | + = select_tag :namespace_id, namespaces_options(params[:namespace_id], :all), class: "chosen span2", prompt: "Any" | ||
20 | + .control-group | ||
21 | + = label_tag :public_only, 'Public Only', class: 'control-label' | ||
22 | + .controls | ||
23 | + = check_box_tag :public_only, 1, params[:public_only] | ||
24 | + | ||
25 | + .form-actions | ||
26 | + = submit_tag "Search", class: "btn submit primary" | ||
27 | + = link_to "Reset", admin_projects_path, class: "btn" | ||
28 | + .span8 | ||
29 | + .ui-box | ||
30 | + %h5.title | ||
31 | + Projects (#{@projects.total_count}) | ||
32 | + %ul.well-list | ||
33 | + - @projects.each do |project| | ||
34 | + %li | ||
35 | + - if project.public | ||
36 | + %i.icon-unlock.cred | ||
37 | + - else | ||
38 | + %i.icon-lock.cgreen | ||
39 | + = link_to project.name_with_namespace, [:admin, project] | ||
40 | + .right | ||
41 | + = link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small" | ||
42 | + = link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger" | ||
43 | + - if @projects.blank? | ||
44 | + %p.nothing_here_message 0 projects matches | ||
33 | - else | 45 | - else |
34 | - (deleted) | ||
35 | - %td= last_commit(project) | ||
36 | - %td= link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small" | ||
37 | - %td.bgred= link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger" | ||
38 | -= paginate @projects, theme: "admin" | 46 | + %li.bottom |
47 | + = paginate @projects, theme: "admin" |
app/views/help/index.html.haml
@@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
1 | +%h3.page_title Public Area | ||
2 | +.back_link | ||
3 | + = link_to help_path do | ||
4 | + ← to index | ||
5 | +%hr | ||
6 | + | ||
7 | +%p | ||
8 | + Public area - is part of application with public access. | ||
9 | + %br | ||
10 | + It used to list all projects with public read-only access. | ||
11 | + %br | ||
12 | + If you enable public http access to the project - it will appears there | ||
13 | + %br | ||
14 | + | ||
15 | + Follow #{link_to "this link", public_root_path} to visit Public Area | ||
16 | + |
app/views/layouts/application.html.haml
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | %span.count= current_user.cared_merge_requests.opened.count | 18 | %span.count= current_user.cared_merge_requests.opened.count |
19 | = nav_link(path: 'search#show') do | 19 | = nav_link(path: 'search#show') do |
20 | = link_to "Search", search_path | 20 | = link_to "Search", search_path |
21 | - = nav_link(path: 'help#index') do | 21 | + = nav_link(controller: :help) do |
22 | = link_to "Help", help_path | 22 | = link_to "Help", help_path |
23 | 23 | ||
24 | .content= yield | 24 | .content= yield |
app/views/public/projects/index.html.haml
config/routes.rb
@@ -35,6 +35,7 @@ Gitlab::Application.routes.draw do | @@ -35,6 +35,7 @@ Gitlab::Application.routes.draw do | ||
35 | get 'help/markdown' => 'help#markdown' | 35 | get 'help/markdown' => 'help#markdown' |
36 | get 'help/ssh' => 'help#ssh' | 36 | get 'help/ssh' => 'help#ssh' |
37 | get 'help/raketasks' => 'help#raketasks' | 37 | get 'help/raketasks' => 'help#raketasks' |
38 | + get 'help/public_area' => 'help#public_area' | ||
38 | 39 | ||
39 | # | 40 | # |
40 | # Public namespace | 41 | # Public namespace |