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
app/controllers/admin/projects_controller.rb
| ... | ... | @@ -4,6 +4,7 @@ class Admin::ProjectsController < AdminController |
| 4 | 4 | def index |
| 5 | 5 | @projects = Project.scoped |
| 6 | 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 | 8 | @projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id |
| 8 | 9 | @projects = @projects.search(params[:name]) if params[:name].present? |
| 9 | 10 | @projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20) | ... | ... |
app/controllers/public/projects_controller.rb
app/views/admin/projects/index.html.haml
| 1 | 1 | %h3.page_title |
| 2 | - Projects (#{Project.count}) | |
| 2 | + Projects | |
| 3 | 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 | 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 @@ |
| 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 | 18 | %span.count= current_user.cared_merge_requests.opened.count |
| 19 | 19 | = nav_link(path: 'search#show') do |
| 20 | 20 | = link_to "Search", search_path |
| 21 | - = nav_link(path: 'help#index') do | |
| 21 | + = nav_link(controller: :help) do | |
| 22 | 22 | = link_to "Help", help_path |
| 23 | 23 | |
| 24 | 24 | .content= yield | ... | ... |
app/views/public/projects/index.html.haml
config/routes.rb