diff --git a/app/controllers/admins/projects_controller.rb b/app/controllers/admins/projects_controller.rb index fd576b8c..5589c66c 100644 --- a/app/controllers/admins/projects_controller.rb +++ b/app/controllers/admins/projects_controller.rb @@ -7,6 +7,16 @@ class Admins::ProjectsController < Admins::BaseController sort_direction = %w(desc asc).include?(params[:sort_direction]) ? params[:sort_direction] : 'desc' search = params[:search].to_s.strip projects = Project.where("name like ? OR identifier LIKE ?", "%#{search}%", "%#{search}%").order("#{sort_by} #{sort_direction}") + case params[:category] + when 'public' + projects = projects.where(is_public: true) + when 'private' + projects = projects.where(is_public: false) + when 'fork' + projects = projects.where.not(forked_from_project_id: nil) + when 'original' + projects = projects.where(forked_from_project_id: nil, project_type: 'common') + end @projects = paginate projects.includes(:owner, :members, :issues, :versions, :attachments, :project_score) end diff --git a/app/views/admins/projects/index.html.erb b/app/views/admins/projects/index.html.erb index 35d931b0..be36229f 100644 --- a/app/views/admins/projects/index.html.erb +++ b/app/views/admins/projects/index.html.erb @@ -3,10 +3,15 @@ <% end %>
- <%= form_tag(admins_projects_path, method: :get, class: 'form-inline search-form flex-1', remote: true) do %> + <%= form_tag(admins_projects_path, method: :get, class: 'form-inline search-form flex-1', id: 'project-list-form', remote: true) do %> <%= text_field_tag(:search, params[:search], class: 'form-control col-12 col-md-2 mr-3', placeholder: '项目名称/标识检索') %> <%= submit_tag('搜索', class: 'btn btn-primary ml-3', 'data-disable-with': '搜索中...') %> +
+ + <% type_options = [['全部项目', ''], ['公开项目', 'public'], ['私有项目', 'private'], ['Fork项目', 'fork'], ['原创项目', 'original']] %> + <%= select_tag(:category, options_for_select(type_options, params[:category]), class: 'form-control', id: 'project-category') %> +
<% end %>
@@ -16,3 +21,9 @@
+ + \ No newline at end of file