diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2022-04-01 15:08:52 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2022-04-01 15:08:52 +0000 |
commit | 83ed32e8d71fdb8c6a7492a4d82db2d52889534d (patch) | |
tree | 3350f753132d7a1d34c7bd83e0c5a4b6fae5db36 /app/controllers | |
parent | 44344cfe8a8693ade7ecd855d20c2ce8857dc302 (diff) | |
download | redmine-83ed32e8d71fdb8c6a7492a4d82db2d52889534d.tar.gz redmine-83ed32e8d71fdb8c6a7492a4d82db2d52889534d.zip |
Reuse ProjectQuery filters on the admin project list (#33422).
Patch by Takenori TAKAKI.
git-svn-id: https://svn.redmine.org/redmine/trunk@21519 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin_controller.rb | 18 | ||||
-rw-r--r-- | app/controllers/queries_controller.rb | 17 |
2 files changed, 25 insertions, 10 deletions
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 6f4dce808..cb91b38c8 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -26,19 +26,23 @@ class AdminController < ApplicationController before_action :require_admin + helper :queries + include QueriesHelper + helper :projects_queries + helper :projects + def index @no_configuration_data = Redmine::DefaultData::Loader::no_data? end def projects - @status = params[:status] || 1 - - scope = Project.status(@status).sorted - scope = scope.like(params[:name]) if params[:name].present? + retrieve_query(ProjectQuery, false, :defaults => @default_columns_names) + @query.admin_projects = 1 + scope = @query.results_scope - @project_count = scope.count - @project_pages = Paginator.new @project_count, per_page_option, params['page'] - @projects = scope.limit(@project_pages.per_page).offset(@project_pages.offset).to_a + @entry_count = scope.count + @entry_pages = Paginator.new @entry_count, per_page_option, params['page'] + @projects = scope.limit(@entry_pages.per_page).offset(@entry_pages.offset).to_a render :action => "projects", :layout => false if request.xhr? end diff --git a/app/controllers/queries_controller.rb b/app/controllers/queries_controller.rb index 13fa3ade7..d2fc5efb9 100644 --- a/app/controllers/queries_controller.rb +++ b/app/controllers/queries_controller.rb @@ -52,6 +52,7 @@ class QueriesController < ApplicationController @query.user = User.current @query.project = @project @query.build_from_params(params) + render :layout => 'admin' if params[:admin_projects] end def create @@ -62,13 +63,14 @@ class QueriesController < ApplicationController if @query.save flash[:notice] = l(:notice_successful_create) - redirect_to_items(:query_id => @query) + redirect_to_items(:query_id => @query, :admin_projects => params[:admin_projects]) else render :action => 'new', :layout => !request.xhr? end end def edit + render :layout => 'admin' if params[:admin_projects] end def update @@ -76,7 +78,7 @@ class QueriesController < ApplicationController if @query.save flash[:notice] = l(:notice_successful_update) - redirect_to_items(:query_id => @query) + redirect_to_items(:query_id => @query, :admin_projects => params[:admin_projects]) else render :action => 'edit' end @@ -110,10 +112,15 @@ class QueriesController < ApplicationController @query ? @query.queried_class.to_s.underscore.pluralize.to_sym : nil end + def current_menu(project) + super if params[:admin_projects].nil? + end + private def find_query @query = Query.find(params[:id]) + @query.admin_projects = params[:admin_projects] if @query.is_a?(ProjectQuery) @project = @query.project render_403 unless @query.editable_by?(User.current) rescue ActiveRecord::RecordNotFound @@ -163,7 +170,11 @@ class QueriesController < ApplicationController end def redirect_to_project_query(options) - redirect_to projects_path(options) + if params[:admin_projects] + redirect_to admin_projects_path(options) + else + redirect_to projects_path(options) + end end # Returns the Query subclass, IssueQuery by default |