|
|
|
@ -58,57 +58,15 @@ class IssuesController < ApplicationController
|
|
|
|
|
include ApplicationHelper
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
|
retrieve_query
|
|
|
|
|
sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
|
|
|
|
|
sort_update(@query.sortable_columns)
|
|
|
|
|
@query.sort_criteria = sort_criteria.to_a
|
|
|
|
|
|
|
|
|
|
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'
|
|
|
|
|
|
|
|
|
|
if @query.valid?
|
|
|
|
|
# case params[:format]
|
|
|
|
|
# when 'csv', 'pdf'
|
|
|
|
|
# @limit = 10#Setting.issues_export_limit.to_i
|
|
|
|
|
# when 'atom'
|
|
|
|
|
# @limit = 10#Setting.feeds_limit.to_i
|
|
|
|
|
# when 'xml', 'json'
|
|
|
|
|
# @offset, @limit = api_offset_and_limit({:limit => 10})
|
|
|
|
|
# else
|
|
|
|
|
# @limit = 10#per_page_option
|
|
|
|
|
# end
|
|
|
|
|
@tracker_id = params[:tracker_id]
|
|
|
|
|
@assign_to_id = params[:assigned_to_id]
|
|
|
|
|
@author_id = params[:author_id]
|
|
|
|
|
@status_id = params[:status_id]
|
|
|
|
|
@subject = params[:subject]
|
|
|
|
|
@done_ratio = params[:done_ratio]
|
|
|
|
|
@fixed_version_id = params[:fixed_version_id]
|
|
|
|
|
@issue_count = @query.issue_count
|
|
|
|
|
@test = params[:test]
|
|
|
|
|
# @issue_pages = Paginator.new @issue_count, @limit, params['page']
|
|
|
|
|
# params[:page] = (params[:page] || 1).to_i + 1 #页码需要加1
|
|
|
|
|
# @offset ||= @issue_pages.offset
|
|
|
|
|
@project_sort = 'issues.updated_on desc'
|
|
|
|
|
if params[:test] != "0"
|
|
|
|
|
case @test
|
|
|
|
|
when "1"
|
|
|
|
|
@project_sort = 'issues.created_on desc'
|
|
|
|
|
when "2"
|
|
|
|
|
@project_sort = 'issues.created_on asc'
|
|
|
|
|
when "3"
|
|
|
|
|
@project_sort = 'issues.updated_on desc'
|
|
|
|
|
when "4"
|
|
|
|
|
@project_sort = 'issues.updated_on asc'
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
@issues_filter_assign_count = @query.issues.select{|issue| issue.assigned_to_id == User.current.id }.count
|
|
|
|
|
@issues_filter_author_count = @query.issues.select{|issue| issue.author_id == User.current.id }.count
|
|
|
|
|
@issues_filter = @query.issues(:include => [:assigned_to, :tracker, :priority, :category, :fixed_version], :order => @project_sort)
|
|
|
|
|
if params[:set_filter] != "1"
|
|
|
|
|
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'
|
|
|
|
|
@issues = @project.issues.visible.all
|
|
|
|
|
@issue_count = @issues.count
|
|
|
|
|
@limit = 10
|
|
|
|
|
@is_remote = true
|
|
|
|
|
@issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1
|
|
|
|
|
@offset ||= @issue_pages.offset
|
|
|
|
|
@issues = paginateHelper @issues_filter, @limit
|
|
|
|
|
@issues = paginateHelper @issues, @limit
|
|
|
|
|
# if params[:set_filter]
|
|
|
|
|
# @set_filter = params[:set_filter]
|
|
|
|
|
# end
|
|
|
|
@ -118,21 +76,106 @@ class IssuesController < ApplicationController
|
|
|
|
|
format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young
|
|
|
|
|
format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')}
|
|
|
|
|
# format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json}
|
|
|
|
|
format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
|
|
|
|
|
format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
|
|
|
|
|
format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
|
|
|
|
|
# format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
|
|
|
|
|
# format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
|
|
|
|
|
# format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
|
|
|
|
|
format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
|
|
|
|
|
send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
|
send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { render(:template => 'issues/index', :layout => @project_base_tag) }#by young
|
|
|
|
|
format.any(:atom, :csv, :pdf) { render(:nothing => true) }
|
|
|
|
|
format.api { render_validation_errors(@query) }
|
|
|
|
|
format.js
|
|
|
|
|
retrieve_query
|
|
|
|
|
sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
|
|
|
|
|
sort_update(@query.sortable_columns)
|
|
|
|
|
@query.sort_criteria = sort_criteria.to_a
|
|
|
|
|
|
|
|
|
|
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'
|
|
|
|
|
|
|
|
|
|
if @query.valid?
|
|
|
|
|
# case params[:format]
|
|
|
|
|
# when 'csv', 'pdf'
|
|
|
|
|
# @limit = 10#Setting.issues_export_limit.to_i
|
|
|
|
|
# when 'atom'
|
|
|
|
|
# @limit = 10#Setting.feeds_limit.to_i
|
|
|
|
|
# when 'xml', 'json'
|
|
|
|
|
# @offset, @limit = api_offset_and_limit({:limit => 10})
|
|
|
|
|
# else
|
|
|
|
|
# @limit = 10#per_page_option
|
|
|
|
|
# end
|
|
|
|
|
@tracker_id = params[:tracker_id]
|
|
|
|
|
@assign_to_id = params[:assigned_to_id]
|
|
|
|
|
@author_id = params[:author_id]
|
|
|
|
|
@status_id = params[:status_id]
|
|
|
|
|
@subject = params[:subject]
|
|
|
|
|
@done_ratio = params[:done_ratio]
|
|
|
|
|
@fixed_version_id = params[:fixed_version_id]
|
|
|
|
|
@issue_count = @query.issue_count
|
|
|
|
|
@test = params[:test]
|
|
|
|
|
# @issue_pages = Paginator.new @issue_count, @limit, params['page']
|
|
|
|
|
# params[:page] = (params[:page] || 1).to_i + 1 #页码需要加1
|
|
|
|
|
# @offset ||= @issue_pages.offset
|
|
|
|
|
@project_sort = 'issues.updated_on desc'
|
|
|
|
|
if params[:test] != "0"
|
|
|
|
|
case @test
|
|
|
|
|
when "1"
|
|
|
|
|
@project_sort = 'issues.created_on desc'
|
|
|
|
|
when "2"
|
|
|
|
|
@project_sort = 'issues.created_on asc'
|
|
|
|
|
when "3"
|
|
|
|
|
@project_sort = 'issues.updated_on desc'
|
|
|
|
|
when "4"
|
|
|
|
|
@project_sort = 'issues.updated_on asc'
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
@issues_filter_assign_count = @query.issues.select{|issue| issue.assigned_to_id == User.current.id }.count
|
|
|
|
|
@issues_filter_author_count = @query.issues.select{|issue| issue.author_id == User.current.id }.count
|
|
|
|
|
@issues_filter = @query.issues(:order => @project_sort)
|
|
|
|
|
@limit = 10
|
|
|
|
|
@is_remote = true
|
|
|
|
|
@issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1
|
|
|
|
|
@offset ||= @issue_pages.offset
|
|
|
|
|
@issues = paginateHelper @issues_filter, @limit
|
|
|
|
|
# if params[:set_filter]
|
|
|
|
|
# @set_filter = params[:set_filter]
|
|
|
|
|
# end
|
|
|
|
|
# @issue_count_by_group = @query.issue_count_by_group
|
|
|
|
|
if params[:export_issue_hidden] == "1"
|
|
|
|
|
# index(:format=>'xls', :export_issue_hidden => 0)
|
|
|
|
|
params[:export_issue_hidden] = "0"
|
|
|
|
|
redirect_to project_issues_path(:project_id => @project, :format => 'xls')
|
|
|
|
|
|
|
|
|
|
# respond_to do |format|
|
|
|
|
|
# format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
|
|
|
|
|
# send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
|
# return
|
|
|
|
|
# }
|
|
|
|
|
# return
|
|
|
|
|
# end
|
|
|
|
|
else
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young
|
|
|
|
|
format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')}
|
|
|
|
|
# format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json}
|
|
|
|
|
format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") }
|
|
|
|
|
format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') }
|
|
|
|
|
format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') }
|
|
|
|
|
format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls"
|
|
|
|
|
send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html { render(:template => 'issues/index', :layout => @project_base_tag) }#by young
|
|
|
|
|
format.any(:atom, :csv, :pdf) { render(:nothing => true) }
|
|
|
|
|
format.api { render_validation_errors(@query) }
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rescue ActiveRecord::RecordNotFound
|
|
|
|
|
render_404
|
|
|
|
|
end
|
|
|
|
|