缺陷更新页面

This commit is contained in:
whimlex 2015-04-15 20:05:21 +08:00
parent 45c234bf9c
commit 596e89a14f
5 changed files with 136 additions and 119 deletions

View File

@ -728,7 +728,7 @@ module ApplicationHelper
end end
def other_formats_links(&block) def other_formats_links(&block)
concat('<p class="other-formats">'.html_safe + l(:label_export_to)) concat('<p class="other-formats fr">'.html_safe + l(:label_export_to))
yield Redmine::Views::OtherFormatsBuilder.new(self) yield Redmine::Views::OtherFormatsBuilder.new(self)
concat('</p>'.html_safe) concat('</p>'.html_safe)
end end

View File

@ -28,31 +28,15 @@
<p style="padding-top: 5px;"><%= render :partial => 'attachments/form', :locals => {:container => @issue} %> <p style="padding-top: 5px;"><%= render :partial => 'attachments/form', :locals => {:container => @issue} %>
<!--</fieldset>--> <!--</fieldset>-->
<div class="box tabular" > <div class="cl"></div>
<p id="watchers_form">
<label style="font-size: 15px;"><%= l(:label_issue_watchers) %></label>
<span id="watchers_inputs" style="font-size: 15px;">
<%= watchers_checkboxes(@issue, @available_watchers) %>
</span>
<span class="search_for_watchers" style="font-size: 15px;">
<%= link_to l(:label_search_for_watchers),
{:controller => 'watchers', :action => 'new', :project_id => @issue.project},
:remote => true,
:method => 'get' %>
</span>
</p>
</div>
</div>
<%= f.hidden_field :lock_version %> <%= f.hidden_field :lock_version %>
<%= hidden_field_tag 'last_journal_id', params[:last_journal_id] || @issue.last_journal_id %> <%= hidden_field_tag 'last_journal_id', params[:last_journal_id] || @issue.last_journal_id %>
<%= hidden_field_tag 'reference_user_id', params[:reference_user_id]%> <%= hidden_field_tag 'reference_user_id', params[:reference_user_id]%>
<a remote="true" href="javascript:void(0)" class="blue_btn fr" onclick="$('#issue-form').submit();"> <a remote="true" href="javascript:void(0)" class="blue_btn fl ml80" onclick="$('#issue-form').submit();">
<%= l(:button_submit) %> <%= l(:button_submit) %>
</a> </a>
</p></br></br>
<%#= submit_tag l(:button_submit) %> <%#= submit_tag l(:button_submit) %>
<%#= preview_link preview_edit_issue_path(:project_id => @project, :id => @issue), 'issue-form' %> <%= preview_link preview_edit_issue_path(:project_id => @project, :id => @issue), 'issue-form' ,'preview',{:class => "blue_btn fl ml10"}%>
<% end %> <% end %>
<div id="preview" class="wiki"></div> <div id="preview" class="wiki"></div>

View File

@ -95,5 +95,23 @@
<div id="attributes"> <div id="attributes">
<%= render :partial => 'issues/attributes' %> <%= render :partial => 'issues/attributes' %>
</div> </div>
<div class="cl"></div>
<div class="newpro_box02 ">
<label class="label"> <%= l(:label_issue_watchers) %></label>
<input id="" name="" size="22" class="fl mb10 h26" type="text" placeholder="搜索添加跟踪者">
<span class="search_for_watchers">
<%= link_to "",
{:controller => 'watchers', :action => 'new', :project_id => @issue.project},
:remote => true,
:method => 'get',
:class => "pic_sch mt5 ml5" %>
</span>
<%= javascript_tag "observeSearchfield('user_search', 'users_for_watcher', '#{ escape_javascript watchers_autocomplete_for_user_path(:user => @available_watchers, :format => 'js', :flag => 'ture') }')" %>
<div class="cl"></div>
<span id="watchers_inputs">
<%= watchers_checkboxes(@issue, @available_watchers) %>
</span>
<div class="cl"></div>
</div>
<%= call_hook(:view_issues_form_details_bottom, {:issue => @issue, :form => f}) %> <%= call_hook(:view_issues_form_details_bottom, {:issue => @issue, :form => f}) %>
<% end %> <% end %>

View File

@ -31,11 +31,8 @@
<div class="cl"></div> <div class="cl"></div>
<div id="watchers_inputs"> <div id="watchers_inputs">
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</ul>
<div class="cl"></div> <div class="cl"></div>
<% end %> <% end %>
<a href="#" class="blue_btn fl ml80" onclick="$('#issue-form').submit();"> <a href="#" class="blue_btn fl ml80" onclick="$('#issue-form').submit();">

View File

@ -2,108 +2,126 @@
<h2 class="project_h2"><%= l(:label_issue_plural) %></h2> <h2 class="project_h2"><%= l(:label_issue_plural) %></h2>
</div> </div>
<% html_title "#{@issue.tracker.name} #{@issue.source_from}'#'#{@issue.project_index}: #{@issue.subject}" %> <% html_title "#{@issue.tracker.name} #{@issue.source_from}'#'#{@issue.project_index}: #{@issue.subject}" %>
<div class="pro_page_box" > <div class="pro_page_box">
<div class="pro_page_top"> <div class="pro_page_top">
<a href="javascript:void(0)"><%= @issue.project.name %></a> > <a href="javascript:void(0)"><%= @issue.project.name %></a> >
<a href="javascript:void(0)"><%= "#" + @issue.project_index %></a> <a href="javascript:void(0)"><%= "#" + @issue.project_index %></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>
<div class="talk_txt fl"> <div class="problem_main">
<p class="pro_page_tit" style="word-break:break-all;" > <div class="ping_dispic">
<%= @issue.subject %><span class='<%= "#{get_issue_type(@issue.tracker_id)}" %>'><%= get_issue_typevalue(@issue.tracker_id) %></span></p><br /> <%= link_to image_tag(url_to_avatar(@issue.author), :width => 46, :height => 46), user_path(@issue.author), :class => "ping_dispic" %>
<div class="cl"></div> </div>
<p>由<a href="javascript:void(0)" class="problem_name"><%= @issue.author %></a> <div class="talk_txt fl">
<% if @issue.created_on != @issue.updated_on %> <p class="pro_page_tit" style="word-break:break-all;">
更新于 <%= format_time(@issue.created_on).html_safe %> <%= @issue.subject %>
<% else %> <span class='<%= "#{get_issue_type(@issue.tracker_id)}" %>'><%= get_issue_typevalue(@issue.tracker_id) %></span>
添加于 <%= format_time(@issue.updated_on).html_safe %> </p><br/>
<% end %>
</div><!--talk_txt end--> <div class="cl"></div>
<a href="javascript:void(0)" class="talk_edit fr"<%= render :partial => 'action_menu' %></a> <p>由<a href="javascript:void(0)" class="problem_name"><%= @issue.author %></a>
<div class="cl"></div> <% if @issue.created_on != @issue.updated_on %>
<div class="talk_info mb10" style="word-break:break-all;"> 更新于 <%= format_time(@issue.created_on).html_safe %>
<% if @issue.description? || @issue.attachments.any? -%> <% else %>
<% if @issue.description? %> 添加于 <%= format_time(@issue.updated_on).html_safe %>
<%#= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
<% end %> <% end %>
</div> </div>
<div class="pro_pic_box mb10"> <!--talk_txt end-->
<a href="javascript:void(0)" class="link_img fl"> <a href="javascript:void(0)" class="talk_edit fr"<%= render :partial => 'action_menu' %></a>
<!--显示附件、图片--> <div class="cl"></div>
<%= link_to_attachment_project @issue, :thumbnails => true %></a><br /> <div class="talk_info mb10" style="word-break:break-all;">
<% end -%> <% if @issue.description? || @issue.attachments.any? -%>
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %> <% if @issue.description? %>
</div><!--pro_pic_box end--> <%#= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
<div class="cl"></div> <%= textilizable @issue, :description, :attachments => @issue.attachments %>
<!--属性-->
<div class="pro_info_box mb10">
<%= issue_fields_rows do |rows| %>
<ul class="fl" >
<li><p class="label" ><span class="c_red f12">*</span>&nbsp;状态&nbsp;&nbsp;:&nbsp;</p><p class="pro_info_p"><%= @issue.status.name %></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"><%= @issue.priority.name %></span>
</li>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('assigned_to_id') %>
<li><p class="label" >&nbsp;指派给&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p"><%= @issue.assigned_to ? link_to_isuue_user(@issue.assigned_to) : "-" %></span></li>
<% end %> <% end %>
</div>
<div class="pro_pic_box mb10">
<a href="javascript:void(0)" class="link_img fl">
<!--显示附件、图片-->
<%= link_to_attachment_project @issue, :thumbnails => true %></a><br/>
<% end -%>
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
</div><!--pro_pic_box end-->
<div class="cl"></div> <div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('fixed_version_id') %> <!--属性-->
<li><p class="label" >&nbsp;目标版本&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p"><%= (@issue.fixed_version ? link_to_version(@issue.fixed_version, :class => "pro_info_p") : "-") %></span></li> <div class="pro_info_box mb10">
<% end %> <%= issue_fields_rows do |rows| %>
<div class="cl"></div> <ul class="fl">
</ul>
<ul class="fl ml90" >
<% unless @issue.disabled_core_fields.include?('start_date') %>
<li><p class="label02" >&nbsp;开始日期&nbsp;&nbsp;:&nbsp;</p><p class="pro_info_p"><%= format_date(@issue.start_date) %></p></li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('due_date') %>
<li><p class="label02" >&nbsp;计划完成日期&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p"><%= format_date(@issue.due_date) %></span>
</li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('estimated_hours') %>
<li><p class="label02" >&nbsp;预期时间&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p"><%= l_hours(@issue.estimated_hours) %></span> <li><p class="label"><span class="c_red f12">*</span>&nbsp;状态&nbsp;&nbsp;:&nbsp;</p>
</li>
<% end %> <p class="pro_info_p"><%= @issue.status.name %></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"><%= @issue.priority.name %></span>
</li>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('assigned_to_id') %>
<li><p class="label">&nbsp;指派给&nbsp;&nbsp;:&nbsp;</p>
<span class="pro_info_p"><%= @issue.assigned_to ? link_to_isuue_user(@issue.assigned_to) : "-" %></span>
</li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('fixed_version_id') %>
<li><p class="label">&nbsp;目标版本&nbsp;&nbsp;:&nbsp;</p>
<span class="pro_info_p"><%= (@issue.fixed_version ? link_to_version(@issue.fixed_version, :class => "pro_info_p") : "-") %></span>
</li>
<% end %>
<div class="cl"></div>
</ul>
<ul class="fl ml90">
<% unless @issue.disabled_core_fields.include?('start_date') %>
<li><p class="label02">&nbsp;开始日期&nbsp;&nbsp;:&nbsp;</p>
<p class="pro_info_p"><%= format_date(@issue.start_date) %></p></li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('due_date') %>
<li><p class="label02">&nbsp;计划完成日期&nbsp;&nbsp;:&nbsp;</p>
<span class="pro_info_p"><%= format_date(@issue.due_date) %></span>
</li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('estimated_hours') %>
<li><p class="label02">&nbsp;预期时间&nbsp;&nbsp;:&nbsp;</p>
<span class="pro_info_p"><%= l_hours(@issue.estimated_hours) %></span>
</li>
<% end %>
<div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('done_ratio') %>
<li><p class="label02">&nbsp;% 完成&nbsp;&nbsp;:&nbsp;</p>
<span class="pro_info_p"><%= @issue.done_ratio %>%</span>
</li>
<% end %>
<div class="cl"></div>
</ul>
<% end %>
<%#= render_custom_fields_rows(@issue) %>
<%#= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
</div>
<!--pro_info_box 属性 end-->
<div class="cl"></div> <div class="cl"></div>
<% unless @issue.disabled_core_fields.include?('done_ratio') %> <%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'talk_edit fr' if authorize_for('issues', 'edit') %></a>
<li><p class="label02" >&nbsp;% 完成&nbsp;&nbsp;:&nbsp;</p><span class="pro_info_p"><%= @issue.done_ratio %>%</span>
</li>
<% end %>
<div class="cl"></div> <div class="cl"></div>
</ul> </div>
<% end %> <!--problem_main end-->
<%#= render_custom_fields_rows(@issue) %> <div style="clear: both;"></div>
<%#= call_hook(:view_issues_show_details_bottom, :issue => @issue) %> <% if @issue.editable? %>
</div><!--pro_info_box 属性 end-->
<div class="cl"></div>
<%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'talk_edit fr' if authorize_for('issues', 'edit') %></a>
<div class="cl"></div>
</div><!--problem_main end-->
<div style="clear: both;"></div>
<% if @issue.editable? %>
<div id="update"> <div id="update">
<%= render :partial => 'edit' %> <%= render :partial => 'edit' %>
</div> </div>
<% end %> <% end %>
<!--留言--> <!--留言-->
</div> </div>
<% if @changesets.present? %> <% if @changesets.present? %>
<div id="issue-changesets"> <div id="issue-changesets">
<h3><%=l(:label_associated_revisions)%></h3> <h3><%= l(:label_associated_revisions) %></h3>
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %> <%= render :partial => 'changesets', :locals => {:changesets => @changesets} %>
</div> </div>
<% end %> <% end %>
<!--留言-- end> <!--留言-- end>
@ -111,22 +129,22 @@
<!--<%#= render :partial => 'action_menu' %>--> <!--<%#= render :partial => 'action_menu' %>-->
<div class="cl"></div>
<% other_formats_links do |f| %> <% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %> <%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
<%= f.link_to 'PDF' %> <%= f.link_to 'PDF' %>
<% end %> <% end %>
<% content_for :sidebar do %> <% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %> <%= render :partial => 'issues/sidebar' %>
<br>
<% if User.current.allowed_to?(:add_issue_watchers, @project) || <% if User.current.allowed_to?(:add_issue_watchers, @project) ||
(@issue.watchers.present? && User.current.allowed_to?(:view_issue_watchers, @project)) %> (@issue.watchers.present? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
<div id="watchers"> <div id="watchers">
<%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %> <%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
</div> </div>
<% end %> <% end %>
<% end %> <% end %>
<% content_for :header_tags do %> <% content_for :header_tags do %>