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 |