Merge branch 'dev_newproject' of https://git.trustie.net/jacknudt/trustieforge into dev_newproject

This commit is contained in:
yuanke 2016-10-21 14:07:14 +08:00
commit 1f0e8649b9
26 changed files with 454 additions and 429 deletions

View File

@ -563,6 +563,7 @@ class IssuesController < ApplicationController
# 值所以用delete是因为issue和journal在act_as_attachment中是同一个类型
# 非动态页面直接刷新,动态页面手动刷新
def delete_journal
@is_project = params[:is_project]
@issue = Issue.find(params[:id])
begin
forge_acts = ForgeMessage.where(:forge_message_type => "Journal", :forge_message_id => params[:journal_id])

View File

@ -106,6 +106,8 @@ class UsersController < ApplicationController
#二级回复
def reply_to
@is_project = params[:is_project]
case params[:type]
when 'HomeworkCommon'
@reply = JournalsForMessage.find params[:reply_id]

View File

@ -34,43 +34,81 @@ class VersionsController < ApplicationController
def index
# 顶部导航
@project_menu_type = 7
type = params[:type]
version_all_count = Version.where(:project_id => @project.id)
case type
when nil,"1"
@versions = @project.versions
when "2"
@versions = @project.versions.where(:status => 'open')
when "3"
@versions = @project.versions.where(:status => 'locked')
when "4"
@versions = @project.versions.where(:status => 'closed')
end
@versions_count = Version.where(:project_id => @project.id).count
@versions_open_count = Version.where(:project_id => @project.id, :status => "open").count
@versions_locked_count = Version.where(:project_id => @project.id, :status => "locked").count
@versions_closed_count = Version.where(:project_id => @project.id, :status => "closed").count
@versions_count = version_type_count(type, @versions_count, @versions_open_count, @versions_locked_count, @versions_closed_count)
@limit = 10
@is_remote = true
@version_pages = Paginator.new @versions_count, @limit, params['page'] || 1
@offset ||= @version_pages.offset
@versions = paginateHelper @versions, @limit
respond_to do |format|
format.html {
@trackers = @project.trackers.sorted.all
retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?})
@with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1')
project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id]
format.html
format.js
format.api
# format.html {
# @trackers = @project.trackers.sorted.all
# retrieve_selected_tracker_ids(@trackers, @trackers.select {|t| t.is_in_roadmap?})
# @with_subprojects = params[:with_subprojects].nil? ? Setting.display_subprojects_issues? : (params[:with_subprojects] == '1')
# project_ids = @with_subprojects ? @project.self_and_descendants.collect(&:id) : [@project.id]
#
# @versions = @project.shared_versions || []
# @versions += @project.rolled_up_versions.visible if @with_subprojects
# #added by young
# @versions = @versions.uniq.reverse#Modified by young
# unless params[:completed]
# @completed_versions = @versions.select {|version| version.closed? || version.completed? }
# @versions -= @completed_versions
# end
# @offset, @limit = api_offset_and_limit({:limit => 4})
# @versions_count = @versions.count
# @versions_pages = Paginator.new @versions_count, @limit, params['page']
# @offset ||= @versions_pages.offset
# @versions = @versions.slice(@offset, @limit)
# #end by young
#
# @issues_by_version = {}
# if @selected_tracker_ids.any? && @versions.any?
# issues = Issue.visible.all(
# :include => [:project, :status, :tracker, :priority, :fixed_version],
# :conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids, :fixed_version_id => @versions.map(&:id)},
# :order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id"
# )
# @issues_by_version = issues.group_by(&:fixed_version)
# end
# @versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?}
# }
# format.api {
# @versions = @project.shared_versions.all
# }
end
end
@versions = @project.shared_versions || []
@versions += @project.rolled_up_versions.visible if @with_subprojects
#added by young
@versions = @versions.uniq.reverse#Modified by young
unless params[:completed]
@completed_versions = @versions.select {|version| version.closed? || version.completed? }
@versions -= @completed_versions
end
@offset, @limit = api_offset_and_limit({:limit => 4})
@versions_count = @versions.count
@versions_pages = Paginator.new @versions_count, @limit, params['page']
@offset ||= @versions_pages.offset
@versions = @versions.slice(@offset, @limit)
#end by young
@issues_by_version = {}
if @selected_tracker_ids.any? && @versions.any?
issues = Issue.visible.all(
:include => [:project, :status, :tracker, :priority, :fixed_version],
:conditions => {:tracker_id => @selected_tracker_ids, :project_id => project_ids, :fixed_version_id => @versions.map(&:id)},
:order => "#{Project.table_name}.lft, #{Tracker.table_name}.position, #{Issue.table_name}.id"
)
@issues_by_version = issues.group_by(&:fixed_version)
end
@versions.reject! {|version| !project_ids.include?(version.project_id) && @issues_by_version[version].blank?}
}
format.api {
@versions = @project.shared_versions.all
}
# 统计各种类型数量
def version_type_count type, all_count, opened_count, locked_count, closed_count
case type
when nil, "1"
all_count
when "2"
opened_count
when "3"
locked_count
when "4"
closed_count
end
end

View File

@ -54,4 +54,18 @@ module VersionsHelper
def status_by_options_for_select(value)
options_for_select(STATUS_BY_CRITERIAS.collect {|criteria| [l("field_#{criteria}".to_sym), criteria]}, value)
end
# 通过类型显示不同的样式
def get_version_type type
case type
when "open"
"roadmap_blueicon"
when "locked"
"roadmap_greenicon"
when "closed"
"roadmap_greyicon"
end
end
end

View File

@ -1,8 +1,13 @@
<% if @issue_id %> //issue详情中回复
<%= render "jounal_refresh" %>
<%else%>
$("#div_user_issue_reply_<%=@user_activity_id %>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
sd_create_editor_from_data(<%= @user_activity_id %>, null, "100%", "UserActivity");
//init_activity_KindEditor_data(<%= @user_activity_id %>,"","87%", 'UserActivity');
// sd_create_editor_from_data(<%#= @issue.id%>, null, "100%");
<%end %>
<% if @issue_id %> //issue详情中回复
<%= render "jounal_refresh" %>
<%else%>
<% if params[:is_project] %>
$("#div_user_issue_reply_<%=@user_activity_id %>").html("<%= escape_javascript(render :partial => 'projects/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% else %>
$("#div_user_issue_reply_<%=@user_activity_id %>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% end %>
sd_create_editor_from_data(<%= @user_activity_id %>, null, "100%", "UserActivity");
//init_activity_KindEditor_data(<%= @user_activity_id %>,"","87%", 'UserActivity');
// sd_create_editor_from_data(<%#= @issue.id%>, null, "100%");
<%end %>

View File

@ -1,6 +1,11 @@
<% if @user_activity_id %>
<%# 动态中 %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% if params[:is_project] %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'projects/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% else %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% end %>
sd_create_editor_from_data(<%= @user_activity_id%>, null, "100%","<%=@issue.class.name%>");
<% else %>
<%# issue详情 %>

View File

@ -1,6 +1,10 @@
<% if @user_activity_id %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
sd_create_editor_from_data(<%= @user_activity_id%>, null, "100%","<%=@issue.class.name%>");
<% else %>
<%= render "jounal_refresh" %>
<% if @user_activity_id %>
<% if @is_project %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'projects/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% else %>
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/project_issue_reply', :locals => {:activity => @issue, :user_activity_id => @user_activity_id}) %>");
<% end %>
sd_create_editor_from_data(<%= @user_activity_id%>, null, "100%","<%=@issue.class.name%>");
<% else %>
<%= render "jounal_refresh" %>
<% end %>

View File

@ -35,12 +35,11 @@
<%= render :partial => 'layouts/base_project_top' %>
</div>
<div class="fl">
<%= render_flash_messages %>
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
</div>
<%= render_flash_messages %>
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<div style="clear:both;"></div>
<div style="clear:both;"></div>
</div>

View File

@ -76,7 +76,7 @@
<% end %>
<% end %>
<div class="cl"></div>
<div class="mt10" style="font-weight:normal;">
<div class="mb10" style="font-weight:normal;">
<%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
</div>
</div>

View File

@ -86,7 +86,7 @@
<% count = all_replies.count %>
<%# allow_delete = (activity.user == User.current || User.current.admin? || User.current.allowed_to?(:as_teacher,activity.course)) %>
<%# count = fetch_user_leaveWord_reply(activity).count %>
<div class="homepagePostReply">
<div class="container-big-grey">
<%= render :partial => 'projects/project_reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %>
<% comments = all_replies[0..2] %>
@ -97,9 +97,9 @@
<% end %>
<% if !activity.locked? %>
<div class="homepagePostReplyContainer borderBottomNone minHeight48">
<div class="reply-container ml15 borderBottomNone minHeight48">
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= user_activity_id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %></div>
<div class="homepagePostReplyInputContainer mb10">
<div class="reply-content mb10">
<% if User.current.logged? %>
<div nhname='new_message_<%= user_activity_id%>' style="display:none;">
<%= form_for('new_form',:url => {:controller=>'messages',:action => 'reply', :id => activity.id, :board_id => activity.board_id,:is_course => is_course, :is_board => 'true'},:method => "post", :remote => true) do |f|%>

View File

@ -48,7 +48,7 @@
<p class="proInfoP"><span><%= activity.status.name %></span> <a href="javascript:void(0)" class="pic_edit2 ml5"></a></p>
<%= select( :issue,:status, [["新增",1],["正在解决",2],["已解决",3],["反馈",4],["关闭",5],["拒绝",6]].unshift(["状态",0]),
{:include_blank => false, :selected => @status_id ? @status_id : 0 },
{:onchange=>"remote_function('#issue_query_form_#{activity.id}');",:id=>"status_id",:name=>"status_id",:class=>"w70 undis issueEdit",:style=>"white-space:nowrap; overflow:hidden;"}
{:onchange=>"remote_function('#issue_query_form_#{activity.id}');",:id=>"status_id",:name=>"status_id",:class=>"w130 undis issueEdit",:style=>"white-space:nowrap; overflow:hidden;"}
)
%>
</li>
@ -62,7 +62,7 @@
<a href="javascript:void(0)" class="pic_edit2 ml5" style="vertical-align:top;"></a></span>
<%= select( :issue, :user_id, principals_options_for_isuue_list(activity.project),
{ :include_blank => false,:selected => @assign_to_id ? @assign_to_id : 0},
{:onchange=>"remote_function('#issue_query_assign_form_#{activity.id}');", :id =>"assigned_to_id", :name => "assigned_to_id",:class=>"undis issueEdit", :style => "width:130px;"}) %>
{:onchange=>"remote_function('#issue_query_assign_form_#{activity.id}');", :id =>"assigned_to_id", :name => "assigned_to_id",:class=>"w130 undis issueEdit"}) %>
</li>
<% end %>
<div class="cl"></div>
@ -75,7 +75,7 @@
<span class="proInfoP"><span><%= activity.priority.name %></span> <a href="javascript:void(0)" class="pic_edit2 ml5"></a> </span>
<%= select( :issue,:prior, [["低",1],["正常",2],["高",3],["紧急",4],["立刻",5]].unshift(["优先级",0]),
{:include_blank => false,:selected=>@priority_id ? @priority_id : 0},
{:onchange=>"remote_function('#issue_query_prior_form_#{activity.id}');",:id=>"priority_id",:name=>"priority_id",:class=>"w70 undis issueEdit"}) %>
{:onchange=>"remote_function('#issue_query_prior_form_#{activity.id}');",:id=>"priority_id",:name=>"priority_id",:class=>"w130 undis issueEdit"}) %>
</li>
<% end %>
<div class="cl"></div>
@ -85,7 +85,7 @@
<span class="proInfoP" style="width:130px;"><span><%= activity.done_ratio %>%</span> <a href="javascript:void(0)" class="pic_edit2 ml5"></a> </span>
<%= select( :issue,:done_ratio, ((0..10).to_a.collect { |r| ["#{r*10} %", r*10] }),
{:include_blank => false, :selected => @done_ratio ? @done_ratio : 0},
{:onchange=>"remote_function('#issue_query_done_form_#{activity.id}');",:id=>"done_ratio",:name=>"done_ratio",:class=>"w70 undis issueEdit"}) %>
{:onchange=>"remote_function('#issue_query_done_form_#{activity.id}');",:id=>"done_ratio",:name=>"done_ratio",:class=>"w130 undis issueEdit"}) %>
<% end %>
</li>

View File

@ -43,7 +43,7 @@
<span style="position: relative" class="fr mr20">
<%= link_to(
l(:button_reply),
{:controller => 'users', :action => 'reply_to', :reply_id => comment.id, :type => 'Issue', :user_activity_id => user_activity_id, :activity_id => activity.id},
{:controller => 'users', :action => 'reply_to', :reply_id => comment.id, :type => 'Issue', :user_activity_id => user_activity_id, :activity_id => activity.id, :is_project => true},
:remote => true,
:method => 'get',
:title => l(:button_reply)) %>
@ -51,7 +51,7 @@
</span>
<%= link_to(
l(:button_delete),
{:controller => 'issues',:action => 'delete_journal', :id => activity.id,:journal_id=>comment.id, :user_activity_id => user_activity_id},
{:controller => 'issues',:action => 'delete_journal', :id => activity.id,:journal_id=>comment.id, :user_activity_id => user_activity_id, :is_project => true},
:method => 'get',
:confirm => l(:text_are_you_sure),
:remote=>true,
@ -81,7 +81,7 @@
<div class="reply-content mb10">
<% if User.current.logged? %>
<div nhname='new_message_<%= user_activity_id %>' style="display:none;">
<%= form_for('new_form',:url => add_journal_issue_path(activity.id, :user_activity_id => user_activity_id),:method => "post", :remote => true) do |f| %>
<%= form_for('new_form',:url => add_journal_issue_path(activity.id, :user_activity_id => user_activity_id, :is_project => true),:method => "post", :remote => true) do |f| %>
<input type="hidden" name="user_activity_id" value="<%=user_activity_id%>">
<div nhname='toolbar_container_<%= user_activity_id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= user_activity_id%>' name="notes"></textarea>

View File

@ -6,11 +6,11 @@
autoUrl('reply_content_<%= comment.id %>');
});
</script>
<li class="homepagePostReplyContainer" nhname="reply_rec">
<li class="reply-container ml15" nhname="reply_rec">
<div class="homepagePostReplyPortrait">
<%= link_to image_tag(url_to_avatar(comment.creator_user), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_user.id) %>
</div>
<div class="homepagePostReplyDes" onmouseover="$('#delete_reply_<%=activity_id %>_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=activity_id %>_<%=comment.id %>').hide();">
<div class="reply-content ml15" onmouseover="$('#delete_reply_<%=activity_id %>_<%=comment.id %>').show();" onmouseout="$('#delete_reply_<%=activity_id %>_<%=comment.id %>').hide();">
<%= render :partial => 'projects/project_message_contents', :locals => {:comment => comment}%>
<% if !comment.content_detail.blank? %>

View File

@ -0,0 +1,38 @@
<div class="<%= User.current.logged? ? 'orig_reply_box' : 'orig_reply_box2' %> borderBottomNone" id="reply_to_message_<%= reply.id%>">
<% if User.current.logged? %>
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= reply.id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(User.current), :alt => "用户头像" %></div>
<div class="orig_textarea mb10 fl">
<div nhname='new_message_<%= reply.id%>'>
<% if @type == 'Message' %>
<%= form_for('new_form',:url => {:controller => 'messages', :action => 'reply', :id => reply.id, :board_id => reply.board.id, :is_project => true}, :method => "post", :remote => true) do |f|%>
<%= hidden_field_tag 'is_course', params[:is_course], :value => @is_course %>
<%= hidden_field_tag 'is_board', params[:is_board], :value => @is_board %>
<%= hidden_field_tag 'parent_id', params[:parent_id], :value => reply.id %>
<%= hidden_field_tag 'activity_id',params[:activity_id],:value =>@activity_id %>
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>'></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="content"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>'></p>
<% end%>
<% elsif @type == 'Issue' %>
<%= form_for('new_form',:url => add_reply_issue_path(reply.issue.id, :is_project => true),:method => "post", :remote => true) do |f|%>
<%= hidden_field_tag 'journal_id',params[:journal_id],:value =>reply.id %>
<%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %>
<div nhname='toolbar_container_<%= reply.id%>' ></div>
<textarea placeholder="有问题或有建议,请直接给我留言吧!" style="display: none" nhname='new_message_textarea_<%= reply.id%>' name="content"></textarea>
<a id="new_message_submit_btn_<%= reply.id%>" href="javascript:void(0)" onclick="this.style.display='none'" class="blue_n_btn fr" style="display:none;margin-top:6px;">发送</a>
<div class="cl"></div>
<p nhname='contentmsg_<%= reply.id%>' class="fl"></p>
<% end %>
<% end %>
</div>
<div class="cl"></div>
</div>
<% else %>
<%= render :partial => "users/show_unlogged_reply" %>
<% end %>
<div class="cl"></div>
</div>

View File

@ -1,41 +1,51 @@
<%= form_tag(url_for(:controller => 'pull_requests', :action => 'create', :project_id => @project.id, :forked_project_id => @forked_project.try(:gpid)), :id => 'pull_request_form', :method => "post", :remote => true) do %>
<div class="new-merge-wrap">
<div class="merge-option-name fl mt8"><span class="c_red">*</span>标题</div><input type="text" id="pr_name" name="title" class="merge-title-input fl ml30" />
<p id ="pull_request_title" class="fl ml100 fontGrey2 mt5 c_red" style="display: none">标题不能为空</p>
<div class="cl mb10"></div>
<div class="merge-option-name fl">描述</div><textarea type="text" name="description" class="merge-description-input fl ml30"></textarea>
<!--<p class="fl ml100 f12 mt5"><a href="javascript:void(0);" class="AnnexBtn fl mr10">上传附件</a></p>-->
<div class="cl"></div>
</div>
<div class="new-merge-wrap borderBottomNone">
<div class="merge-option-name fl" style="padding:5px 0">源分支</div>
<%= select_tag :branch, options_for_select(@source_rev), :id => "source_branch", :name => "source_branch", :value => "source_branch", :class => "ml30 fontGrey3 fb fl", :style => "padding:5px 0 5px 5px;" %>
<div class="cl mb10"></div>
<div class="merge-option-name fl" style="padding:5px 0">目标分支</div>
<% if @forked_project.nil? %>
<%= select_tag :branch, options_for_select(@source_rev), :id => "pull_request_branch", :name => "target_branch", :value => "target_branch",:class => "ml30 fontGrey3 fb fl", :style => "padding:5px 0 5px 5px;" %>
<% else %>
<select onchange="choice_branch(this.value, document.getElementById('pull_request_branch'), <%= @source_rev %>, <%= @forked_rev %>);" id="pull_request_project" name="source_project" value="source_project" class="ml30 fontGrey3 fb fl" style = "padding:5px 0 5px 5px;">
<option name="<%= @project.id %>" value="source_project_name" ><%= @source_project_name %></option>
<option name="<%= @forked_project.id %>" value="forked_project_name" ><%= @forked_project_name %></option>
</select>
<select name="target_branch" id="pull_request_branch" class = "ml30 fontGrey3 fb fl" style = "width:140px; padding:5px 0 5px 5px;">
<% @source_rev.each do |rev| %>
<option value="<%= rev %>"><%= rev %></option>
<div class="new_roadmap_conbox mb10" >
<div class="new_roadmap_info_top clear ">
<h4 class=" new_roadmap_listtitle"> 新建Pull Request </h4>
</div>
<%= form_tag(url_for(:controller => 'pull_requests', :action => 'create', :project_id => @project.id, :forked_project_id => @forked_project.try(:gpid)), :id => 'pull_request_form', :method => "post", :remote => true) do %>
<div class="clear new_roadmap_listbox">
<ul class="PullReques_new_box ">
<li class="mb10 clear">
<label class=" fl PullReques_label">&nbsp;源分支&nbsp;&nbsp;:&nbsp;</label>
<%= select_tag :branch, options_for_select(@source_rev), :id => "source_branch", :name => "source_branch", :value => "source_branch", :class => "fl PullReques_minselect" %>
<label class=" fl ml10 ">&nbsp; 合并到目标分支&nbsp;&nbsp;:&nbsp;</label>
<% if @forked_project.nil? %>
<%= select_tag :branch, options_for_select(@source_rev), :id => "pull_request_branch", :name => "target_branch", :value => "target_branch",:class => "fl PullReques_minselect ml5" %>
<% else %>
<select onchange="choice_branch(this.value, document.getElementById('pull_request_branch'), <%= @source_rev %>, <%= @forked_rev %>);" id="pull_request_project" name="source_project" value="source_project" class="fl PullReques_minselect">
<option name="<%= @project.id %>" value="source_project_name" ><%= @source_project_name %></option>
<option name="<%= @forked_project.id %>" value="forked_project_name" ><%= @forked_project_name %></option>
</select>
<select name="target_branch" id="pull_request_branch" class = "fl PullReques_minselect ml5" >
<% @source_rev.each do |rev| %>
<option value="<%= rev %>"><%= rev %></option>
<% end %>
</select>
<% end %>
</select>
<% end %>
<p id="pull_request_project_hidden" style="display: none"><%= @forked_project.nil? ? "" : @project.id %></p>
<div class="cl"></div>
<p id ="pull_request_branch_error" class="ml100 fontGrey2 mt5 c_red" style="display: none">没有内容可以合并,请切换一个不同的分支</p>
<div class="cl"></div>
</div>
<div class="new-merge-row b_grey" style="border-top:1px solid #ddd;">
<a href="javascript:void(0);" class="BlueCirBtn fl ml10" onclick="pull_request_commit()">提交请求</a>
<%= link_to "返回", project_pull_requests_path(:project_id => @project.id), :class => "fr linkGrey2 mt5 mr10" %>
<div class="cl"></div>
</div>
<% end %>
<p id="pull_request_project_hidden" style="display: none"><%= @forked_project.nil? ? "" : @project.id %></p>
</li>
<div class="alert alert-blue mb10" id ="pull_request_branch_error" style="display: none">
<span class="c_orange">您选择的源分支和目标分支为似乎没有差异,请将新改动提交至源分支或者切换到其它目标分支</span>
</div>
<li class="mb10 clear">
<label class=" fl PullReques_label"><span class="c_red f12">*</span>&nbsp;标题&nbsp;&nbsp;:&nbsp;</label>
<input type="text" id="pr_name" name="title" class="fl PullReques_maxinput" placeholder="请输入合并请求的标题" />
</li>
<div class="c_orange pl62 mb4" id ="pull_request_title" style="display: none">
标题不能为空
</div>
<li class=" clear">
<label class=" fl PullReques_label">&nbsp;描述&nbsp;&nbsp;:&nbsp;</label>
<textarea type="text" name="description" class="PullReques_textarea fl mb10" placeholder="在此输入合并请求的描述"></textarea>
</li>
<li class="mb10 clear">
<%= link_to "返回", project_pull_requests_path(:project_id => @project.id), :class => "btn btn-grey fr" %>
<a href="javascript:void(0);" class="btn btn-blue fr mr5" onclick="pull_request_commit()">确定</a>
</li>
</ul>
</div>
<% end %>
</div>
<script>
function regex_pr_name()
@ -74,7 +84,7 @@
//提交pull request
function pull_request_commit()
{
if(regex_pr_name() && regex_branch())
if(regex_branch() && regex_pr_name())
{
$("#pull_request_form").submit();
}

View File

@ -1,4 +1,88 @@
<% if @allow_to_pull_request %>
<!--PullReques列表开始-->
<div class="new_roadmap_conbox " >
<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'>#{@requests_opened_count}</span>".html_safe, project_pull_requests_path(:type => "1"), :remote => true %></li>
<li><%= link_to "已处理<span class='new_roadmap_nav_tagnomal ml5'>#{@requests_merged_count}</span>".html_safe, project_pull_requests_path(:type => "2"), :remote => true %></li>
<li><%= link_to "已关闭<span class='new_roadmap_nav_tagnomal ml5'>#{@requests_closed_count}</span>".html_safe, project_pull_requests_path(:type => "3"), :remote => true %></li>
<% if allow_pull_request(@project) && User.current.member_of?(@project) %>
<%= link_to "创建Pull Request", new_project_pull_request_path, :class => "btn btn-green fr mr15 mt10" %>
<% end %>
<li id="new_roadmap_nav_1" class="new_roadmap_nav_hover " onclick="HoverLi(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 id="new_roadmap_nav_2" onclick="HoverLi(2);" >
<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 id="new_roadmap_nav_3" onclick="HoverLi(3);" >
<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>
<a href="javascript:void(0);" class="btn btn-green fr mr15 mt10"> 新建 </a>
</div>
<div class="pullreques_category clear ">
<a href="javascript:void(0);" class="sortdownbtn mt10 fr mr15"></a>
<a href="javascript:void(0);" class="sy_cgrey fr">更新时间</a>
<a href="javascript:void(0);" class="sortupbtn mt10 fr"></a>
<a href="javascript:void(0);" class="sy_cgrey fr">创建时间 </a>
</div>
<div id="new_roadmap_content_1">
<div class="clear new_roadmap_listbox">
<div class="clear">
<span class="icons_pullreques fl "></span><h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">两个分支作用不是很大</a></h4>
<a href="javascript:void(0);" class="fr mt2">3</a>
<a href="javascript:void(0);" class="issues_icons_mes fr mr5 ml5 "></a>
</div>
<div class="c_grey clear mt5">
<p class="fl">由 <a href="javascript:void(0);" class="linkBlue2 " >胡莎莎</a> 创建于1个月前</p>
<span class="fl ml10">大约1个月前更新</span>
<p class="fr">凌彬/Rep_course<span class="c_grey02 ml10 mr10">合并到</span>胡莎莎/Rep_quality</p>
</div>
</div>
<div class=" pages ">
<a href="javascript:void(0);" class="pages-big" >上一页</a>
<a href="javascript:void(0);" class="active " >1</a>
<a href="javascript:void(0);" >2</a>
<a href="javascript:void(0);" >3</a>
<a href="javascript:void(0);" >...</a>
<a href="javascript:void(0);" >31</a>
<a href="javascript:void(0);" class="pages-big" >下一页</a>
<div class="cl"></div>
</div><!--翻页 end-->
<div class="cl"></div>
</div><!--new_roadmap_content_1 end-->
<div id="new_roadmap_content_2" class="undis">
ddd
</div><!--new_roadmap_content_2 end-->
<div id="new_roadmap_content_3" class="undis">
eee
</div><!--new_roadmap_content_3 end-->
</div><!--new_roadmap end-->
<!--PullReques列表结束-->
<%#= render :partial => "pull_requests/pull_request_container" %>
<ul id="mergeBanner" class="project-merge-banner">
<li class="active"><%= link_to "待处理<span class='project-number-dot'>#{@requests_opened_count}</span>".html_safe, project_pull_requests_path(:type => "1"), :remote => true %></li>
@ -17,12 +101,12 @@
<script>
$("#mergeBanner").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
// $("#mergeBanner").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
$("#mergeBanner").parent().before("<div class='homepageRightBanner mb10'><span class='f16 fontGrey3'>Pull Request</span></div>");
$(".project-merge-banner li").click(function(){
$(".project-merge-banner li").removeClass("active");
$(this).addClass("active");
$(".project-merge-banner li").removeClass("new_roadmap_nav_hover");
$(this).addClass("new_roadmap_nav_hover");
});
</script>
<% else %>

View File

@ -1,3 +1,28 @@
<%= render :partial => "pull_requests/pull_request_container" %>
<%= render :partial => "pull_requests/new" %>
<div id="pull_request_new_form">
<div id="create_pull_request_error">
<%= render :partial => "pull_requests/error_message" %>
</div>
<%= render :partial => "pull_requests/form" %>
</div>
<script>
// $("#pull_request_new_form").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
$("#changed-files").toggle(function(){
$("#changed-files-detail").show();
},function(){
$("#changed-files-detail").hide();
});
$(".merge-record li a").click(function(){
$(".merge-record li a").removeClass("active");
$(this).addClass("active");
var index = $(".merge-record li a").index(this);
$("#merge_record_0, #merge_record_1").hide();
$("#merge_record_" + index).show();
});
</script>

View File

@ -1,10 +1,14 @@
if($("#reply_message_<%= @reply.id%>").length > 0) {
$("#reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to', :locals => {:reply => @reply}) %>");
$("#reply_iconup_<%=@reply.id %>").show();
$(function(){
sd_create_editor_from_data(<%= @reply.id%>,null,"100%", "<%=@reply.class.to_s%>");
});
}else if($("#reply_to_message_<%= @reply.id%>").length >0) {
$("#reply_to_message_<%= @reply.id%>").replaceWith("<p id='reply_message_<%= @reply.id%>'></p>");
$("#reply_iconup_<%=@reply.id %>").hide();
if($("#reply_message_<%= @reply.id%>").length > 0) {
<% if params[:is_project] %>
$("#reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'projects/reply_to', :locals => {:reply => @reply}) %>");
<% else %>
$("#reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to', :locals => {:reply => @reply}) %>");
<% end %>
$("#reply_iconup_<%=@reply.id %>").show();
$(function(){
sd_create_editor_from_data(<%= @reply.id%>,null,"100%", "<%=@reply.class.to_s%>");
});
}else if($("#reply_to_message_<%= @reply.id%>").length >0) {
$("#reply_to_message_<%= @reply.id%>").replaceWith("<p id='reply_message_<%= @reply.id%>'></p>");
$("#reply_iconup_<%=@reply.id %>").hide();
}

View File

@ -0,0 +1,36 @@
<% @versions.each do |version| %>
<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>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red" title="<%= version.closed_percent %>"><%= version.closed_percent.round %>% </span></li>
<li>Issues<span class="ml5 "><%= version.issues_count %> </span></li>
<li>已关闭<span class="ml5 "><%= version.closed_issues_count %> </span></li>
<li>
<% if version.completed? %>
<span></span><%= format_date(version.effective_date) %>
<% elsif version.effective_date %>
<span class="muban-icons-clock"></span><%= due_date_distance_in_words(version.effective_date) %>(<%= format_date(version.effective_date) %>)
<% end %>
<!--<span ></span>截止日期剩余 5天(2016-10-31)</li>-->
</ul>
<div class="c_grey">
<p><%= version.description %></p>
</div>
</div>
<% end %>
<div style="text-align:center;">
<div class="pages" style="width:auto; display:inline-block;">
<ul id="homework_pository_ref_pages">
<%= pagination_links_full @version_pages, @versions_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>
</ul>
<div class="cl"></div>
</div>
</div>
<div class="cl"></div>

View File

@ -1,317 +1,34 @@
<!--里程碑列表开始-->
<div class="new_roadmap_conbox " >
<div class="new_roadmap_navbox clear">
<ul class="new_roadmap_nav fl" >
<li id="new_roadmap_nav_1" class="new_roadmap_nav_hover " onclick="HoverLi(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 id="new_roadmap_nav_2" onclick="HoverLi(2);" >
<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 id="new_roadmap_nav_3" onclick="HoverLi(3);" >
<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>
<li id="new_roadmap_nav_4" onclick="HoverLi(4);" >
<a href="javascript:void(0);" id="new_roadmap_type_4" class="new_roadmap_type_nomal" >关闭 <span id="new_roadmap_num_4" class="new_roadmap_nav_tagnomal ml5">5</span></a>
</li>
</ul>
<a href="javascript:void(0);" class="btn btn-green fr mr15 mt10"> 新建 </a>
</div>
<div id="new_roadmap_content_1">
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_blueicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
<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>
<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>
<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>
<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>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
<a href="javascript:void(0);" class="btn btn-green fr mr15 mt10"> 新建 </a>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greenicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_green">100% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span ><span class="c_red">延期 6 天(2016-10-31)</span></li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
<div id="version_list">
<%= render :partial => "versions/list" %>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greyicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_blueicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greenicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_green">100% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span ><span class="c_red">延期 6 天(2016-10-31)</span></li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greyicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_blueicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greenicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_green">100% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span ><span class="c_red">延期 6 天(2016-10-31)</span></li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greyicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class="clear new_roadmap_listbox">
<div class="clear">
<h4 class="fl new_roadmap_listtitle"><a href="javascript:void(0);" class="">Version3.5 </a></h4><span class="fl roadmap_greyicon mt3 ml5"></span>
<a href="javascript:void(0);" class="btn_newpro_grey fr " alt="导出">导出</a>
<a href="javascript:void(0);" class="roadmap_icons_del fr mt5 mr5" alt="删除"></a>
<a href="javascript:void(0);" class="roadmap_icons_edit fr mt5 " alt="编辑"></a>
</div>
<ul class="new_roadmap_list_txt clear mb5">
<li>完成 <span class="ml5 c_red">30% </span></li>
<li>issues<span class="ml5 ">20 </span></li>
<li>已关闭<span class="ml5 ">6 </span></li>
<li><span class="muban-icons-clock "></span>截止日期剩余 5天(2016-10-31)</li>
</ul>
<div class="c_grey">
<p>里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息里程碑的首页以列表形式显示不显示具体issue只显示个数完成度等重要信息。</p>
</div>
</div>
<div class=" pages ">
<a href="javascript:void(0);" class="pages-big" >上一页</a>
<a href="javascript:void(0);" class="active " >1</a>
<a href="javascript:void(0);" >2</a>
<a href="javascript:void(0);" >3</a>
<a href="javascript:void(0);" >...</a>
<a href="javascript:void(0);" >31</a>
<a href="javascript:void(0);" class="pages-big" >下一页</a>
<div class="cl"></div>
</div><!--翻页 end-->
<div class="cl"></div>
</div><!--new_roadmap_content_1 end-->
<div id="new_roadmap_content_2" class="undis">
ddd
</div><!--new_roadmap_content_2 end-->
<div id="new_roadmap_content_3" class="undis">
eee
</div><!--new_roadmap_content_3 end-->
<div id="new_roadmap_content_4" class="undis">
fff
</div><!--new_roadmap_content_4 end-->
</div><!--new_roadmap end-->
<!--里程碑列表结束-->
<div class="project_r_h" style="width:730px;">
<h2 class="project_h2"><%= l(:label_roadmap) %></h2>
</div>
<div class="roadmap">
<fieldset id="filters" class="collapsible collapsed" >
<legend><%= l(:label_version_display_settings)%></legend>
<%= form_tag({}, :method => :get) do %>
<% @trackers.each do |tracker| %>
<label><%= check_box_tag "tracker_ids[]", tracker.id, (@selected_tracker_ids.include? tracker.id.to_s), :id => nil %>
<%=h tracker.name %></label>
<% end %>
<!--label for="completed"><%#= check_box_tag "completed", 1, params[:completed] %> <%#= l(:label_show_completed_versions) %></label-->
<% if @project.descendants.active.any? %>
<%= hidden_field_tag 'with_subprojects', 0 %>
<label><%= check_box_tag 'with_subprojects', 1, @with_subprojects %> <%=l(:label_subproject_plural)%></label>
<% end %>
<%= submit_tag l(:button_apply), :class => 'sub_btn ml10', :name => nil %>
<%= link_to l(:label_version_new), new_project_version_path(@project), :class => 'green_u_btn fr' if User.current.allowed_to?(:manage_versions, @project) %>
<% end %>
</fieldset>
<% if @versions.empty? %>
<p class="nodata mt10"><%= l(:label_no_data) %></p>
<% else %>
<% @versions.each do |version| %>
<div class="roadmap_box" style="width:710px;">
<p><a class=" f16 fb c_dblue ">
<a class=" f16 fb c_dblue " ><%= version_anchor(version)%></a>
<%#= link_to_version_show version, :name => version_anchor(version) %>
<% if version.completed? %>
<span style="color: #E8770D;float:right;"><%= format_date(version.effective_date) %></span>
<% elsif version.effective_date %>
<span style="color: #E8770D;float:right;"><strong><%= due_date_distance_in_words(version.effective_date) %></strong> (<%= format_date(version.effective_date) %>)</span>
<% end %>
</a>
</p>
<div class="roadmap_pro mb10">
<%= render :partial => 'versions/overview', :locals => {:version => version} %>
<%#= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %>
</div><!--roadmap_pro end-->
<% if (issues = @issues_by_version[version]) && issues.size > 0 %>
<div class="roadmap_list">
<%= form_tag({}) do -%>
<p class="f14 mb5">&#187;<%= l(:label_related_issues) %></p>
<ul class="roadmap_list_ul">
<% issues.each do |issue| -%>
<li style="overflow:hidden">
<%= link_to_issue_version(issue, :project => (@project != issue.project)) %>
<span class="mr5 fr" >指派给:<%= link_to "#{User.find(issue.try(:assigned_to_id)).show_name}", user_path(issue.try(:assigned_to_id)), :class => "c_blue hidden fr", :style => "width:50px;" %></span>
</li>
<% end -%>
</ul>
<% end %>
</div>
<% end %><!--roadmap_list end-->
<div class="roadmap_list">
<p class="f14 mb5">&#187;<%= l(:label_versions_description)%></p>
<p><%=h version.description %></p>
<!--p class="f14 mb5">&#187;<%#= link_to "导出Excel", version_path(version, :format => 'xls') %></p-->
</div><!--roadmap_list end-->
</div><!--roadmap_box end-->
<% end %>
<ul class="wlist" >
<%= pagination_links_full @versions_pages%>
</ul>
<div class="cl"></div>
<% end %>
</div><!--roadmap end-->
<% html_title(l(:label_roadmap)) %>
<%= 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");
});
</script>

View File

@ -0,0 +1,2 @@
$("#version_list").html('<%= escape_javascript(render :partial => 'list') %>');
$("#pages").html('<%= pagination_links_full @version_pages, @versions_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>');

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 205 KiB

View File

@ -214,6 +214,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
.pl10 {padding-left:10px;}
.pr5 {padding-right:5px;}
.pr10{padding-right: 10px;}
.pl62 {padding-left: 62px;}
.pl15{ padding-left:15px;}
.pt5{ padding-top:5px;}
.pt10{ padding-top:10px;}

View File

@ -970,4 +970,43 @@ select.new_roadmap_select{border:1px solid #dbdbdb; color: #666;}
.new_roadmap_table tbody tr td{ height:40px; line-height:40px; border-bottom:1px solid #e5e5e5; color:#888;}
.new_roadmap_table td{ padding:0 5px;}
/*模板图标20161020byLB*/
.muban-icons-clock{ background: url("/images/new_project/icons_issue.png") 0 -224px no-repeat; display: inline-block; width: 19px; height: 13px;}
.muban-icons-clock{ background: url("/images/new_project/icons_issue.png") 0 -224px no-repeat; display: inline-block; width: 19px; height: 13px;}
/* pullreques 20161020byLB */
.pullreques_category{ height: 35px; line-height: 35px;background: #f0f0f0; }
.pullreques span{ float: left;}
a.sortupbtn{ background: url(/images/sy/liststyle.png) 0 3px no-repeat;width:12px;height:17px; display:block; margin-right:10px; cursor:pointer;}
a.sortdownbtn{background: url(/images/sy/liststyle.png) 0 -12px no-repeat; width:12px; height:17px;display:block;cursor:pointer; }
.icons_pullreques{background: url(/images/new_project/icons_issue.png) 0 -270px no-repeat; display: inline-block; width: 25px; height: 25px;}
.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:32px; height: 16px;}
.pullreques_reply_textarea{ width: 100%; padding:0; 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;}
.pullreques_reply_txt{ width: 900px;color: #666;}
.pullreques_pull_top { width: 100%; height: 40px; line-height: 40px; background: #f4f4f4; border-top:1px solid #e1e1e1;border-bottom:1px solid #e1e1e1;}
a.pullreques_pull_name{display: block; margin-left: 10px;max-width:80px; color:#3b94d6; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
.pullreques_pull_list li{ height: 30px; line-height: 30px; }
.pullreques_pull_txt{display: block; margin-left: 10px;max-width:740px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;}
.pullreques_change_list li{height: 40px; line-height: 40px;border-bottom:1px solid #e1e1e1; }
.pullreques_change_list li:last-child{ border-bottom: none;}
.pullreques_icons_add{background: url(/images/new_project/icons_issue.png) 0 -374px no-repeat; display: inline-block; width: 19px; height: 16px;}
.pullreques_icons_del{background: url(/images/new_project/icons_issue.png) 0 -399px no-repeat; display: inline-block; width: 19px; height: 16px;}
.pullreques_icons_new{background: url(/images/new_project/icons_issue.png) 0 -421px no-repeat; display: inline-block; width: 19px; height: 16px;}
.PullReques_minselect{border:1px solid #e1e1e1; height: 30px; line-height: 30px; width: 262px;color: #666;}
.PullReques_maxinput{ width:900px;border:1px solid #e1e1e1; height: 30px; line-height: 30px; color: #666;}
.PullReques_textarea{width:900px;border:1px solid #e1e1e1; height: 80px; line-height: 1.9; color: #666;}
.PullReques_new_box li{ height: 30px; line-height: 30px; color: #666;}
.PullReques_label{ width: 60px; text-align: right;}
.PullReques_new_box input:focus,select:focus{border:1px solid #e1e1e1;}
/*模板form 20161013byLB*/
textarea.muban_textarea{ width: 98.5%;border:1px solid #ddd; background:#fff; color:#666; padding:5px;}
/*提示条20161020byLB*/
.alert{ padding:10px;border: 1px solid transparent; text-align: center;}
.alert-blue{ background-color: #d9edf7;border-color: #bce8f1; color: #3a87ad;}
.alert-orange{ background-color: #fff9e9;border-color: #f6d0b1; color:#ee4a20;}
.close{padding: 0;cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; font-size: 21px; font-weight: bold;line-height: 1; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.3;}
.close:hover{opacity: 0.5;}

View File

@ -1156,7 +1156,7 @@ input.new_loggin_input{
margin-top:250px;
}
/*未登录回复提示*/
.visitor-box {width:620px; height:33px; line-height:33px; text-align:center; vertical-align: middle; border:1px solid #ccc; background-color: #fff;}
.visitor-box {height:33px; line-height:33px; text-align:center; vertical-align: middle; border:1px solid #ccc; background-color: #fff;}
/* 个人资料修改弹框 */
.winbox{

View File

@ -142,6 +142,7 @@ h4{ font-size:14px; }
.mb20{ margin-bottom:20px;}
.mb30 {margin-bottom:30px;}
.mb40 {margin-bottom:40px;}
.pl62 {padding-left: 62px;}
.pl10 {padding-left:10px;}
.pl15{ padding-left:15px;}
.pl5{ padding-left:5px;}