Merge branch 'dev_newproject' of https://git.trustie.net/jacknudt/trustieforge into dev_newproject
This commit is contained in:
commit
5f233d2f10
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
%>
|
||||
|
||||
<div class="members_left">
|
||||
<% if members.any? %>
|
||||
<ul style=" border-bottom:none;">
|
||||
<li><span class="w140_h f_b" ><%= l(:label_user) %></span><span class="w180_h f_b"><%= l(:label_role_plural) %></span><span></span></li>
|
||||
<%= call_hook(:view_projects_settings_members_table_header, :project => @project) %>
|
||||
<% members.each do |member| %>
|
||||
<li >
|
||||
<%= link_to_user_header member.principal, true, :class => "w140_h c_setting_blue fl" %>
|
||||
<span class="w180_h 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| %>
|
||||
<ul style="text-align: left;" >
|
||||
<%= 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 %>
|
||||
<label >管理人员</label>
|
||||
<% elsif role.id == 4 %>
|
||||
<label >开发人员</label>
|
||||
<% else %>
|
||||
<label >报告人员</label>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<label ><%= h role %></label>
|
||||
<% end %>
|
||||
</ul>
|
||||
<!--<br/>-->
|
||||
<% end %>
|
||||
<%= hidden_field_tag 'membership[role_ids][]', '' %>
|
||||
<div class="pt5">
|
||||
<a href="javascript:void(0)" class="project_member_btn" onclick="$('#member-<%= member.id%>-roles-form').submit();" style="margin-right: 10px;">
|
||||
<%= l(:button_change)%>
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="project_member_btn" onclick="$('#member-<%= member.id%>-roles-form').hide();$(this).parent().parent().parent().parent().height(30)">
|
||||
<%= l(:button_cancel)%>
|
||||
</a>
|
||||
</div>
|
||||
<% end %>
|
||||
</span>
|
||||
<% unless member.user_id == @project.user_id %>
|
||||
<a href="javascript:void(0) " class="c_setting_blue ml30 fl" onclick="$('#member-<%= member.id%>-roles-form').show();$(this).parent().height(110);">编辑</a>
|
||||
<%= 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%>
|
||||
</li>
|
||||
<% end%>
|
||||
</ul>
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<% end %>
|
||||
</div><!-- left -->
|
||||
<!--right begin-->
|
||||
<% if roles.any? %>
|
||||
<div class="members_right">
|
||||
<!-- applied -->
|
||||
<div class="cl"></div>
|
||||
<!-- add members -->
|
||||
<p class="c_blue fb mt10 mb5"><%= l(:label_member_new) %></p>
|
||||
<%= form_for(@member, {:as => :membership, :url => project_memberships_path(@project), :remote => true, :method => :post}) do |f| %>
|
||||
<div class="member_search">
|
||||
<input id="principal_search" class="member_search_input fl" type="text" placeholder="<%= "l(:label_invite_trustie_user_tips)"%>">
|
||||
<%= javascript_tag "observeSearchfield('principal_search', null, '#{ escape_javascript autocomplete_project_memberships_path(@project, :format => 'js') }')" %>
|
||||
<div class="cl"></div>
|
||||
|
||||
<div id="principals_for_new_member">
|
||||
<%= render_project_members(@project) %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
|
||||
<ul class="rolebox mb10 mt10">
|
||||
<li class="fb">
|
||||
<%= l(:label_role_plural) %>:
|
||||
</li>
|
||||
<% roles.each do |role| %>
|
||||
<li class="clear">
|
||||
<%= radio_button_tag 'membership[role_ids][]', role.id, role.name == "报告人员" || role.name == "Reporter" %>
|
||||
<% if User.current.language == "zh" %>
|
||||
<% if role.id == 3 %>
|
||||
<label >管理人员</label>
|
||||
<% elsif role.id == 4 %>
|
||||
<label >开发人员</label>
|
||||
<% else %>
|
||||
<label >报告人员</label>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<label ><%= h role %></label>
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<div class="cl mb10"></div>
|
||||
<a href="javascript:void(0)" class="project_member_btn_right" onclick="$(this).parent().parent().submit();">
|
||||
新增成员
|
||||
</a>
|
||||
</div>
|
||||
<% end%>
|
||||
</div><!-- 右边 end-->
|
||||
<% end %>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
var collection=$("#principals_for_new_member").children("#principals").children("label");
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
</li>
|
||||
<% end %>
|
||||
<li class="clear ">
|
||||
<input class="fl mt8" type="checkbox">
|
||||
<p class="fl ml5"><%= check_all_links('modules-form').html_safe %></p>
|
||||
</li>
|
||||
<% end %>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<% if @gitlab_repository.nil? %>
|
||||
<div class=" sy_new_tchbox clear " >
|
||||
<a href="javascript:void(0);" class=" sy_btn_green mb10">新建版本库</a>
|
||||
<%= labelled_form_for :repository, @repository, :url =>project_repositories_path(@project),:html => {:id => 'repository-form',:method=>"post",:autocomplete=>'off'} do |f| %>
|
||||
<%= labelled_form_for :repository, @repository, :url =>project_repositories_path(@project),:html => {:id => 'repository-form',:method=>"post",:autocomplete=>'off', :remote => true} do |f| %>
|
||||
<ul class="pro_newsetting_con mb15">
|
||||
<li style="display: none">
|
||||
<label class="label02"><%=l(:label_scm)%>:</label>
|
||||
|
@ -15,7 +15,8 @@
|
|||
<input type="text" style="display: none"/> <!--阻止表单自动填充 -->
|
||||
<input type="password" style="display: none"/> <!--阻止表单自动填充 -->
|
||||
<label class=" fl"><span class="c_red f12">*</span> 版本库名称 : </label>
|
||||
<%= f.text_field :identifier, :disabled =>@repository.nil? || @repository.identifier_frozen? ? true:false, :label=>"", :no_label => true, :class => "w650 fl", :style=>"height: 28px;" %>
|
||||
<%= f.text_field :identifier, :disabled =>@repository.nil? || @repository.identifier_frozen? ? true:false, :label=>"", :no_label => true, :class => "w650 fl", :style => "height: 28px;", :id => "project_setting_repository" %>
|
||||
<span style="display: none" class="c_orange ml100" id="valid_repository_name">版本库名是无效的</span>
|
||||
</li>
|
||||
<li class="clear">
|
||||
<label class=" fl"> </label>
|
||||
|
@ -24,8 +25,8 @@
|
|||
3.一旦保存,标识无法修改</p>
|
||||
</li>
|
||||
</ul>
|
||||
<a href="<%= settings_project_path(@project, :tab => 'repositories')%>" class="fr sy_btn_grey"><%=l(:button_cancel)%></a>
|
||||
<a href="#" onclick="$('#repository-form').submit();" class="fr sy_btn_blue mr5"><%=l(:lable_project_rep_create) %></a>
|
||||
<a href="javascript:void(0)" onclick="cancel_for_create();" class="fr sy_btn_grey"><%=l(:button_cancel)%></a>
|
||||
<a href="" onclick="project_repository_commit();" class="fr sy_btn_blue mr5"><%=l(:lable_project_rep_create) %></a>
|
||||
<% end %>
|
||||
</div>
|
||||
<% else %>
|
||||
|
@ -54,4 +55,34 @@
|
|||
{
|
||||
$("#pro_st_edit_ku").toggle();
|
||||
}
|
||||
|
||||
function cancel_for_create()
|
||||
{
|
||||
$("#project_setting_repository").val('');
|
||||
}
|
||||
|
||||
|
||||
function project_repository_commit()
|
||||
{
|
||||
if(regex_repoistory_name())
|
||||
{
|
||||
$("#repository-form").submit();
|
||||
}
|
||||
}
|
||||
|
||||
function regex_repoistory_name()
|
||||
{
|
||||
var name = $.trim($("#project_setting_repository").val());
|
||||
if(/^[a-zA-Z0-9_\-]*[a-zA-Z_\-]+[a-zA-Z0-9_\-]*$/.test(name))
|
||||
{
|
||||
$("#valid_repository_name").hide();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#valid_repository_name").show();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -1,108 +1,15 @@
|
|||
<script>
|
||||
function pro_st_show_ban1()
|
||||
{
|
||||
$("#pro_st_edit_ban1").toggle();
|
||||
}
|
||||
function pro_st_show_ban()
|
||||
{
|
||||
$("#pro_st_edit_ban").toggle();
|
||||
}
|
||||
</script>
|
||||
<% if @project.shared_versions.any? %>
|
||||
<table class="pro_table">
|
||||
<tbody>
|
||||
<tr class="pro_table_tit">
|
||||
<td class="w150"><%= l(:label_version) %></td>
|
||||
<td class="w90" > <%= l(:field_effective_date) %></td>
|
||||
<td class="w150"><%= l(:field_description) %> </td>
|
||||
<td class="w90"><%= l(:field_status) %></td>
|
||||
<!--<td class="w90"><%#= l(:field_sharing) %></td>-->
|
||||
<!--<td class="w150"><%#= l(:label_wiki_page) %></td>-->
|
||||
<td class="w150"></td>
|
||||
</tr>
|
||||
<% for version in @project.shared_versions.sort %>
|
||||
<tr class="<%= cycle 'pro_table_on', '' %>">
|
||||
<td class="tl">
|
||||
<a class="c_blue02"><%= 'shared' if version.project != @project %> <%= link_to_version version %></a>
|
||||
</td>
|
||||
<td class=""><%= format_date(version.effective_date) %></td>
|
||||
<td class="tl" style="word-break:break-all;"><%=h version.description %></td>
|
||||
<td class="status"><%= l("version_status_#{version.status}") %></td>
|
||||
<!--<td class="sharing"><%#=h format_version_sharing(version.sharing) %></td>-->
|
||||
<!--<td class="tl" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" title="">-->
|
||||
<%#= 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? %>
|
||||
<!--</td>-->
|
||||
<td >
|
||||
<% if version.project == @project && User.current.allowed_to?(:manage_versions, @project) %>
|
||||
<%= link_to l(:button_edit), edit_version_path(version), :class => 'c_purple' %></a>
|
||||
<a href="/versions/1" class=" c_purple" data-confirm="您确定要删除吗?" ><%= delete_link_version version_path(version) %></a>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end; reset_cycle %>
|
||||
</tbody>
|
||||
<% else %>
|
||||
<p class="nodata">
|
||||
<%= l(:label_no_data) %>
|
||||
</p>
|
||||
<% end %>
|
||||
</table>
|
||||
<% if @project.versions.any? %>
|
||||
<%= link_to l(:label_close_versions), close_completed_project_versions_path(@project), :method => :put, :class =>"c_orange fr" %>
|
||||
<% end %>
|
||||
<a href="javascript:viod(0)" class="pic_add fl mr5" onclick="pro_st_show_ban();"></a>
|
||||
<%= link_to l(:label_version_new),"#", :class => 'c_blue fl',:onclick=>"pro_st_show_ban();" if User.current.allowed_to?(:manage_versions, @project) %>
|
||||
<div class="cl"></div>
|
||||
<%= form_for :version, :url => project_versions_path(@project),:html=>{:id=>"new_project_version_form"} do |f| %>
|
||||
<div id="pro_st_edit_ban" class="pro_st_edit_ban">
|
||||
<ul>
|
||||
<li >
|
||||
<label class="label02"><span class="c_red">*</span><%=l(:field_name)%>:</label>
|
||||
<%= f.text_field :name, :maxlength => 60 %>
|
||||
</li>
|
||||
<li >
|
||||
<label class="label02"><%=l(:label_version_description)%>:</label>
|
||||
<%= f.text_field :description, :maxlength => 60 %>
|
||||
</li>
|
||||
<li >
|
||||
<label class="label02"><%=l(:field_status)%>:</label>
|
||||
<%= f.select :status, Version::VERSION_STATUSES.collect {|s| [l("version_status_#{s}"), s]} %>
|
||||
</li>
|
||||
<!--<li >-->
|
||||
<!--<label class="label02"><%#=l(:label_wiki_page)%>:</label>-->
|
||||
<!--<%#= f.text_field :wiki_page_title, :size =>60, :label => :label_wiki_page, :disabled => @project.wiki.nil? %>-->
|
||||
<!--</li>-->
|
||||
<li >
|
||||
<label class="label02"><%=l(:field_deadline)%>:</label>
|
||||
<%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>" fl" %>
|
||||
<%= calendar_for('version_effective_date') %>
|
||||
</li>
|
||||
<div class="cl mb10"></div>
|
||||
<!--<li >-->
|
||||
<!--<label class="label02"><%#=l(:field_sharing)%>:</label>-->
|
||||
<!--<%#= f.select :sharing, @project.versions.build.allowed_sharings.collect {|v| [format_version_sharing(v), v]} %>-->
|
||||
<!--</li>-->
|
||||
<a href="#" onclick="$('#new_project_version_form').submit();" class="blue_btn ml110"><%=l(:button_save)%></a>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% if @project.shared_versions.empty? %>
|
||||
<div class="pro_new_prompt ml15 mr15 mb10"><p><%= l(:milestone_no_data) %></p></div>
|
||||
<% end %>
|
||||
<div class=" sy_new_tchbox clear " >
|
||||
<a href="javascript:void(0);" class=" sy_btn_green mb10" onclick="pro_st_show_ban1();">新建里程碑</a>
|
||||
<%= 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| %>
|
||||
<div id="pro_st_edit_ban1" style="display:none;">
|
||||
<ul class="pro_newsetting_con mb15">
|
||||
<li class="mb10 clear">
|
||||
<label class="label02"><span class="c_red f12">*</span> <%= l(:field_name) %> : </label>
|
||||
<%= 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" %>
|
||||
<p class="c_orange ml100" style="display: none" id="project_setting_version_title">标题不能为空</p>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class="fl"> <%= l(:label_version_description) %> : </label>
|
||||
|
@ -119,7 +26,7 @@
|
|||
</li>
|
||||
<div class="cl mb10"></div>
|
||||
</ul>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey " onclick="pro_st_show_ban1();">取消</a><a href="javascript:void(0);" onclick="$('#new_project_version_form').submit();" class="fr sy_btn_blue mr5">保存</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey " onclick="pro_st_show_ban1();">取消</a><a href="javascript:void(0);" onclick="project_version_commit();" class="fr sy_btn_blue mr5">保存</a>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
@ -137,7 +44,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for version in @project.shared_versions.sort %>
|
||||
<% @project.shared_versions.sort.each do |version| %>
|
||||
<tr>
|
||||
<th>
|
||||
<a><%= 'shared' if version.project != @project %> <%= link_to_version version %></a>
|
||||
|
@ -147,8 +54,8 @@
|
|||
<th><%= l("version_status_#{version.status}") %></th>
|
||||
<th>
|
||||
<% 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' %></a>
|
||||
<a href="/versions/1" data-confirm="您确定要删除吗?" ><%= delete_link_version version_path(version), :class=>"sy_btn_grey mr5" %></a>
|
||||
<%= link_to l(:button_edit), edit_version_path(version, :is_setting => true), :class => 'sy_btn_blue mr5', :remote => true %></a>
|
||||
<%= delete_link_version version_path(version, :is_setting => true), :class=>"sy_btn_grey mr5", :remote => true %>
|
||||
<% end %>
|
||||
</th>
|
||||
</tr>
|
||||
|
@ -158,4 +65,37 @@
|
|||
</div>
|
||||
<% end %>
|
||||
|
||||
<script>
|
||||
// 新建版本
|
||||
function project_version_commit()
|
||||
{
|
||||
if(regex_version_name())
|
||||
{
|
||||
$("#new_project_version_form").submit();
|
||||
}
|
||||
}
|
||||
|
||||
function regex_version_name()
|
||||
{
|
||||
var name = $.trim($("#setting_version_name").val());
|
||||
if(name.length == 0)
|
||||
{
|
||||
$("#project_setting_version_title").show();
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#project_setting_version_title").hide();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function pro_st_show_ban1()
|
||||
{
|
||||
$("#pro_st_edit_ban1").toggle();
|
||||
}
|
||||
function pro_st_show_ban()
|
||||
{
|
||||
$("#pro_st_edit_ban").toggle();
|
||||
}
|
||||
</script>
|
|
@ -1,7 +1,7 @@
|
|||
<div class="pd15box">
|
||||
<div class="clear mb30">
|
||||
<%= 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 %>
|
||||
<textarea id="pull_request_comment" name="pull_request_comment" class="pullreques_reply_textarea"></textarea>
|
||||
<textarea id="pull_request_comment" name="pull_request_comment" class="pullreques_reply_textarea" style="padding-left: 0px;"></textarea>
|
||||
<span id ="pr_comment_tip" class="fontGrey2 c_red" style="display: none">内容不能为空</span>
|
||||
<a href="javascript:void(0);" class="btn btn-blue fr" onclick="pull_request_commit()">留言</a>
|
||||
<% end %>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<div class="pullreques_pullbox">
|
||||
|
||||
<div class="pullreques_pullbox">
|
||||
<div class="pullreques_pull_top clear">
|
||||
<p class="fl c_grey ml15">2016-09-12</p>
|
||||
<p class="fr c_green mr15">2个提交</p>
|
||||
|
@ -23,8 +24,8 @@
|
|||
<span class="fr mr15 c_grey">acbc94af</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pullreques_pullbox">
|
||||
</div>
|
||||
<div class="pullreques_pullbox">
|
||||
<div class="pullreques_pull_top clear">
|
||||
<p class="fl c_grey ml15">2016-09-12</p>
|
||||
<p class="fr c_green mr15">2个提交</p>
|
||||
|
@ -49,33 +50,11 @@
|
|||
<span class="fr mr15 c_grey">acbc94af</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pullreques_pullbox">
|
||||
<div class="pullreques_pull_top clear">
|
||||
<p class="fl c_grey ml15">2016-09-12</p>
|
||||
<p class="fr c_green mr15">2个提交</p>
|
||||
</div>
|
||||
<ul class="pullreques_pull_list">
|
||||
<li class="clear">
|
||||
<span class="fl c_grey ml15 ">19分钟前</span>
|
||||
<a href="javascript:void(0);" target="_blank" class="pullreques_pull_name fl ml10"> 姚虫虫姚虫虫姚虫虫 </a>
|
||||
<p class="pullreques_pull_txt ml10 fl">项目导航栏数字错误</p>
|
||||
<span class="fr mr15 c_grey">acbc94af</span>
|
||||
</li>
|
||||
<li class="clear">
|
||||
<span class="fl c_grey ml15 ">19分钟前</span>
|
||||
<a href="javascript:void(0);" target="_blank" class="pullreques_pull_name fl ml10"> 姚虫虫</a>
|
||||
<p class="pullreques_pull_txt ml10 fl">项目导航栏数字错误</p>
|
||||
<span class="fr mr15 c_grey">acbc94af</span>
|
||||
</li>
|
||||
<li class="clear">
|
||||
<span class="fl c_grey ml15 ">19分钟前</span>
|
||||
<a href="javascript:void(0);" target="_blank" class="pullreques_pull_name fl ml10"> 尹刚 </a>
|
||||
<p class="pullreques_pull_txt ml10 fl">Merge branch 'develop' of https://git.trustie.net/jacknudt/trustieforge into develop</p>
|
||||
<span class="fr mr15 c_grey">acbc94af</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -28,32 +28,32 @@
|
|||
<div class="alert alert-orange mb15 ">
|
||||
在管理员接受后,将由系统自动合并。<%= link_to "接受", accept_pull_request_project_pull_request_path(@request.id, :project_id => @project.id), :class => "linkBlue2", :remote => true %>接受</a>
|
||||
</div>
|
||||
<div class="new_roadmap_conbox " >
|
||||
<div class="new_roadmap_conbox mb10" >
|
||||
<div class=" clear">
|
||||
<ul class="new_roadmap_nav fl" >
|
||||
<li class="new_roadmap_nav_hover ">
|
||||
<%= link_to "评论<span class='new_roadmap_nav_taghover ml5'>#{@comments_count}</span>".html_safe, pull_request_comments_project_pull_request_path(@request.id, :project_id => @project.id, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal" %>
|
||||
<li class="new_roadmap_nav_hover" id="new_roadmap_nav_1" onclick="HoverLi(1);">
|
||||
<%= link_to "评论<span class='new_roadmap_nav_taghover ml5' id='new_roadmap_num_1'>#{@comments_count}</span>".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" %>
|
||||
<!--<a href="javascript:void(0);" id="new_roadmap_type_1" class="new_roadmap_type_nomal" >评论<span id="new_roadmap_num_1" class="new_roadmap_nav_taghover ml5">210</span></a>-->
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to "提交<span class='new_roadmap_nav_tagnomal ml5'>#{@commits_count}</span>".html_safe, pull_request_commits_project_pull_request_path(@request.id, :project_id => @project.id, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal" %></li>
|
||||
<li id="new_roadmap_nav_2" onclick="HoverLi(2);">
|
||||
<%= link_to "提交<span class='new_roadmap_nav_tagnomal ml5' id='new_roadmap_num_2'>#{@commits_count}</span>".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" %></li>
|
||||
<!--<a href="javascript:void(0);" id="new_roadmap_type_2" class="new_roadmap_type_nomal" >提交<span id="new_roadmap_num_2" class="new_roadmap_nav_tagnomal ml5">25</span></a>-->
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to "改动<span class='new_roadmap_nav_tagnomal ml5'>#{@changes_count}</span>".html_safe, pull_request_changes_project_pull_request_path(@request.id, :project_id => @project.id, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal" %></li>
|
||||
<li id="new_roadmap_nav_3" onclick="HoverLi(3);">
|
||||
<%= link_to "改动<span class='new_roadmap_nav_tagnomal ml5' id='new_roadmap_num_3'>#{@changes_count}</span>".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" %></li>
|
||||
<!--<a href="javascript:void(0);" id="new_roadmap_type_3" class="new_roadmap_type_nomal" >改动<span id="new_roadmap_num_3" class="new_roadmap_nav_tagnomal ml5">5</span></a>-->
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<% if @type == nil || @type == "1" %>
|
||||
<div id="merge_record_0">
|
||||
<div id="merge_record_1">
|
||||
<%= render :partial => "pull_requests/pull_request_comments" %>
|
||||
</div>
|
||||
<% end %>
|
||||
<div id="merge_record_1" class="undis">
|
||||
<div id="merge_record_2" class="undis">
|
||||
<%= render :partial => "pull_requests/pull_request_commits" %>
|
||||
</div>
|
||||
<div id="merge_record_2" class="undis">
|
||||
<div id="merge_record_3" class="undis">
|
||||
<%= render :partial => "pull_requests/pull_request_changes" %>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -61,15 +61,21 @@
|
|||
<!--PullReques结束-->
|
||||
|
||||
<script>
|
||||
$(".new_roadmap_nav li").click(function(){
|
||||
$(".new_roadmap_nav li").removeClass("new_roadmap_nav_hover");
|
||||
$(this).addClass("new_roadmap_nav_hover");
|
||||
|
||||
var index = $(".new_roadmap_nav li").index(this);
|
||||
|
||||
$("#merge_record_0, #merge_record_1, #merge_record_2").hide();
|
||||
console.log(index);
|
||||
$("#merge_record_" + index).show();
|
||||
});
|
||||
function g(o){
|
||||
return document.getElementById(o);
|
||||
}
|
||||
function HoverLi(n){
|
||||
//如果有N个标签,就将i<=N;
|
||||
for(var i=1;i<=3;i++){
|
||||
g('new_roadmap_nav_'+i).className='new_roadmap_nav_nomal';
|
||||
g('new_roadmap_type_'+i).className='new_roadmap_type_nomal';
|
||||
g('new_roadmap_num_'+i).className='new_roadmap_nav_tagnomal';
|
||||
g('merge_record_'+i).className='undis';
|
||||
}
|
||||
g('new_roadmap_nav_'+n).className='new_roadmap_nav_hover';
|
||||
g('new_roadmap_type_'+n).className='new_roadmap_type_hover';
|
||||
g('new_roadmap_num_'+n).className='new_roadmap_nav_taghover';
|
||||
g('merge_record_'+n).className='dis';
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
$("#merge_record_2").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_changes") %>');
|
||||
$("#merge_record_3").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_changes") %>');
|
|
@ -1 +1 @@
|
|||
$("#merge_record_0").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_comments") %>');
|
||||
$("#merge_record_1").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_comments") %>');
|
|
@ -1 +1 @@
|
|||
$("#merge_record_1").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_commits") %>');
|
||||
$("#merge_record_2").html('<%= escape_javascript( render :partial => "pull_requests/pull_request_commits") %>');
|
|
@ -0,0 +1,33 @@
|
|||
<div class="sy_popup_top">
|
||||
<h3 class="fl">新建里程碑</h3>
|
||||
<a href="javascript:void(0);" class="sy_icons_close fr" onclick="hideModal()"></a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="sy_popup_con">
|
||||
<%= form_for :version, :url => project_versions_path(@project, :is_setting => true),:html=>{:id=>"new_project_version_form", :remote => true} do |f| %>
|
||||
<div id="pro_st_edit_ban1">
|
||||
<ul class="pro_newsetting_con mb15">
|
||||
<li class="mb10 clear">
|
||||
<label class="label02"><span class="c_red f12">*</span> <%= l(:field_name) %> : </label>
|
||||
<%= f.text_field :name, :maxlength => 60, :class=>"w650 fl", :style=>"height: 28px;", :id => "setting_version_name" %>
|
||||
<p class="c_orange ml100 " style="display: none" id="project_setting_version_title">标题不能为空</p>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class="fl"> <%= l(:label_version_description) %> : </label>
|
||||
<%= f.text_field :description, :maxlength => 60, :class=>"w650 fl", :style=>"height:28px;"%>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class=" fl"> <%= l(:milestone_date_closed) %> : </label>
|
||||
<%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>"issues_calendar_input fl", :placeholder=>"结束日期", :style=>"height:28px;" %>
|
||||
<%= calendar_for('version_effective_date') %>
|
||||
</li>
|
||||
<li class="mb10 clear">
|
||||
<label class="fl"> <%= l(:field_status) %> : </label>
|
||||
<%= f.select :status, Version::VERSION_STATUSES.collect {|s| [l("version_status_#{s}"), s]},{},{:style=>"height:28px"} %>
|
||||
</li>
|
||||
<div class="cl mb10"></div>
|
||||
</ul>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey " onclick="pro_st_show_ban1();">取消</a><a href="javascript:void(0);" onclick="project_version_commit();" class="fr sy_btn_blue mr5">保存</a>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
|
@ -2,8 +2,11 @@
|
|||
<div class="clear new_roadmap_listbox">
|
||||
<div class="clear">
|
||||
<h4 class="fl new_roadmap_listtitle"><%= link_to_version version, :name => version_anchor(version) %></h4><span class="fl <%= get_version_type(version.status) %> mt3 ml5"></span>
|
||||
<%= link_to "导出", version_path(version, :format => 'xls'), :class => "btn_newpro_grey fr" %>
|
||||
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
|
||||
<%= 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) %>
|
||||
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
|
||||
</div>
|
||||
<ul class="new_roadmap_list_txt clear mb5">
|
||||
|
|
|
@ -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') %>');
|
||||
|
|
|
@ -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 %>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
var htmlvalue = "<%= escape_javascript(render :partial => 'versions/edit') %>";
|
||||
pop_box_new(htmlvalue,580,366);
|
||||
|
|
@ -2,17 +2,17 @@
|
|||
<div class="new_roadmap_conbox mb10" >
|
||||
<div class="new_roadmap_navbox clear">
|
||||
<ul class="new_roadmap_nav fl" >
|
||||
<li class="new_roadmap_nav_hover">
|
||||
<%= link_to "所有<span class='new_roadmap_nav_taghover ml5'>#{@versions_count}</span>".html_safe, project_roadmap_path(@project, :type => "1"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
|
||||
<li class="new_roadmap_nav_hover" id="new_roadmap_nav_1" onclick="HoverLi(1);">
|
||||
<%= link_to "所有<span class='new_roadmap_nav_taghover ml5' id='new_roadmap_num_1'>#{@versions_count}</span>".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" %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to "打开<span class='new_roadmap_nav_taghover ml5'>#{@versions_open_count}</span>".html_safe, project_roadmap_path(@project, :type => "2"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
|
||||
<li id="new_roadmap_nav_2" onclick="HoverLi(2);">
|
||||
<%= link_to "打开<span class='new_roadmap_nav_tagnomal ml5' id='new_roadmap_num_2'>#{@versions_open_count}</span>".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" %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to "锁定<span class='new_roadmap_nav_taghover ml5'>#{@versions_locked_count}</span>".html_safe, project_roadmap_path(@project, :type => "3"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
|
||||
<li id="new_roadmap_nav_3" onclick="HoverLi(3);">
|
||||
<%= link_to "锁定<span class='new_roadmap_nav_tagnomal ml5' id='new_roadmap_num_3'>#{@versions_locked_count}</span>".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" %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to "关闭<span class='new_roadmap_nav_taghover ml5'>#{@versions_closed_count}</span>".html_safe, project_roadmap_path(@project, :type => "4"), :remote => true, :class => "new_roadmap_type_nomal", :id => "new_roadmap_type_1" %>
|
||||
<li id="new_roadmap_nav_4" onclick="HoverLi(4);">
|
||||
<%= link_to "关闭<span class='new_roadmap_nav_tagnomal ml5' id='new_roadmap_num_4'>#{@versions_closed_count}</span>".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" %>
|
||||
</li>
|
||||
</ul>
|
||||
<a href="javascript:void(0);" class="btn btn-green fr mr15 mt10"> 新建 </a>
|
||||
|
@ -27,8 +27,27 @@
|
|||
<%= context_menu issues_context_menu_path %>
|
||||
|
||||
<script type="text/javascript" language="javascript">
|
||||
$(".new_roadmap_nav li").click(function(){
|
||||
$(".new_roadmap_nav li").removeClass("new_roadmap_nav_hover");
|
||||
$(this).addClass("new_roadmap_nav_hover");
|
||||
});
|
||||
function g(o){
|
||||
return document.getElementById(o);
|
||||
}
|
||||
function HoverLi(n){
|
||||
//如果有N个标签,就将i<=N;
|
||||
for(var i=1;i<=4;i++){
|
||||
g('new_roadmap_nav_'+i).className='new_roadmap_nav_nomal';
|
||||
g('new_roadmap_type_'+i).className='new_roadmap_type_nomal';
|
||||
g('new_roadmap_num_'+i).className='new_roadmap_nav_tagnomal';
|
||||
g('version_list').className='undis';
|
||||
}
|
||||
g('new_roadmap_nav_'+n).className='new_roadmap_nav_hover';
|
||||
g('new_roadmap_type_'+n).className='new_roadmap_type_hover';
|
||||
g('new_roadmap_num_'+n).className='new_roadmap_nav_taghover';
|
||||
g('version_list').className='dis';
|
||||
}
|
||||
|
||||
|
||||
// $(".new_roadmap_nav li").click(function(){
|
||||
// $(".new_roadmap_nav li").removeClass("new_roadmap_nav_hover");
|
||||
// $(".new_roadmap_nav li").removeClass("new_roadmap_nav_hover");
|
||||
// $(this).addClass("new_roadmap_nav_hover");
|
||||
// });
|
||||
</script>
|
|
@ -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;}
|
||||
|
|
Loading…
Reference in New Issue