我的issue部分功能

This commit is contained in:
daiao 2016-11-16 16:57:02 +08:00
parent acffe8ec19
commit e956d20d6e
9 changed files with 70 additions and 57 deletions

View File

@ -92,17 +92,21 @@ class UsersController < ApplicationController
def user_issues
@subject = params[:subject]
author_id = params[:author_id]
#@issues = Issue.where("author_id =? or assigned_to_id =? and subject like ?", (author_id ? author_id : @user.id) , @user.id, "%#{@subject}%")
params[:project_id].to_i == 0 ? @project_id = nil : @project_id = params[:project_id]
if @project_id.nil?
@issues = Issue.where("(author_id =? or assigned_to_id =? ) and subject like ?", (author_id ? author_id : @user.id) , @user.id, "%#{@subject}%").order('updated_on desc')
else
@issues = Issue.where("(author_id =? or assigned_to_id =? ) and project_id=? and subject like ?", (author_id ? author_id : @user.id) , @user.id, @project_id, "%#{@subject}%").order('updated_on desc')
end
@issues_filter = Issue.where("author_id =? or assigned_to_id =?", (author_id ? author_id : @user.id) , @user).order('updated_on desc')
@issue_open_count = Issue.where(" (author_id =? or assigned_to_id =?) and status_id in (1,2,3,4,6)", (author_id ? author_id : @user.id) , @user).count
@issue_close_count = Issue.where("(author_id =? or assigned_to_id =?) and status_id = 5", (author_id ? author_id : @user.id) , @user.id).count
@issue_count = @issues_filter.count
@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
respond_to do |format|
format.html{render :layout => 'static_base'}
format.api

View File

@ -40,6 +40,11 @@ module UsersHelper
end
end
def options_for_issue_project_list( issues )
issues = issues.group_by{|issue| issue.project_id}
issues.map{ |issue| [Project.find(issue[0]).name, issue[0]]}.unshift(["来源", 0])
end
def get_resource_type type
case type
when 'Course'

View File

@ -6,19 +6,3 @@
</script>
<%= render :partial => 'users/my_issue_list', :locals => {:activity => issue, :user_activity_id => issue.id} %>
<% end %>
<div style="text-align:left;">
<!-- <div style="width:auto; display:inline-block;">
<ul>
<a href="<%#=project_issues_path(:project_id => @project, :format => 'xls', :export => true, :set_filter => "1")%>" id="sendexcel" class="btn_newpro_grey fl ml15 mt15" alt="导出" onclick="remote_function_export('<%= @project.id %>')">导出</a>
</ul>
</div>-->
<div class="pages fr" style="width:auto; display:inline-block;">
<ul id="issue_list_pagination" class="fr">
<%= pagination_links_full @issue_pages, @issue_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%>
</ul>
<div class="cl"></div>
</div>
</div>

View File

@ -0,0 +1 @@
<span class="issues_nav_tag ml5" ><%= @issue_count %></span>

View File

@ -19,11 +19,14 @@
<%#= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "fl issues_list_name" %>
<%# end %>
<!--p class="fl ml10"> <span class="mr5"><%#=format_time(activity.created_on) %></span>发布</p-->
<p class="fl" ><span class="mr5"><%= format_time(activity.created_on) %> </span>发布</p>
<p class="fl issues_list_name" ><span class="mr5"><%= format_time(activity.created_on) %> </span>发布</p>
<p class="fl ml10"> <span class="mr5"><%= format_time(activity.updated_on) %> </span>更新</p>
</div>
</div>
<ul class="issues_list_txt fr">
<li class=" c_grey issues_list_max mr5">
<%= Project.find(activity.project_id).name %>
</li>
<li class="c_grey">
<% if activity.try(:author).try(:realname) == ' ' %>
<%= link_to activity.try(:author), user_path(activity.author_id)%>
@ -31,15 +34,7 @@
<%= link_to activity.try(:author).try(:realname), user_path(activity.author_id)%>
<% end %>
</li>
<li class="c_grey">
<% if !activity.assigned_to_id.nil? && activity.assigned_to_id != 0 %>
<% if activity.try(:assigned_to).try(:realname).empty? %>
<%= link_to activity.assigned_to, user_path(activity.assigned_to_id)%>
<% else %>
<%= link_to activity.try(:assigned_to).try(:realname), user_path(activity.assigned_to_id)%>
<% end %>
<% end %></li>
<li class="issues_list_min c_grey mr5">
<li class="issues_list_min c_grey">
<% case activity.tracker_id %>
<% when 1%>
缺陷
@ -53,23 +48,24 @@
周报
<% end %>
</li>
<li class="c_grey issues_list_min mr10">
<%= activity.priority.name %>
</li>
<li class="c_grey">
<% if activity.try(:author).try(:realname) == ' ' %>
<%= link_to activity.try(:author), user_path(activity.author_id), :class => "c_grey" %>
<% else %>
<%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "c_grey" %>
<% end %>
<% if !activity.assigned_to_id.nil? && activity.assigned_to_id != 0 %>
<% if activity.try(:assigned_to).try(:realname).empty? %>
<%= link_to activity.assigned_to, user_path(activity.assigned_to_id)%>
<% else %>
<%= link_to activity.try(:assigned_to).try(:realname), user_path(activity.assigned_to_id)%>
<% end %>
<% end %></li>
<li class="issues_list_min c_grey">
<%= activity.priority.name %>
</li>
<li class="c_grey issues_list_max" title="<%= activity.fixed_version %>"><%= activity.fixed_version %></li>
<li class="issues_list_min c_grey mr10" ><%= activity.status.name %></li>
<li class="issues_list_min c_grey mr5" ><%= activity.status.name %></li>
<li class="<%= (activity.done_ratio == 100 ? 'c_green issues_list_min mr5' : 'c_red issues_list_min mr5') %>"><%= activity.done_ratio %>%</li>
<li class="issues_list_min">
<% if activity.journals.count > 0 %>
<span class="issues_icons_mes fl mr5"></span>
<span class="issues_icons_mes fl mr5 mt12"></span>
<span class="fl mr5"><%= activity.journals.count %></span>
<% end %>
</li>
@ -78,5 +74,25 @@
<% end %>
<script>
$(".issues_list_box").mouseover(function(){
var iconOrder;
var iconSize = $(this).children().eq(2).children().eq(7).children().size();
if(iconSize > 1){
iconOrder = 2;
} else{
iconOrder = 0;
}
$(this).children().eq(2).children().eq(7).children().eq(iconOrder).show();
});
$(".issues_list_box").mouseout(function(){
var iconOrder;
var iconSize = $(this).children().eq(2).children().eq(7).children().size();
if(iconSize > 1){
iconOrder = 2;
} else{
iconOrder = 0;
}
$(this).children().eq(2).children().eq(7).children().eq(iconOrder).hide();
});
</script>

View File

@ -77,9 +77,6 @@
});
function remote_function() {
if($.trim($("#issue_create_date_end_show").val()) !="" && Date.parse($.trim($("#issue_create_date_end_show").val())) < Date.parse($.trim($("#issue_create_date_start_show").val()))){
alert("开始日期不能大于结束日期!");
}
$("#issue_query_form").submit();
}
@ -173,7 +170,7 @@
</script>
<!--缺陷列表开始-->
<div class="myissues_con ">
<div class="myissues_con mb10" style="margin-left:157px;">
<div class="myissues_head mb5">
<h2 class="ml15">我的缺陷</h2>
</div>
@ -187,7 +184,7 @@
</div><!--issues_statistics end-->
</div>
<%= form_tag({:controller => 'users', :action => 'user_issues'}, :remote=>'xls', :id=>"issue_query_form", :class => 'query_form') do %>
<%= form_tag( user_issues_user_path(@user), :remote=>'xls', :method => "post", :id=>"issue_query_form", :class => 'query_form') do %>
<div class="clear mb10">
<div class="hw_search_box fl ">
<input class="hw_search-input" placeholder="输入Issue名称进行搜索" type="text" id="v_subject" name="subject" onkeypress="EnterPress(event)" onkeydown="EnterPress()">
@ -203,7 +200,8 @@
<div class="issues_con_list" style="position: relative;">
<ul id="issues_list_nav" >
<li id="issues_list_nav_1" class="issues_nav_hover" >
<a href="javascript:void(0);" id="issues_type_1" >搜索结果<span class="issues_nav_tag ml5">210</span></a>
<a href="javascript:void(0);" id="issues_type_1" >搜索结果</a>
<span id="issue_filter_all"><%= render :partial => "users/my_issue_filter_all" %></span>
</li>
<!-- <li id="issues_list_nav_2" onclick="HoverLi(2);">
<a href="javascript:void(0);" id="issues_type_2" >指派给我<span class="issues_nav_tag ml5">25</span></a>
@ -213,12 +211,17 @@
</li>-->
<div class="cl"></div>
</ul>
<div class="issues_filter issues_form_filter mt5 mr5">
<select placeholder=" 来源" class="fl mr10" >
<div class="issues_filter">
<div class="issues_form_filter mt5 mr5">
<!-- <select placeholder=" 来源" class="fl mr10" >
<option value="0" selected="selected">来源</option>
<option value="8166">123</option>
<option value="8166">123</option>
</select>
<option value="8166">123s</option>
</select>-->
<%= select( :project, :project_id, options_for_issue_project_list(@issues_filter),
{ :include_blank => false,:selected => @project_id ? @project_id : 0 },
{ :onchange => "remote_function();add_style();",:id => "proeject_id", :name => "project_id",:class => "fl mr10"}
)%>
<select placeholder=" 发布人" class="fl" disabled="disabled">
<option value="0" selected="selected">发布人</option>
</select>
@ -243,14 +246,14 @@
<select placeholder=" 排序" class="fl issues_filter_select_min" disabled="disabled">
<option value="0" selected="selected">排序</option>
</select>
</div>
<div class="cl"></div>
<% end %>
<% if @issues.empty? %>
<p class="nodata mt10"><%= l(:label_no_data) %></p>
<% else %>
<div id="issue_list">
<%#= render :partial => 'users/all_issue_list', :locals => {:issues => @issues, :issue_pages => @issue_pages,:issue_count => @issue_count, :subject => @subject } %>
<%= render :partial => 'users/all_issue_list', :locals => {:issues => @issues, :issue_pages => @issue_pages,:issue_count => @issue_count, :subject => @subject } %>
</div>
<% end %>

View File

@ -1,3 +1,3 @@
/*$("#issue_filter_all").html("<%#= escape_javascript(render :partial => 'issues/issue_filter_all') %>");*/
$("#issue_filter_all").html("<%= escape_javascript(render :partial => 'users/my_issue_filter_all') %>");
$("#issue_list").html("<%= escape_javascript(render :partial => 'users/all_issue_list',:locals => {:issues => @issues, :issue_pages=> @issue_pages, :issue_count => @issue_count })%>");
$("#issue_list_pagination").html('<%= pagination_links_full @issue_pages, @issue_count, :issues => @issues, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>');

View File

@ -638,7 +638,7 @@ RedmineApp::Application.routes.draw do
get 'edit_brief_introduction'
get "user_resource"
get "user_issues", :to => 'users#user_issues', :via => :get, :as => "user_issues"
match "user_issues", :to => 'users#user_issues', :via => [:get, :post], :as => "user_issues"
get "import_resources"
get "import_resources_search"
post "import_into_container"

View File

@ -718,9 +718,9 @@ input.issues_calendar_input{ padding-left:5px; color:#444; border-right:none;}
a.issues_list_title{ color:#444; max-width:260px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap; }
a:hover.issues_list_title{color:#3b94d6;}
.issues_list_titlebox span{ font-size: 12px;color: #888; font-weight: normal; }
.issues_ciricons_01{ width: 22px; height: 22px; display: inline-block; background: url("../images/project/icons_issue.png") 0 0 no-repeat;}
.issues_ciricons_02{ width: 22px; height: 22px; display: inline-block; background: url("../images/project/icons_issue.png") 0 -30px no-repeat;}
.issues_icons_mes{width: 17px; height: 17px; display: inline-block; background: url("../images/project/icons_issue.png") 0 -57px no-repeat; }
.issues_ciricons_01{ width: 22px; height: 22px; display: inline-block; background: url("/images/new_project/icons_issue.png") 0 0 no-repeat;}
.issues_ciricons_02{ width: 22px; height: 22px; display: inline-block; background: url("/images/new_project/icons_issue.png") 0 -30px no-repeat;}
.issues_icons_mes{width: 17px; height: 17px; display: inline-block; background: url("/images/new_project/icons_issue.png") 0 -57px no-repeat; }
.issues_list_name{ font-size: 12px;}
.issues_list_name:hover{ color: #3b94d6;}
.issues_list_small{ font-size: 12px; color: #666;}