##// END OF EJS Templates
Applied 'register notice' patch by Matt Jones....
Applied 'register notice' patch by Matt Jones. The user is now redirected to the login screen after having registered. git-svn-id: http://redmine.rubyforge.org/svn/trunk@601 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r563:1c44600c62dc
r598:acebceb1d74b
Show More
queries_controller.rb
82 lines | 2.9 KiB | text/x-ruby | RubyLexer
/ app / controllers / queries_controller.rb
Jean-Philippe Lang
"queries" branch merged...
r92 # redMine - project management software
Jean-Philippe Lang
Added per user custom queries....
r563 # Copyright (C) 2006-2007 Jean-Philippe Lang
Jean-Philippe Lang
"queries" branch merged...
r92 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class QueriesController < ApplicationController
Jean-Philippe Lang
Added per user custom queries....
r563 layout 'base'
before_filter :require_login, :except => :index
before_filter :find_project, :check_project_privacy
Jean-Philippe Lang
"queries" branch merged...
r92
Jean-Philippe Lang
Added per user custom queries....
r563 def index
@queries = @project.queries.find(:all,
:order => "name ASC",
:conditions => ["is_public = ? or user_id = ?", true, (logged_in_user ? logged_in_user.id : 0)])
end
def new
@query = Query.new(params[:query])
@query.project = @project
@query.user = logged_in_user
@query.executed_by = logged_in_user
@query.is_public = false unless logged_in_user.authorized_to(@project, 'projects/add_query')
params[:fields].each do |field|
@query.add_filter(field, params[:operators][field], params[:values][field])
end if params[:fields]
if request.post? and @query.save
flash[:notice] = l(:notice_successful_create)
redirect_to :controller => 'projects', :action => 'list_issues', :id => @project, :query_id => @query
return
end
render :layout => false if request.xhr?
end
Jean-Philippe Lang
"queries" branch merged...
r92 def edit
if request.post?
@query.filters = {}
params[:fields].each do |field|
@query.add_filter(field, params[:operators][field], params[:values][field])
end if params[:fields]
@query.attributes = params[:query]
Jean-Philippe Lang
Added per user custom queries....
r563 @query.is_public = false unless logged_in_user.authorized_to(@project, 'projects/add_query')
Jean-Philippe Lang
"queries" branch merged...
r92
if @query.save
flash[:notice] = l(:notice_successful_update)
redirect_to :controller => 'projects', :action => 'list_issues', :id => @project, :query_id => @query
end
end
end
def destroy
@query.destroy if request.post?
Jean-Philippe Lang
Added per user custom queries....
r563 redirect_to :controller => 'queries', :project_id => @project
Jean-Philippe Lang
"queries" branch merged...
r92 end
private
Jean-Philippe Lang
Added per user custom queries....
r563 def find_project
if params[:id]
@query = Query.find(params[:id])
@query.executed_by = logged_in_user
@project = @query.project
render_403 unless @query.editable_by?(logged_in_user)
else
@project = Project.find(params[:project_id])
end
Jean-Philippe Lang
ActiveRecord::RecordNotFound exceptions handled more gracefully...
r130 rescue ActiveRecord::RecordNotFound
render_404
Jean-Philippe Lang
"queries" branch merged...
r92 end
end