diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb
index 8d3db9f5d..087e2adfd 100644
--- a/app/controllers/versions_controller.rb
+++ b/app/controllers/versions_controller.rb
@@ -131,11 +131,11 @@ class VersionsController < ApplicationController
# all
}
format.api
- # format.xls {
- # @issues = @version.fixed_issues.visible.includes(:status, :tracker, :priority).reorder("#{Tracker.table_name}.position, #{Issue.table_name}.id").all
- # filename = "#{@version.name.to_s}_#{l(:label_issue_list_xls)}.xls"
- # send_data(issue_list_xls(@issues), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
- # }
+ format.xls {
+ @issues = @version.fixed_issues.visible.includes(:status, :tracker, :priority).reorder("#{Tracker.table_name}.position, #{Issue.table_name}.id").all
+ filename = "#{@version.name.to_s}_#{l(:label_issue_list_xls)}.xls"
+ send_data(issue_list_xls(@issues), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename))
+ }
end
end
@@ -241,6 +241,7 @@ class VersionsController < ApplicationController
if @version.fixed_issues.empty?
@version.destroy
respond_to do |format|
+ format.js
format.html { redirect_back_or_default settings_project_path(@project, :tab => 'versions') }
format.api { render_api_ok }
end
@@ -263,6 +264,33 @@ class VersionsController < ApplicationController
end
private
+ def issue_list_xls issues
+ xls_report = StringIO.new
+ book = Spreadsheet::Workbook.new
+ sheet1 = book.create_worksheet :name => "issues"
+ blue = Spreadsheet::Format.new :color => :blue, :weight => :bold, :size => 10
+ sheet1.row(0).default_format = blue
+ sheet1.row(0).concat([l(:issue_xls_id),l(:issue_xls_tracker_id),l(:issue_xls_title),l(:issue_xls_description),l(:issue_xls_status),l(:issue_xls_assign),l(:issue_xls_priority),l(:issue_xls_author),l(:issue_xls_created_at),l(:milestone),l(:issue_xls_start),l(:issue_xls_due),l(:issue_xls_ratio)])
+ count_row = 1
+ issues.each do |issue|
+ sheet1[count_row,0] = issue.id
+ sheet1[count_row,1] = issue_tracker_change(issue.tracker_id)
+ sheet1[count_row,2] = issue.subject
+ sheet1[count_row,3] = (issue.description.gsub(/<\/?.*?>/,"")).html_safe
+ sheet1[count_row,4] = issue_status_change(issue.status_id)
+ sheet1[count_row,5] = issue.assigned_to.try(:show_name)
+ sheet1[count_row,6] = issue_priority_change(issue.priority_id)
+ sheet1[count_row,7] = issue.author.show_name
+ sheet1[count_row,8] = issue.created_on.nil? ? issue.created_on : issue.created_on.strftime('%Y-%m-%d %H:%M:%S')
+ sheet1[count_row,9] = issue.fixed_version.try(:name)
+ sheet1[count_row,10] = issue.start_date.nil? ? issue.start_date : issue.start_date.strftime('%Y-%m-%d')
+ sheet1[count_row,11] = issue.due_date.nil? ? issue.due_date : issue.due_date.strftime('%Y-%m-%d')
+ sheet1[count_row,12] = issue_ratio_change(issue.done_ratio, issue.status_id)
+ count_row += 1
+ end
+ book.write xls_report
+ xls_report.string
+ end
def retrieve_selected_tracker_ids(selectable_trackers, default_trackers=nil)
if ids = params[:tracker_ids]
diff --git a/app/views/projects/settings/_new_members.html.erb b/app/views/projects/settings/_new_members.html.erb
index 2b4997dfe..936947cae 100644
--- a/app/views/projects/settings/_new_members.html.erb
+++ b/app/views/projects/settings/_new_members.html.erb
@@ -133,143 +133,6 @@
<%= error_messages_for 'member' %>
-<%
- roles = Role.givable.all
- if @project.project_type == Project::ProjectType_course
- if User.current.language == "zh"
- roles = ["管理人员","开发者","报告人员"]
- else
- roles = ["管理人员","开发者","报告人员"]
- # roles = roles[3..5]
- end
- else
- roles = roles[0..2]
- end
- members = @project.member_principals.includes(:roles, :principal).all.sort
-%>
-
-
- <% if members.any? %>
-
- <%= l(:label_user) %> <%= l(:label_role_plural) %>
- <%= call_hook(:view_projects_settings_members_table_header, :project => @project) %>
- <% members.each do |member| %>
-
- <%= link_to_user_header member.principal, true, :class => "w140_h c_setting_blue fl" %>
-
-
- <% if User.current.language == "zh" %>
- <% zh_roles = [] %>
- <% member.roles.each do |role| %>
- <% if role.id == 3
- zh_roles << "管理人员"
- elsif role.id == 4
- zh_roles << "开发人员"
- else
- zh_roles << "报告人员"
- end
- %>
- <% end %>
- <%= h zh_roles.sort.reverse.collect(&:to_s).join(', ') %>
- <% else %>
- <%= h member.roles.sort.collect(&:to_s).join(', ') %>
- <% end %>
- <%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member),
- :method => :put,
- :html => {:id => "member-#{member.id}-roles-form", :class => 'hol'}}
- ) do |f| %>
- <% roles.each do |role| %>
-
- <%= radio_button_tag 'membership[role_ids][]', role.id, member.roles.include?(role),
- :disabled => member.member_roles.detect { |mr| mr.role_id == role.id && !mr.inherited_from.nil? } %>
-
- <% if User.current.language == "zh" %>
- <% if role.id == 3 %>
- 管理人员
- <% elsif role.id == 4 %>
- 开发人员
- <% else %>
- 报告人员
- <% end %>
- <% else %>
- <%= h role %>
- <% end %>
-
-
- <% end %>
- <%= hidden_field_tag 'membership[role_ids][]', '' %>
-
- <% end %>
-
- <% unless member.user_id == @project.user_id %>
- 编辑
- <%= delete_link membership_path(member),
- :remote => true,
- :class => "c_setting_blue ml15 fl",
- :data => (!User.current.admin? && member.include?(User.current) ? {:confirm => l(:text_own_membership_for_project_confirmation)} : {confirm: l(:label_delete_confirm)}) if member.deletable? %>
- <% end%>
-
- <% end%>
-
- <% else %>
-
<%= l(:label_no_data) %>
- <% end %>
-
-
-<% if roles.any? %>
-
-
-
-
-
<%= l(:label_member_new) %>
- <%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
-
-
">
- <%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
-
-
-
- <%= render_project_members(@project) %>
-
-
-
-
-
- <%= l(:label_role_plural) %>:
-
- <% roles.each do |role| %>
-
- <%= radio_button_tag 'membership[role_ids][]', role.id, role.name == "报告人员" || role.name == "Reporter" %>
- <% if User.current.language == "zh" %>
- <% if role.id == 3 %>
- 管理人员
- <% elsif role.id == 4 %>
- 开发人员
- <% else %>
- 报告人员
- <% end %>
- <% else %>
- <%= h role %>
- <% end %>
-
- <% end %>
-
-
-
- 新增成员
-
-
- <% end%>
-
-<% end %>
-
diff --git a/app/views/projects/settings/_new_versions.html.erb b/app/views/projects/settings/_new_versions.html.erb
index dbf5c9079..0a2eaf329 100644
--- a/app/views/projects/settings/_new_versions.html.erb
+++ b/app/views/projects/settings/_new_versions.html.erb
@@ -1,108 +1,15 @@
-
-<% if @project.shared_versions.any? %>
-
-
-
- <%= l(:label_version) %>
- <%= l(:field_effective_date) %>
- <%= l(:field_description) %>
- <%= l(:field_status) %>
-
-
-
-
- <% for version in @project.shared_versions.sort %>
-
-
- <%= 'shared' if version.project != @project %> <%= link_to_version version %>
-
- <%= format_date(version.effective_date) %>
- <%=h version.description %>
- <%= l("version_status_#{version.status}") %>
-
-
- <%#= link_to_if_authorized(h(truncate(version.wiki_page_title,:length=>20)), {:controller => 'wiki',
-# :action => 'show',
-# :project_id => version.project,
- :id => Wiki.titleize(version.wiki_page_title)},:class=>"c_blue02") || h(version.wiki_page_title) unless version.wiki_page_title.blank? || version.project.wiki.nil? %>
-
-
- <% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
- <%= link_to l(:button_edit), edit_version_path(version), :class => 'c_purple' %>
- <%= delete_link_version version_path(version) %>
- <% end %>
-
-
- <% end; reset_cycle %>
-
- <% else %>
-
- <%= l(:label_no_data) %>
-
- <% end %>
-
- <% if @project.versions.any? %>
- <%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put, :class =>"c_orange fr" %>
- <% end %>
-
- <%= link_to l(:label_version_new),"#", :class => 'c_blue fl',:onclick=>"pro_st_show_ban();" if User.current.allowed_to?(:manage_versions, @project) %>
-
-<%= form_for :version, :url => project_versions_path(@project),:html=>{:id=>"new_project_version_form"} do |f| %>
-
-
-
- * <%=l(:field_name)%>:
- <%= f.text_field :name, :maxlength => 60 %>
-
-
- <%=l(:label_version_description)%>:
- <%= f.text_field :description, :maxlength => 60 %>
-
-
- <%=l(:field_status)%>:
- <%= f.select :status, Version::VERSION_STATUSES.collect {|s| [l("version_status_#{s}"), s]} %>
-
-
-
-
-
-
- <%=l(:field_deadline)%>:
- <%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>" fl" %>
- <%= calendar_for('version_effective_date') %>
-
-
-
-
-
-
- <%=l(:button_save)%>
-
-
-
-<% end %>
-
-
<% if @project.shared_versions.empty? %>
<%= l(:milestone_no_data) %>
<% end %>
新建里程碑
- <%= form_for :version, :url => project_versions_path(@project),:html=>{:id=>"new_project_version_form"} do |f| %>
+ <%= form_for :version, :url => project_versions_path(@project, :is_setting => true),:html=>{:id=>"new_project_version_form", :remote => true} do |f| %>
* <%= l(:field_name) %> :
- <%= f.text_field :name, :maxlength => 60, :class=>"w650 fl", :style=>"height: 28px;" %>
+ <%= f.text_field :name, :maxlength => 60, :class=>"w650 fl", :style=>"height: 28px;", :id => "setting_version_name" %>
+ 标题不能为空
<%= l(:label_version_description) %> :
@@ -119,7 +26,7 @@
-
取消 保存
+
取消 保存
<% end %>
@@ -137,7 +44,7 @@
- <% for version in @project.shared_versions.sort %>
+ <% @project.shared_versions.sort.each do |version| %>
<%= 'shared' if version.project != @project %> <%= link_to_version version %>
@@ -147,8 +54,8 @@
<%= l("version_status_#{version.status}") %>
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
- <%= link_to l(:button_edit), edit_version_path(version), :class => 'sy_btn_blue mr5' %>
- <%= delete_link_version version_path(version), :class=>"sy_btn_grey mr5" %>
+ <%= link_to l(:button_edit), edit_version_path(version, :is_setting => true), :class => 'sy_btn_blue mr5', :remote => true %>
+ <%= delete_link_version version_path(version, :is_setting => true), :class=>"sy_btn_grey mr5", :remote => true %>
<% end %>
@@ -158,4 +65,37 @@
<% end %>
+
\ No newline at end of file
diff --git a/app/views/pull_requests/_pull_request_comments.html.erb b/app/views/pull_requests/_pull_request_comments.html.erb
index 8b296c733..77dc830dd 100644
--- a/app/views/pull_requests/_pull_request_comments.html.erb
+++ b/app/views/pull_requests/_pull_request_comments.html.erb
@@ -1,7 +1,7 @@
<%= form_tag(url_for(:controller => 'pull_requests', :action => 'create_pull_request_comment', :project_id => @project.id), :id => 'pull_request_comment_form', :method => "post", :remote => true) do %>
-
+
留言
<% end %>
diff --git a/app/views/pull_requests/_pull_request_commits.html.erb b/app/views/pull_requests/_pull_request_commits.html.erb
index d5cd6922b..78b55dc09 100644
--- a/app/views/pull_requests/_pull_request_commits.html.erb
+++ b/app/views/pull_requests/_pull_request_commits.html.erb
@@ -1,81 +1,60 @@
-
-
-
+
+
+
+
+
+
+
diff --git a/app/views/pull_requests/_show.html.erb b/app/views/pull_requests/_show.html.erb
index ec3e47ef7..0773435cc 100644
--- a/app/views/pull_requests/_show.html.erb
+++ b/app/views/pull_requests/_show.html.erb
@@ -28,32 +28,32 @@
在管理员接受后,将由系统自动合并。<%= link_to "接受", accept_pull_request_project_pull_request_path(@request.id, :project_id => @project.id), :class => "linkBlue2", :remote => true %>接受
-
+
-
- <%= link_to "评论#{@comments_count} ".html_safe, pull_request_comments_project_pull_request_path(@request.id, :project_id => @project.id, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal" %>
+
+ <%= link_to "评论#{@comments_count} ".html_safe, pull_request_comments_project_pull_request_path(@request.id, :project_id => @project.id, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
-
- <%= link_to "提交#{@commits_count} ".html_safe, pull_request_commits_project_pull_request_path(@request.id, :project_id => @project.id, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal" %>
+
+ <%= link_to "提交#{@commits_count} ".html_safe, pull_request_commits_project_pull_request_path(@request.id, :project_id => @project.id, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_2" %>
-
- <%= link_to "改动#{@changes_count} ".html_safe, pull_request_changes_project_pull_request_path(@request.id, :project_id => @project.id, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal" %>
+
+ <%= link_to "改动#{@changes_count} ".html_safe, pull_request_changes_project_pull_request_path(@request.id, :project_id => @project.id, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_3" %>
<% if @type == nil || @type == "1" %>
-
+
<%= render :partial => "pull_requests/pull_request_comments" %>
<% end %>
-
+
<%= render :partial => "pull_requests/pull_request_commits" %>
-
+
<%= render :partial => "pull_requests/pull_request_changes" %>
@@ -61,15 +61,21 @@
diff --git a/app/views/pull_requests/pull_request_changes.js.erb b/app/views/pull_requests/pull_request_changes.js.erb
index 9021c498d..461cd3d06 100644
--- a/app/views/pull_requests/pull_request_changes.js.erb
+++ b/app/views/pull_requests/pull_request_changes.js.erb
@@ -1 +1 @@
-$("#merge_record_2").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_changes") %>');
\ No newline at end of file
+$("#merge_record_3").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_changes") %>');
\ No newline at end of file
diff --git a/app/views/pull_requests/pull_request_comments.js.erb b/app/views/pull_requests/pull_request_comments.js.erb
index 5a7e6683c..5fd3c2eb3 100644
--- a/app/views/pull_requests/pull_request_comments.js.erb
+++ b/app/views/pull_requests/pull_request_comments.js.erb
@@ -1 +1 @@
-$("#merge_record_0").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_comments") %>');
\ No newline at end of file
+$("#merge_record_1").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_comments") %>');
\ No newline at end of file
diff --git a/app/views/pull_requests/pull_request_commits.js.erb b/app/views/pull_requests/pull_request_commits.js.erb
index cc0a82010..764e4660e 100644
--- a/app/views/pull_requests/pull_request_commits.js.erb
+++ b/app/views/pull_requests/pull_request_commits.js.erb
@@ -1 +1 @@
-$("#merge_record_1").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_commits") %>');
\ No newline at end of file
+$("#merge_record_2").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_commits") %>');
\ No newline at end of file
diff --git a/app/views/versions/_edit.html.erb b/app/views/versions/_edit.html.erb
new file mode 100644
index 000000000..999ab53d7
--- /dev/null
+++ b/app/views/versions/_edit.html.erb
@@ -0,0 +1,33 @@
+
+
diff --git a/app/views/versions/_list.html.erb b/app/views/versions/_list.html.erb
index 9b9b43f28..7f1edcf21 100644
--- a/app/views/versions/_list.html.erb
+++ b/app/views/versions/_list.html.erb
@@ -2,8 +2,11 @@
<%= link_to_version version, :name => version_anchor(version) %>
- <%= link_to "导出", version_path(version, :format => 'xls'), :class => "btn_newpro_grey fr" %>
-
+ <%= link_to "导出Issue", version_path(version, :format => 'xls'), :class => "btn_newpro_grey fr" %>
+ <%= delete_version_link version_path(version, :back_url => url_for(:controller => 'versions',
+ :action => 'index',
+ :project_id => version.project)),
+ :class=>'roadmap_icons_del fr mt5 mr5' if User.current.allowed_to?(:manage_versions, version.project) %>
diff --git a/app/views/versions/create.js.erb b/app/views/versions/create.js.erb
index e6e0bec45..20dd95cea 100644
--- a/app/views/versions/create.js.erb
+++ b/app/views/versions/create.js.erb
@@ -1,3 +1 @@
-hideModal();
-<% select = content_tag('select', content_tag('option') + version_options_for_select(@project.shared_versions.open, @version), :id => 'issue_fixed_version_id', :name => 'issue[fixed_version_id]') %>
-$('#issue_fixed_version_id').replaceWith('<%= escape_javascript(select) %>');
+$("#pro_st_tbc_04").html('<%= escape_javascript( render :partial => 'projects/settings/new_versions') %>');
diff --git a/app/views/versions/destroy.js.erb b/app/views/versions/destroy.js.erb
new file mode 100644
index 000000000..dae8cd1d9
--- /dev/null
+++ b/app/views/versions/destroy.js.erb
@@ -0,0 +1,6 @@
+<% if params[:is_setting] %>
+$("#pro_st_tbc_04").html('<%= escape_javascript( render :partial => 'projects/settings/new_versions') %>');
+<% else %>
+$("#pro_st_tbc_04").html('<%= escape_javascript( render :partial => 'projects/settings/new_versions') %>');
+<% end %>
+
diff --git a/app/views/versions/edit.js.erb b/app/views/versions/edit.js.erb
new file mode 100644
index 000000000..9d0fb2c23
--- /dev/null
+++ b/app/views/versions/edit.js.erb
@@ -0,0 +1,3 @@
+var htmlvalue = "<%= escape_javascript(render :partial => 'versions/edit') %>";
+pop_box_new(htmlvalue,580,366);
+
diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb
index c47fda081..478d983e4 100644
--- a/app/views/versions/index.html.erb
+++ b/app/views/versions/index.html.erb
@@ -2,17 +2,17 @@
-
- <%= link_to "所有#{@versions_count} ".html_safe, project_roadmap_path(@project, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
+
+ <%= link_to "所有#{@versions_count} ".html_safe, project_roadmap_path(@project, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1", :id => "new_roadmap_type_1" %>
-
- <%= link_to "打开#{@versions_open_count} ".html_safe, project_roadmap_path(@project, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
+
+ <%= link_to "打开#{@versions_open_count} ".html_safe, project_roadmap_path(@project, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1", :id => "new_roadmap_type_2" %>
-
- <%= link_to "锁定#{@versions_locked_count} ".html_safe, project_roadmap_path(@project, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
+
+ <%= link_to "锁定#{@versions_locked_count} ".html_safe, project_roadmap_path(@project, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1", :id => "new_roadmap_type_3" %>
-
- <%= link_to "关闭#{@versions_closed_count} ".html_safe, project_roadmap_path(@project, :type => "4"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
+
+ <%= link_to "关闭#{@versions_closed_count} ".html_safe, project_roadmap_path(@project, :type => "4"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1", :id => "new_roadmap_type_4" %>
新建
@@ -27,8 +27,27 @@
<%= context_menu issues_context_menu_path %>
\ No newline at end of file
diff --git a/public/stylesheets/css/project.css b/public/stylesheets/css/project.css
index 8dfd78e92..c4e879b49 100644
--- a/public/stylesheets/css/project.css
+++ b/public/stylesheets/css/project.css
@@ -981,7 +981,7 @@ a.sortdownbtn{background: url(/images/sy/liststyle.png) 0 -12px no-repeat; width
.pullreques_blueicon{ background: url(/images/new_project/icons_issue.png) 0 -299px no-repeat; display: inline-block; width: 43px; height: 16px;}
.pullreques_greyicon{ background: url(/images/new_project/icons_issue.png) 0 -322px no-repeat; display: inline-block; width: 43px; height: 16px;}
.pullreques_greyicon02{ background: url(/images/new_project/icons_issue.png) 0 -344px no-repeat; display: inline-block; width:43px; height: 16px;}
-.pullreques_reply_textarea{ width: 100%; padding:0; height: 60px; color: #666;}
+.pullreques_reply_textarea{ width: 100%; padding:2; height: 60px; color: #666;}
.pullreques_reply_list li{ padding:15px 0; border-top: 1px dashed #ddd; }
.pullreques_reply_user_img{ width:50px;height:50px; -webkit-border-radius:50px;-moz-border-radius:50px;-o-border-radius:50px;border-radius:50px;}
a.pullreques_reply_name{ font-weight: bold; color: #333;}