issue过滤条件

rep_quality
huang 9 years ago
parent 98f47d8b81
commit b96ab3676c

@ -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

@ -2,7 +2,7 @@
<%= import_ke(enable_at: true,init_activity: true) %>
<% end %>
<script>
<script xmlns="http://www.w3.org/1999/html">
//issues列表
function g(o){
return document.getElementById(o);
@ -43,6 +43,15 @@
// }
// });
}
function remote_function_export() {
$("#export_issue_hidden").attr("value","1");
// $("#issue_query_form").attr("format","xls");
$("#issue_query_form").submit();
// $("#issue_query_form").removeAttr("format");
$("#export_issue_hidden").attr("value","0");
}
// function nh_reset_form() {
// $("#issue_query_form")[0].reset();
// $("input[nhname='date_val']").val('');//涛哥的火狐reset 清不掉这个值 我擦
@ -97,11 +106,14 @@
<li>关闭<a class="issues_greycirbg_btn "><%#= @issues_filter_author_count %><%= @project.issues.where(:status_id => 5 ).visible.all.count %></a></li>
</ul>
</div><!--issues_statistics end-->
<a href="<%=project_issues_path(:project_id => @project, :format => 'xls')%>" class="hw_btn_blue fr" alt="导出EXCEL">导出EXCEL</a>
<!--<input type="button" class="hw_btn_blue fr" value="导出EXCEL" onclick="remote_function_export()">-->
<a href="<%=project_issues_path(:project_id => @project, :format => 'xls', :export => true, :set_filter => "1")%>" class="hw_btn_blue fr" alt="导出EXCEL" onclick="remote_function_export()">导出EXCEL</a>
</div>
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'true', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %>
<%= hidden_field_tag 'set_filter', '1' %>
<%= hidden_field_tag 'export_issue_hidden', '0' %>
<!--<input id="exprot_issues_hidden" value="0" type="hidden">-->
<div class="clear mb10">
<div class="hw_search_box fl ">
<input class="hw_search-input" placeholder="请输入问题名称" type="text" id="v_subject" name="subject" onkeypress="EnterPress(event)" onkeydown="EnterPress()">

Loading…
Cancel
Save