Add public filter to admin projects
This commit is contained in:
parent
122acb2254
commit
68bfcd0521
|
@ -32,6 +32,7 @@
|
||||||
@import "sections/profile.scss";
|
@import "sections/profile.scss";
|
||||||
@import "sections/login.scss";
|
@import "sections/login.scss";
|
||||||
@import "sections/editor.scss";
|
@import "sections/editor.scss";
|
||||||
|
@import "sections/admin.scss";
|
||||||
|
|
||||||
@import "highlight/white.scss";
|
@import "highlight/white.scss";
|
||||||
@import "highlight/dark.scss";
|
@import "highlight/dark.scss";
|
||||||
|
|
5
app/assets/stylesheets/sections/admin.scss
Normal file
5
app/assets/stylesheets/sections/admin.scss
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
.admin-filter form {
|
||||||
|
label { width: 110px; }
|
||||||
|
.controls { margin-left: 130px; }
|
||||||
|
.form-actions { padding-left: 130px; background: #fff }
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ class Admin::ProjectsController < AdminController
|
||||||
def index
|
def index
|
||||||
@projects = Project.scoped
|
@projects = Project.scoped
|
||||||
@projects = @projects.where(namespace_id: params[:namespace_id]) if params[:namespace_id].present?
|
@projects = @projects.where(namespace_id: params[:namespace_id]) if params[:namespace_id].present?
|
||||||
|
@projects = @projects.where(public: true) if params[:public_only].present?
|
||||||
@projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id
|
@projects = @projects.where(namespace_id: nil) if params[:namespace_id] == Namespace.global_id
|
||||||
@projects = @projects.search(params[:name]) if params[:name].present?
|
@projects = @projects.search(params[:name]) if params[:name].present?
|
||||||
@projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
|
@projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
|
||||||
|
|
|
@ -7,5 +7,6 @@ class Public::ProjectsController < ApplicationController
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@projects = Project.public
|
@projects = Project.public
|
||||||
|
@projects = @projects.includes(:namespace).order("namespaces.path, projects.name ASC").page(params[:page]).per(20)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,38 +1,47 @@
|
||||||
%h3.page_title
|
%h3.page_title
|
||||||
Projects (#{Project.count})
|
Projects
|
||||||
= link_to 'New Project', new_project_path, class: "btn small right"
|
= link_to 'New Project', new_project_path, class: "btn small right"
|
||||||
%br
|
|
||||||
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
|
|
||||||
= select_tag :namespace_id, namespaces_options(params[:namespace_id], :all), class: "chosen xlarge", prompt: "Project namespace"
|
|
||||||
= text_field_tag :name, params[:name], class: "xlarge"
|
|
||||||
= submit_tag "Search", class: "btn submit primary"
|
|
||||||
|
|
||||||
%table
|
%hr
|
||||||
%thead
|
|
||||||
%tr
|
|
||||||
%th
|
|
||||||
Name
|
|
||||||
%i.icon-sort-down
|
|
||||||
%th Path
|
|
||||||
%th Team Members
|
|
||||||
%th Owner
|
|
||||||
%th Last Commit
|
|
||||||
%th Edit
|
|
||||||
%th.cred Danger Zone!
|
|
||||||
|
|
||||||
- @projects.each do |project|
|
.row
|
||||||
%tr
|
.span4
|
||||||
%td
|
.admin-filter
|
||||||
= link_to project.name_with_namespace, [:admin, project]
|
= form_tag admin_projects_path, method: :get, class: 'form-inline' do
|
||||||
%td
|
.control-group
|
||||||
%span.monospace= project.path_with_namespace + ".git"
|
= label_tag :name, 'Name:', class: 'control-label'
|
||||||
%td= project.users_projects.count
|
.controls
|
||||||
%td
|
= text_field_tag :name, params[:name], class: "span2"
|
||||||
- if project.owner
|
|
||||||
= link_to project.owner.name, [:admin, project.owner]
|
.control-group
|
||||||
|
= label_tag :namespace_id, 'Namespace:', class: 'control-label'
|
||||||
|
.controls
|
||||||
|
= select_tag :namespace_id, namespaces_options(params[:namespace_id], :all), class: "chosen span2", prompt: "Any"
|
||||||
|
.control-group
|
||||||
|
= label_tag :public_only, 'Public Only', class: 'control-label'
|
||||||
|
.controls
|
||||||
|
= check_box_tag :public_only, 1, params[:public_only]
|
||||||
|
|
||||||
|
.form-actions
|
||||||
|
= submit_tag "Search", class: "btn submit primary"
|
||||||
|
= link_to "Reset", admin_projects_path, class: "btn"
|
||||||
|
.span8
|
||||||
|
.ui-box
|
||||||
|
%h5.title
|
||||||
|
Projects (#{@projects.total_count})
|
||||||
|
%ul.well-list
|
||||||
|
- @projects.each do |project|
|
||||||
|
%li
|
||||||
|
- if project.public
|
||||||
|
%i.icon-unlock.cred
|
||||||
|
- else
|
||||||
|
%i.icon-lock.cgreen
|
||||||
|
= link_to project.name_with_namespace, [:admin, project]
|
||||||
|
.right
|
||||||
|
= link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small"
|
||||||
|
= link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger"
|
||||||
|
- if @projects.blank?
|
||||||
|
%p.nothing_here_message 0 projects matches
|
||||||
- else
|
- else
|
||||||
(deleted)
|
%li.bottom
|
||||||
%td= last_commit(project)
|
= paginate @projects, theme: "admin"
|
||||||
%td= link_to 'Edit', edit_admin_project_path(project), id: "edit_#{dom_id(project)}", class: "btn small"
|
|
||||||
%td.bgred= link_to 'Destroy', [:admin, project], confirm: "REMOVE #{project.name}? Are you sure?", method: :delete, class: "btn small danger"
|
|
||||||
= paginate @projects, theme: "admin"
|
|
||||||
|
|
|
@ -47,3 +47,5 @@
|
||||||
%li
|
%li
|
||||||
%span= link_to "System Hooks", help_system_hooks_path
|
%span= link_to "System Hooks", help_system_hooks_path
|
||||||
|
|
||||||
|
%li
|
||||||
|
%span= link_to "Public Area", help_public_area_path
|
||||||
|
|
16
app/views/help/public_area.html.haml
Normal file
16
app/views/help/public_area.html.haml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
%h3.page_title Public Area
|
||||||
|
.back_link
|
||||||
|
= link_to help_path do
|
||||||
|
← to index
|
||||||
|
%hr
|
||||||
|
|
||||||
|
%p
|
||||||
|
Public area - is part of application with public access.
|
||||||
|
%br
|
||||||
|
It used to list all projects with public read-only access.
|
||||||
|
%br
|
||||||
|
If you enable public http access to the project - it will appears there
|
||||||
|
%br
|
||||||
|
|
||||||
|
Follow #{link_to "this link", public_root_path} to visit Public Area
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
%span.count= current_user.cared_merge_requests.opened.count
|
%span.count= current_user.cared_merge_requests.opened.count
|
||||||
= nav_link(path: 'search#show') do
|
= nav_link(path: 'search#show') do
|
||||||
= link_to "Search", search_path
|
= link_to "Search", search_path
|
||||||
= nav_link(path: 'help#index') do
|
= nav_link(controller: :help) do
|
||||||
= link_to "Help", help_path
|
= link_to "Help", help_path
|
||||||
|
|
||||||
.content= yield
|
.content= yield
|
||||||
|
|
|
@ -12,3 +12,6 @@
|
||||||
.right
|
.right
|
||||||
%span.monospace.tiny
|
%span.monospace.tiny
|
||||||
git clone #{project.http_url_to_repo}
|
git clone #{project.http_url_to_repo}
|
||||||
|
|
||||||
|
|
||||||
|
= paginate @projects, theme: "admin"
|
||||||
|
|
|
@ -35,6 +35,7 @@ Gitlab::Application.routes.draw do
|
||||||
get 'help/markdown' => 'help#markdown'
|
get 'help/markdown' => 'help#markdown'
|
||||||
get 'help/ssh' => 'help#ssh'
|
get 'help/ssh' => 'help#ssh'
|
||||||
get 'help/raketasks' => 'help#raketasks'
|
get 'help/raketasks' => 'help#raketasks'
|
||||||
|
get 'help/public_area' => 'help#public_area'
|
||||||
|
|
||||||
#
|
#
|
||||||
# Public namespace
|
# Public namespace
|
||||||
|
|
Loading…
Reference in a new issue