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> 状态 : </p><p class="pro_info_p">新增</p>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label" ><span class="c_red f12">*</span> 优先级 : </p><span class="pro_info_p">正常</span>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label" > 指派给 : </p><span class="pro_info_p">suntao</span>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label" > 目标版本 : </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" > 开始日期 : </p><p class="pro_info_p">2015-03-31</p>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label02" > 计划完成日期 : </p><span class="pro_info_p">2015-03-31</span>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label02" > 预期时间 : </p><span class="pro_info_p">2015-03-31</span>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><p class="label02" > % 完成 : </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> 跟踪 : </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> 主题 : </label>
|
|
|
|
|
<input type="text" name="" class=" w583 " >
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><label class="label" ><span class="c_red f12">*</span> 描述 : </label>
|
|
|
|
|
<textarea name="" placeholder="最多3000个汉字(或6000个英文字符)" class=" w583 " ></textarea>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><label class="label" ><span class="c_red f12">*</span> 文件 : </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> 状态 : </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> 优先级 : </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" > 指派给 : </label>
|
|
|
|
|
<select name="" class="w150">
|
|
|
|
|
<option value=""><< 我 >></option>
|
|
|
|
|
</select>
|
|
|
|
|
</li>
|
|
|
|
|
<div class="cl"></div>
|
|
|
|
|
<li><label class="label" > 目标版本 : </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" > 开始日期 : </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" > 计划完成日期 : </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" > 预期时间 : </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" > % 完成 : </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" > 跟踪者 : </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> 回复 <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> 回复 <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 %>
|