-
-<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
-
<%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true}, :onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %>
-
-<% else %>
-
<%= h(@issue.status.name) %>
-<% end %>
-
-<% if @issue.safe_attribute? 'priority_id' %>
-
<%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), {:required => true}, :disabled => !@issue.leaf? %>
-<% end %>
-
-<% if @issue.safe_attribute? 'assigned_to_id' %>
-
<%= f.select :assigned_to_id, principals_options_for_select(@issue.assignable_users, @issue.assigned_to), :include_blank => true, :required => @issue.required_attribute?('assigned_to_id') %>
-<% end %>
-
-
-<% if @issue.safe_attribute?('fixed_version_id') && @issue.assignable_versions.any? %>
-
<%= f.select :fixed_version_id, version_options_for_select(@issue.assignable_versions, @issue.fixed_version), :include_blank => true, :required => @issue.required_attribute?('fixed_version_id') %>
-<%= link_to(image_tag('add.png', :style => 'vertical-align: middle;'),
- new_project_version_path(@issue.project),
- :remote => true,
- :method => 'get',
- :title => l(:label_version_new),
- :tabindex => 200) if User.current.allowed_to?(:manage_versions, @issue.project) %>
-
-<% end %>
-
-
-
-
-<% if @issue.safe_attribute? 'start_date' %>
-
<%= f.text_field :start_date, :size => 10, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('start_date') %><%= calendar_for('issue_start_date','start_date') if @issue.leaf? %>
-<% end %>
-
-<% if @issue.safe_attribute? 'due_date' %>
-
<%= f.text_field :due_date, :size => 10, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('due_date') %><%= calendar_for('issue_due_date','start_date') if @issue.leaf? %>
-<% end %>
-
-<% if @issue.safe_attribute? 'estimated_hours' %>
-
<%= f.text_field :estimated_hours, :size => 3, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %>
-<% end %>
-<%= labelled_fields_for :issue, @issue do |f| %>
-<%= call_hook(:view_issues_form_details_top, { :issue => @issue, :form => f }) %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= labelled_fields_for :issue, @issue do |f| %>
+ <%= call_hook(:view_issues_form_details_top, { :issue => @issue, :form => f }) %>
-
<% if @issue.safe_attribute? 'tracker_id' %>
@@ -21,27 +72,23 @@
%>
<% end %>
-
-
<% if @issue.safe_attribute? 'is_private' %>
<%= f.check_box :is_private, :no_label => true ,:class=> "ml30"%>
-
-
<% end %>
- -
- <% if @issue.safe_attribute? 'project_id' %>
-
<%= f.select :project_id, project_tree_options_for_select(@issue.allowed_target_projects, :selected => @issue.project), {:required => true},
- :onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %>
- <% end %>
-
-
+
+
+ <%#= f.select :project_id, project_tree_options_for_select(@issue.allowed_target_projects, :selected => @issue.project), {:required => true},
+ :onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %>
+
+
-
<% if @issue.safe_attribute? 'subject' %>
<%= f.text_field :subject,
- :size => 80,
+ :class => "w583",
:maxlength => 255,
:required => true,
:style => "font-size:small",
@@ -67,23 +114,22 @@
<%= link_to_function image_tag('edit.png'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
<%= content_tag 'span', :id => "issue_description_and_toolbar", :style => (@issue.new_record? ? nil : 'display:none') do %>
<%= f.text_area :description,
- :cols => 60,
- :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
- :accesskey => accesskey(:edit),
- :class => "w583",
- :no_label => true %>
+
+ :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
+ :accesskey => accesskey(:edit),
+ :class => "w583",
+ :no_label => true %>
<% end %>
<%= wikitoolbar_for 'issue_description' %>
<% end %>
+
-
-
- <%= render :partial => 'issues/attributes' %>
+
+ <%= render :partial => 'issues/attributes' %>
+
-
<%= call_hook(:view_issues_form_details_bottom, { :issue => @issue, :form => f }) %>
<% end %>
-
\ No newline at end of file
diff --git a/app/views/issues/_history.html.erb b/app/views/issues/_history.html.erb
index 9823e30b7..5b55de2fb 100644
--- a/app/views/issues/_history.html.erb
+++ b/app/views/issues/_history.html.erb
@@ -1,41 +1,38 @@
<% reply_links = authorize_for('issues', 'edit') -%>
<% for journal in journals %>
-
-
-
- <%= image_tag(url_to_avatar(journal.user), :class => "avatar") %> |
-
-
-
-
- <%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %> |
- <%= render_links(issue, journal, :reply_links => reply_links) unless journal.notes.blank? %> |
-
-
-
-
-
- <% if journal.details.any? %>
- <% details_to_strings(journal.details).each do |string| %>
-
- <%= string %>
- <% end %>
- <% end %>
- <%= render_notes(issue, journal, :reply_links => reply_links) unless journal.notes.blank? %>
- |
-
-
- <%= format_time journal.created_on %> |
- |
-
- |
-
-
+
+
+
+
+
<%= journal.user %><%= format_time journal.created_on %>
+
+
+ <% if journal.details.any? %>
+ <% details_to_strings(journal.details).each do |string| %>
+ <%= string %>
+ <% end %>
+ <% end %>
+
+
+
+
+
+
+
+
<%= render_notes(issue, journal, :reply_links => reply_links) unless journal.notes.blank? %>
+
<%= format_time journal.created_on %>
+
+
+
+
+
+
+
-
+
<%= call_hook(:view_issues_history_journal_bottom, { :journal => journal }) %>
<% end %>
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb
index 62fd2d9c0..273243851 100644
--- a/app/views/issues/show.html.erb
+++ b/app/views/issues/show.html.erb
@@ -1,378 +1,160 @@
<%= l(:label_issue_plural) %>
+<% html_title "#{@issue.tracker.name} #{@issue.source_from}'#'#{@issue.project_index}: #{@issue.subject}" %>
-
+
<%= link_to image_tag(url_to_avatar(@issue.author),:width => 46,:height => 46), user_path(@issue.author), :class => "ping_dispic" %>
- <%= @issue.subject %>缺陷
+ <%= @issue.subject %>
<%= get_issue_typevalue(@issue.tracker_id) %>
由<%= @issue.author %>
<% if @issue.created_on != @issue.updated_on %>
- 更新于 <%= format_date(@issue.created_on).html_safe %>
+ 更新于 <%= format_time(@issue.created_on).html_safe %>
<% else %>
- 添加于 <%= format_date(@issue.updated_on).html_safe %>
+ 添加于 <%= format_time(@issue.updated_on).html_safe %>
<% end %>
-
删除编辑跟踪
+
'action_menu' %>
-
如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的如图,点击课程动态中某空白处,也会跳转到相关页面的
+
+ <% if @issue.description? || @issue.attachments.any? -%>
+ <% if @issue.description? %>
+ <%#= 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 %>
+
+
+
+ <%= link_to_attachments @issue, :thumbnails => true %>
+ <% end -%>
+ <%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
+
+
-
- * 状态 :
新增
+ <%= issue_fields_rows do |rows| %>
+
-
-
- 开始日期 :
2015-03-31
-
-
- 计划完成日期 :
2015-03-31
-
-
- 预期时间 :
2015-03-31
-
+
-
-
-
引用回复
-
-
+ <% unless @issue.disabled_core_fields.include?('estimated_hours') %>
-
-
+ <% end %>
+ <%#= render_custom_fields_rows(@issue) %>
+ <%#= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
+
-
-
-
-
-
-
+ <%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'talk_edit fr' if authorize_for('issues', 'edit') %>
-
-
-
-
-
-
-
-
gugu012014-10-24
-
-
我写了一个验证身份证号码的程序,它是以一定内存空间(大概100M)换取cpu消耗,然后它的运算量就降低了,前十四位的验证就相当于转换类型再查表一样,所以它的验证号码速度比一般的方式快。如果还不明白就说明你写框架写多了,或者
-
-
-
-
-
-
-
jack 回复
jack:
-
我们尽快修复,此问题已发现原因,测试后我们尽快上线。谢谢反馈!,此问题已发现原因,测试后我们尽快上线。谢谢反馈!
-
2014-10-31
-
-
-
-
-
-
-
-
jack 回复
jack:
-
我们尽快修复,此问题已发现原因,测试后我们尽快上线。谢谢反馈!,此问题已发现原因,测试后我们尽快上线。谢谢反馈!
-
2014-10-31
-
-
-
-
-
-
+
+
+ <% if @journals.present? %>
+
+
<%=l(:label_history)%>
+ <%= render :partial => 'history', :locals => { :issue => @issue, :journals => @journals } %>
-
-
-
+<% end %>
-
-
-
-
-
-
-
-
-
<%# html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
-<% html_title "#{@issue.tracker.name} #{@issue.source_from}'#'#{@issue.project_index}: #{@issue.subject}" %>
-
-<%= render :partial => 'action_menu' %>
-
-
- <%= issue_heading(@issue) %>
-
-
-
- <% if @prev_issue_id || @next_issue_id %>
-
- <%= link_to_if @prev_issue_id,
- "\xc2\xab #{l(:label_previous)}",
- (@prev_issue_id ? issue_path(Issue.find_by_id(@prev_issue_id)) : nil),
+
+
+
+ <%#·= 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 %>
- <%= l(:label_item_position, :position => @issue_position, :count => @issue_count) %> |
- <% 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),
+
+
+
+ <%#= 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}" %>
-
- <% end %>
+
+
-
-
-
-<%= render_issue_subject_with_tree(@issue) %>
-
-
- <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @issue,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%>
-
-
-
- <%= authoring @issue.created_on, @issue.author %>.
- <% if @issue.created_on != @issue.updated_on %>
- <%= l(:label_updated_time, time_tag(@issue.updated_on)).html_safe %>.
- <% end %>
-
+
+
+
+
+
+ <%#= authoring @issue.created_on, @issue.author %>.
+
+ <%#= l(:label_updated_time, time_tag(@issue.updated_on)).html_safe %>.
+
+
-
- <%= render :partial => 'tags/tag', :locals => {:obj => @issue,:object_flag => "3" }%>
-
-
-<%= 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) %>
-
-
-<% if @issue.description? || @issue.attachments.any? -%>
-
-<% if @issue.description? %>
-
-
- <%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>
-
-
-
<%=l(:field_description)%>
-
- <%= textilizable @issue, :description, :attachments => @issue.attachments %>
-
-
-<% 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) %>
-
+
+
-
-
- <%= link_to_new_subtask(@issue) if User.current.allowed_to?(:manage_subtasks, @project) %>
-
+
+
+
+
-
<%=l(:label_subtask_plural)%>
-<%= render_descendants_tree(@issue) unless @issue.leaf? %>
-
-<% end %>
+
+
+
+
-<% if @relations.present? || User.current.allowed_to?(:manage_issue_relations, @project) %>
-
-
-<%= render :partial => 'relations' %>
-
-<% end %>
+
+
+
+
+
+
-
+
<% if @changesets.present? %>
@@ -380,23 +162,16 @@ end %>
<%= render :partial => 'changesets', :locals => { :changesets => @changesets} %>
<% end %>
+
-<% if @journals.present? %>
-
-
<%=l(:label_history)%>
-<%= render :partial => 'history', :locals => { :issue => @issue, :journals => @journals } %>
-
-<% end %>
-
-
-<%= render :partial => 'action_menu' %>
+
+
<% if @issue.editable? %>
-
<%= l(:button_update) %>
- <%= render :partial => 'edit' %>
+ <%= render :partial => 'edit' %>
<% end %>
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 467be2758..b979e2b41 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -24,7 +24,7 @@
{
$('#light').css('display','none');
$('#fade').css('display','none');
- //三种类型之所以分三个页面写,防备后面会有新的功能增加,便于扩展
+ //
if($("#development_group").attr("checked") == "checked"){
$("#setting_project_type").replaceWith("<%= escape_javascript(project_type_link(l(:label_development_team)))%>")
$("#project_memu").html('<%= escape_javascript(render(:partial => 'layouts/base_development_group')) %>');
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 95e93debc..0668f152e 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -911,6 +911,7 @@ zh:
button_copy_and_follow: 复制并转到新问题
button_annotate: 追溯
button_update: 更新
+ button_edit: 编辑
button_configure: 配置
button_quote: 引用
button_duplicate: 副本
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index 32adea2bf..b07f1ac9f 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -81,7 +81,7 @@ a.pro_mes_w{ height:20px; float:left;display:block; color:#999999;}
.pro_info_box{ margin-left:60px; background:#f0fbff; height:80px; padding:10px 0;}
.pro_info_box ul{}
.pro_info_box ul li{ margin-bottom:10px;}
-.pro_info_p{ color:#0781b4; float:left; }
+.pro_info_p{ color:#0781b4; float:left; width:160px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; }
.edit_pro_box{overflow:hidden;display:none; margin-bottom:30px; border-bottom:1px dashed #CCC; padding-bottom:10px;}
/****翻页***/
ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; }