socialforge/app/views/issues/show.html.erb

425 lines
19 KiB
Plaintext
Raw Normal View History

2015-03-19 16:25:18 +08:00
<div class="project_r_h">
<h2 class="project_h2"><%= l(:label_issue_plural) %></h2>
</div>
2015-04-09 20:47:09 +08:00
<div class="pro_page_box" >
<div class="pro_page_top"><a href="javascript:void(0)" class="pro_page_top"><%= issue_heading(@issue)%></a></div>
<div class="problem_main">
<div class="ping_dispic">
<%= link_to image_tag(url_to_avatar(@issue.author),:width => 46,:height => 46), user_path(@issue.author), :class => "ping_dispic" %>
</div>
<div class="talk_txt fl">
<p class="pro_page_tit" >
<%= @issue.subject %><span class="red_btn_cir ml10">缺陷</span></p><br />
<div class="cl"></div>
<p>由<a href="javascript:void(0)" class="problem_name"><%= @issue.author %></a>
<% if @issue.created_on != @issue.updated_on %>
更新于 <%= format_date(@issue.created_on).html_safe %>
<% else %>
添加于 <%= format_date(@issue.updated_on).html_safe %>
<% end %>
</div><!--talk_txt end-->
<a href="javascript:void(0)" class="talk_edit fr">删除</a><a href="javascript:void(0)" class="talk_edit fr" onclick="show_pro_new();">编辑</a><a class="talk_edit fr">跟踪</a>
<div class="cl"></div>
<div class="talk_info mb10">如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的</div>
<div class="pro_pic_box mb10">
<a href="javascript:void(0)" class="link_img fl"><span class="pic_img fl"></span>1.jpg(27.5kB)</a><br />
<div class="pro_pic mb10"><img src="images/project/1.jpg" width="100" height="73" /></div>
</div><!--pro_pic_box end-->
<div class="cl"></div>
<div class="pro_info_box mb10">
<ul class="fl" >
<li><p class="label" ><span class="c_red f12">*</span>&nbsp;状态&nbsp;&nbsp;:&nbsp;</p><p class="pro_info_p">新增</p>
</li>
<div class="cl"></div>
<li><p class="label" ><span class="c_red f12">*</span>&nbsp;优先级&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">正常</span>
</li>
<div class="cl"></div>
<li><p class="label" >&nbsp;指派给&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">suntao</span>
</li>
<div class="cl"></div>
<li><p class="label" >&nbsp;目标版本&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">暑期版(Summer Beta) V0.8</span>
</li>
<div class="cl"></div>
</ul>
<ul class="fl ml90" >
<li><p class="label02" >&nbsp;开始日期&nbsp;&nbsp;:&nbsp;</p><p class="pro_info_p">2015-03-31</p>
</li>
<div class="cl"></div>
<li><p class="label02" >&nbsp;计划完成日期&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">2015-03-31</span>
</li>
<div class="cl"></div>
<li><p class="label02" >&nbsp;预期时间&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">2015-03-31</span>
</li>
<div class="cl"></div>
<li><p class="label02" >&nbsp;% 完成&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p">10 %</span>
</li>
<div class="cl"></div>
</ul>
</div><!--pro_info_box end-->
<div class="cl"></div>
<a href="javascript:void(0)" class="talk_edit fr">引用回复</a>
<div class="cl"></div>
</div><!--problem_main end-->
<div id="edit_pro_box" class="edit_pro_box" >
<div class="newpro_box">
<ul >
<li ><label class="label" ><span class="c_red f12">*</span>&nbsp;跟踪&nbsp;&nbsp;:&nbsp;</label>
<select name="" class="w150">
<option value="0">缺陷</option>
<option value="0">功能</option>
<option value="0">支持</option>
<option value="0">任务</option>
</select>
</li>
<li ><input class="ml30" type="checkbox" /><label class="fl ml5 mt3" >私有</label></li>
<div class="cl"></div>
<li><label class="label"><span class="c_red f12">*</span>&nbsp;主题&nbsp;&nbsp;:&nbsp;</label>
<input type="text" name="" class=" w583 " >
</li>
<div class="cl"></div>
<li><label class="label" ><span class="c_red f12">*</span>&nbsp;描述&nbsp;&nbsp;:&nbsp;</label>
<textarea name="" placeholder="最多3000个汉字(或6000个英文字符)" class=" w583 " ></textarea>
</li>
<div class="cl"></div>
<li><label class="label" ><span class="c_red f12">*</span>&nbsp;文件&nbsp;&nbsp;:&nbsp;</label>
<input type="file" class="c_grey w150 no_border"/>
<label class="c_grey">(最大文件大小: 50 MB)</label>
</li>
<div class="cl"></div>
</ul>
</div><!--newpro_box end-->
<div class="cl"></div>
<div class="newpro_box">
<fieldset class="collapsible" >
<legend onclick="toggleFieldset(this);" ><strong>修改属性</strong></legend>
<ul class="fl" >
<li><label class="label" ><span class="c_red f12">*</span>&nbsp;状态&nbsp;&nbsp;:&nbsp;</label>
<select id="" name="" class="w150" >
<option value="1" selected="selected">新增</option>
<option value="2">正在解决</option>
<option value="3">已解决</option>
<option value="4">反馈</option>
<option value="5">关闭</option>
<option value="6">拒绝</option>
</select>
</li>
<div class="cl"></div>
<li><label class="label" ><span class="c_red f12">*</span>&nbsp;优先级&nbsp;&nbsp;:&nbsp;</label>
<select id="" name="" class="w150">
<option value="1">低</option>
<option value="2" selected="selected">正常</option>
<option value="3">高</option>
<option value="4">紧急</option>
<option value="5">立刻</option>
</select>
</li>
<div class="cl"></div>
<li><label class="label" >&nbsp;指派给&nbsp;&nbsp;:&nbsp;</label>
<select name="" class="w150">
<option value="">&lt;&lt; 我 &gt;&gt;</option>
</select>
</li>
<div class="cl"></div>
<li><label class="label" >&nbsp;目标版本&nbsp;&nbsp;:&nbsp;</label>
<select id="" name="" class="w150">
<option value="1">暑期版(Summer Beta) V0.8</option>
<option value="2">正式版(First Release) V1.0</option>
<option value="13">商业版(Second Release) V2.0</option>
<option value="49">JACK SUMMER V0.8</option>
<option value="51">LongJun Contest - V1.0</option>
<option value="26">SZZH V1.1 (Supported by BJSZZH)</option>
</select>
<a href="javascript:viod(0)" class="pic_add mt5 ml5" ></a>
</li>
<div class="cl"></div>
</ul>
<ul class="fl ml90">
<li><label class="label02" >&nbsp;开始日期&nbsp;&nbsp;:&nbsp;</label>
<input id="" name="" size="22" type="text" value="2015-03-31" >
<a href="javascript:viod(0)" class="pic_date mt5 ml5" ></a>
</li>
<div class="cl"></div>
<li><label class="label02" >&nbsp;计划完成日期&nbsp;&nbsp;:&nbsp;</label>
<input id="" name="" size="22" type="text" value="2015-03-31" class="">
<a href="javascript:viod(0)" class="pic_date mt5 ml5" ></a>
</li>
<div class="cl"></div>
<li><label class="label02" >&nbsp;预期时间&nbsp;&nbsp;:&nbsp;</label>
<input id="" name="" size="22" type="text" value="2015-03-31" class="">
<span class="mt3 ml5">小时</span>
</li>
<div class="cl"></div>
<li><label class="label02" >&nbsp;% 完成&nbsp;&nbsp;:&nbsp;</label>
<select id="" name="" class="w150" >
<option value="0" >0 %</option>
<option value="10">10 %</option>
<option value="20">20 %</option>
<option value="30">30 %</option>
<option value="40">40 %</option>
<option value="50">50 %</option>
<option value="60">60 %</option>
<option value="70">70 %</option>
<option value="80">80 %</option>
<option value="90">90 %</option>
<option value="100">100 %</option>
</select>
</li>
<div class="cl"></div>
</ul>
</fieldset>
</div><!--newpro_box end-->
<div class="newpro_box02 ">
<div><label class="label" >&nbsp;跟踪者&nbsp;&nbsp;:&nbsp;</label>
<input id="" name="" size="22" class="fl mb10 h26" type="text" value="搜索添加跟踪者" >
<a href="javascript:viod(0)" class="pic_sch mt5 ml5" ></a>
</div>
<div class="cl"></div>
<ul class="mb10 ml80">
<li><input type="checkbox" name="" checked=""> <label >suntao</label> </li>
<li><input type="checkbox" name="" > <label >suntaoalibb</label> </li>
<li><input type="checkbox" name="" > <label >用户名称</label> </li>
<li><input type="checkbox" name="" > <label >suntao</label> </li>
<li><input type="checkbox" name="" checked=""> <label >suntao</label> </li>
<li><input type="checkbox" name="" > <label >suntaoalibb</label> </li>
<li><input type="checkbox" name="" > <label >用户名称</label> </li>
<li><input type="checkbox" name="" > <label >suntao</label> </li>
<li><input type="checkbox" name="" > <label >用户名称</label> </li>
<li><input type="checkbox" name="" > <label >suntao</label> </li>
</ul>
<div class="cl"></div>
<a href="javascript:viod(0)" class="blue_btn fl ml80">提交</a><a href="javascript:viod(0)" class="blue_btn fl ml10">预览</a>
</div><!--newpro_box end-->
<div class="cl"></div>
</div><!--edit_pro_box end-->
<div class="ping_C mb10">
<div class="ping_dispic"><a href="#" target="_blank"><img src="images/project/pic_01.jpg" width="46" height="46" /></a></div>
<div class="ping_discon">
<div class="ping_distop">
<a href="#" target="_blank" class="c_blue fb fl mb10 ">gugu01</a><span class="c_grey fr">2014-10-24</span>
<div class="cl"></div>
<p >我写了一个验证身份证号码的程序它是以一定内存空间大概100M)换取cpu消耗然后它的运算量就降低了前十四位的验证就相当于转换类型再查表一样所以它的验证号码速度比一般的方式快。如果还不明白就说明你写框架写多了或者</p>
</div>
<div class="ping_disfoot"><a href="#">删除</a><a href="#">回复</a></div>
<div class="cl"></div>
<div class="recall" >
<div class="recall_head"><a href="#" target="_blank"><img src="images/project/pic_01.jpg" width="30" height="30" /></a></div>
<div class="recall_con">
<a href="#" class="c_blue">jack</a>&nbsp;回复&nbsp;<a href="#" class="c_blue">jack</a>:
<p>我们尽快修复,此问题已发现原因,测试后我们尽快上线。谢谢反馈!,此问题已发现原因,测试后我们尽快上线。谢谢反馈!</p>
<span class="c_grey fl">2014-10-31</span>
<div class="ping_disfoot"><a href="#">删除</a><a href="#">回复</a></div>
</div>
<div class="cl"></div>
</div><!---recall end-->
<div class="recall" >
<div class="recall_head"><a href="#" target="_blank"><img src="images/project/pic_01.jpg" width="30" height="30" /></a></div>
<div class="recall_con">
<a href="#" class="c_blue">jack</a>&nbsp;回复&nbsp;<a href="#" class="c_blue">jack</a>:
<p>我们尽快修复,此问题已发现原因,测试后我们尽快上线。谢谢反馈!,此问题已发现原因,测试后我们尽快上线。谢谢反馈!</p>
<span class="c_grey fl">2014-10-31</span>
<div class="ping_disfoot"><a href="#">删除</a><a href="#">回复</a></div>
<div class="cl"></div>
<textarea id="" name="" class="w520 h50 mb5" placeholder="最多250个字" ></textarea>
</div>
<div class="cl"></div>
</div><!---recall end-->
</div>
<div class="cl"></div>
</div><!---ping_C end-->
</div><!--pro_page_box end-->
2015-03-19 16:25:18 +08:00
<%# html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
<% html_title "#{@issue.tracker.name} #{@issue.source_from}'#'#{@issue.project_index}: #{@issue.subject}" %>
2015-04-09 20:47:09 +08:00
<!--删除、编辑-->
2015-03-19 16:25:18 +08:00
<%= render :partial => 'action_menu' %>
<h3>
<%= issue_heading(@issue) %>
</h3>
<div class="<%= @issue.css_classes %> details">
<% if @prev_issue_id || @next_issue_id %>
<div class="next-prev-links contextual">
<%= link_to_if @prev_issue_id,
"\xc2\xab #{l(:label_previous)}",
(@prev_issue_id ? issue_path(Issue.find_by_id(@prev_issue_id)) : nil),
:title => "##{@prev_issue_id}" %> |
<% if @issue_position && @issue_count %>
<span class="position"><%= l(:label_item_position, :position => @issue_position, :count => @issue_count) %></span> |
<% end %>
<%= link_to_if @next_issue_id,
"#{l(:label_next)} \xc2\xbb",
(@next_issue_id ? issue_path(Issue.find_by_id(@next_issue_id)) : nil),
:title => "##{@next_issue_id}" %>
</div>
<% end %>
<!-- <%#= avatar(@issue.author, :size => "50") %> -->
2015-04-09 20:47:09 +08:00
<!--主题-->
2015-03-19 16:25:18 +08:00
<div class="subject" style="word-wrap: break-word;">
<%= render_issue_subject_with_tree(@issue) %>
2015-04-09 20:47:09 +08:00
</div>
2015-03-19 16:25:18 +08:00
<!-- 顶和踩 在这里添加 -->
<span id="praise_tread" style="float: right">
<%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @issue,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%>
</span>
<p class="author">
<%= authoring @issue.created_on, @issue.author %>.
<% if @issue.created_on != @issue.updated_on %>
<%= l(:label_updated_time, time_tag(@issue.updated_on)).html_safe %>.
2015-04-09 20:47:09 +08:00
<% end %>
2015-03-19 16:25:18 +08:00
</p>
<!-- added by william -for tag -->
<div id="tags">
<%= render :partial => 'tags/tag', :locals => {:obj => @issue,:object_flag => "3" }%>
</div>
<table class="attributes">
<%= issue_fields_rows do |rows|
rows.left l(:field_status), h(@issue.status.name), :class => 'status'
rows.left l(:field_priority), h(@issue.priority.name), :class => 'priority'
unless @issue.disabled_core_fields.include?('assigned_to_id')
#modified by nie
#modified by huang
rows.left l(:field_assigned_to), (image_tag url_to_avatar(@issue.assigned_to(@user)), :class => 'avatar').to_s.html_safe + (@issue.assigned_to ? link_to_user(@issue.assigned_to) : "-"), :class => 'assigned-to'
end
# end huang
unless @issue.disabled_core_fields.include?('category_id')
rows.left l(:field_category), h(@issue.category ? @issue.category.name : "-"), :class => 'category'
end
unless @issue.disabled_core_fields.include?('fixed_version_id')
rows.left l(:field_fixed_version), (@issue.fixed_version ? link_to_version(@issue.fixed_version) : "-"), :class => 'fixed-version'
end
unless @issue.disabled_core_fields.include?('start_date')
rows.right l(:field_start_date), format_date(@issue.start_date), :class => 'start-date'
end
unless @issue.disabled_core_fields.include?('due_date')
rows.right l(:field_due_date), format_date(@issue.due_date), :class => 'due-date'
end
unless @issue.disabled_core_fields.include?('done_ratio')
rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%"), :class => 'progress'
end
unless @issue.disabled_core_fields.include?('estimated_hours')
unless @issue.estimated_hours.nil?
rows.right l(:field_estimated_hours), l_hours(@issue.estimated_hours), :class => 'estimated-hours'
end
end
if User.current.allowed_to?(:view_time_entries, @project)
rows.right l(:label_spent_time), (@issue.total_spent_hours > 0 ? link_to(l_hours(@issue.total_spent_hours), project_issue_time_entries_path(@project, @issue)) : "-"), :class => 'spent-time'
end
end %>
<%= render_custom_fields_rows(@issue) %>
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
</table>
<% if @issue.description? || @issue.attachments.any? -%>
<hr />
<% if @issue.description? %>
<div class="description">
<div class="contextual">
<%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
</div>
<p><strong><%=l(:field_description)%></strong></p>
<div class="wiki">
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
</div>
</div>
<% end %>
<%= link_to_attachments @issue, :thumbnails => true %>
<% end -%>
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
<% if false # !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %>
<hr />
<div id="issue_tree">
<div class="contextual">
<%= link_to_new_subtask(@issue) if User.current.allowed_to?(:manage_subtasks, @project) %>
</div>
<p><strong><%=l(:label_subtask_plural)%></strong></p>
<%= render_descendants_tree(@issue) unless @issue.leaf? %>
</div>
<% end %>
<% if @relations.present? || User.current.allowed_to?(:manage_issue_relations, @project) %>
<hr />
<div id="relations">
<%= render :partial => 'relations' %>
</div>
<% end %>
</div>
<% if @changesets.present? %>
<div id="issue-changesets">
<h3><%=l(:label_associated_revisions)%></h3>
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %>
</div>
<% end %>
<% if @journals.present? %>
<div id="history">
<h3><%=l(:label_history)%></h3>
<%= render :partial => 'history', :locals => { :issue => @issue, :journals => @journals } %>
</div>
<% end %>
<div style="clear: both;"></div>
<%= render :partial => 'action_menu' %>
<div style="clear: both;"></div>
<% if @issue.editable? %>
<div id="update">
<h3><%= l(:button_update) %></h3>
<%= render :partial => 'edit' %>
</div>
<% end %>
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
<%= f.link_to 'PDF' %>
<% end %>
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
<% if User.current.allowed_to?(:add_issue_watchers, @project) ||
(@issue.watchers.present? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
<div id="watchers">
<%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
</div>
<% end %>
<% end %>
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
<% end %>
<%= context_menu issues_context_menu_path %>