Merge branch 'develop' into dai_ao
This commit is contained in:
commit
d7e067a82e
|
@ -145,7 +145,7 @@ class UsersController < ApplicationController
|
|||
case params[:type]
|
||||
when 'JournalsForMessage'
|
||||
@comment = JournalsForMessage.find params[:comment].to_i
|
||||
when 'Message'
|
||||
when 'Message','is_project_message'
|
||||
@comment = Message.find params[:comment].to_i
|
||||
when 'BlogComment'
|
||||
@comment = BlogComment.find params[:comment].to_i
|
||||
|
@ -153,9 +153,11 @@ class UsersController < ApplicationController
|
|||
@comment = OrgDocumentComment.find params[:comment].to_i
|
||||
when 'Comment'
|
||||
@comment = Comment.find params[:comment].to_i
|
||||
when 'Journal'
|
||||
when 'Journal','is_project_issue'
|
||||
@comment = Journal.find params[:comment].to_i
|
||||
end
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
@parent_id = params[:parent_id] if params[:parent_id]
|
||||
end
|
||||
|
||||
#二级回复
|
||||
|
@ -214,6 +216,7 @@ class UsersController < ApplicationController
|
|||
def reply_to_comment
|
||||
@type = params[:type]
|
||||
@reply = get_reply_by_type @type, params[:reply_id]
|
||||
@parent_id = params[:parent_id] if params[:parent_id]
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
@is_project = params[:is_project] if params[:is_project]
|
||||
respond_to do |format|
|
||||
|
@ -225,8 +228,15 @@ class UsersController < ApplicationController
|
|||
def reply_detail
|
||||
@type = params[:type]
|
||||
reply = get_reply_by_type @type, params[:reply_id]
|
||||
if @type == 'JournalsForMessage'
|
||||
if reply.jour_type == "HomeworkCommon"
|
||||
@type = "HomeworkCommon"
|
||||
elsif reply.jour_type == "Syllabus"
|
||||
@type = "Syllabus"
|
||||
end
|
||||
end
|
||||
@user_activity_id = params[:user_activity_id]
|
||||
case params[:type]
|
||||
case @type
|
||||
when 'HomeworkCommon'
|
||||
@root = HomeworkCommon.find reply.jour_id
|
||||
options = {:notes => params[:reply_message], :reply_id => reply.user_id,:user_id => User.current.id,:m_parent_id => params[:reply_id].to_i,:m_reply_id => params[:reply_id].to_i, :root_id => reply.root_id}
|
||||
|
@ -273,11 +283,11 @@ class UsersController < ApplicationController
|
|||
comment.content = params[:reply_message]
|
||||
comment.root_id = reply.root_id
|
||||
reply.children << comment
|
||||
when 'News'
|
||||
when 'News','Comment'
|
||||
@root = News.find reply.commented_id
|
||||
comment = @root.comments.build(:author_id => User.current.id, :reply_id => params[:reply_id], :comments => params[:reply_message], :parent_id => reply.id)
|
||||
comment.save
|
||||
when 'Issue'
|
||||
when 'Issue', 'Journal'
|
||||
@root = reply.issue
|
||||
comment = @root.journals.build(:user_id => User.current.id, :reply_id => params[:reply_id], :notes => params[:reply_message], :parent_id => reply.id)
|
||||
comment.save
|
||||
|
@ -515,13 +525,13 @@ class UsersController < ApplicationController
|
|||
|
||||
member.course_group_id = 0
|
||||
member.save
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:content=> @msg.content,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>1)
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>1)
|
||||
@msg.update_attributes(:status=>1,:viewed=>1)
|
||||
else
|
||||
members = []
|
||||
members << Member.new(:role_ids => integer_ids, :user_id => @msg.course_message_id)
|
||||
Course.find(@msg.course_id).members << members
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:content=> @msg.content,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>1)
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>1)
|
||||
@msg.update_attributes(:status=>1,:viewed=>1)
|
||||
|
||||
if integer_ids.include?(9)
|
||||
|
@ -536,7 +546,7 @@ class UsersController < ApplicationController
|
|||
end
|
||||
|
||||
when 'N'
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:content=> @msg.content,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>2)
|
||||
CourseMessage.create(:user_id => @msg.course_message_id, :course_id => @msg.course_id, :viewed => false,:course_message_id=>User.current.id,:content=>@msg.content,:course_message_type=>'CourseRequestDealResult',:status=>2)
|
||||
@msg.update_attributes(:status=>2,:viewed=>1)
|
||||
|
||||
if integer_ids.include?(9)
|
||||
|
@ -586,13 +596,13 @@ class UsersController < ApplicationController
|
|||
when 'Y'
|
||||
unless ah.empty?
|
||||
ah.first.update_column('status', 2)
|
||||
CourseMessage.create(:user_id => @msg.apply_user_id, :course_id => @msg.course_id, :viewed => false,:content=> @msg.content,:course_message_id=>@msg.course_message_id,:content=>@msg.content,:course_message_type=>'HomeworkCommon',:status=>6,:apply_result=>1)
|
||||
CourseMessage.create(:user_id => @msg.apply_user_id, :course_id => @msg.course_id, :viewed => false,:course_message_id=>@msg.course_message_id,:content=>@msg.content,:course_message_type=>'HomeworkCommon',:status=>6,:apply_result=>1)
|
||||
@msg.update_attributes(:apply_result=>1,:viewed=>1)
|
||||
end
|
||||
when 'N'
|
||||
unless ah.empty?
|
||||
ah.first.update_column('status', 3)
|
||||
CourseMessage.create(:user_id => @msg.apply_user_id, :course_id => @msg.course_id, :viewed => false,:content=> @msg.content,:course_message_id=>@msg.course_message_id,:content=>@msg.content,:course_message_type=>'HomeworkCommon',:status=>6,:apply_result=>2)
|
||||
CourseMessage.create(:user_id => @msg.apply_user_id, :course_id => @msg.course_id, :viewed => false,:course_message_id=>@msg.course_message_id,:content=>@msg.content,:course_message_type=>'HomeworkCommon',:status=>6,:apply_result=>2)
|
||||
@msg.update_attributes(:apply_result=>2,:viewed=>1)
|
||||
end
|
||||
end
|
||||
|
@ -3484,7 +3494,7 @@ class UsersController < ApplicationController
|
|||
@my_syllabuses = @user.syllabuses
|
||||
|
||||
if @user == User.current
|
||||
archive_ids = Course.where("tea_id = #{@user.id} and is_delete = 1").blank? ? "(-1)" : "(" + Course.where("tea_id = #{@user.id} and is_delete = 1").map{|course| course.syllabus_id}.join(",") + ")"
|
||||
archive_ids = Course.where("tea_id = #{@user.id} and is_delete = 1 and syllabus_id is NOT NULL").blank? ? "(-1)" : "(" + Course.where("tea_id = #{@user.id} and is_delete = 1 and syllabus_id is NOT NULL").map{|course| course.syllabus_id}.join(",") + ")"
|
||||
@archive_syllabuses = Syllabus.where("id in #{archive_ids}")
|
||||
end
|
||||
|
||||
|
@ -3573,7 +3583,7 @@ class UsersController < ApplicationController
|
|||
|
||||
@user = User.current
|
||||
sort_name = "updated_at"
|
||||
archive_ids = Course.where("tea_id = #{@user.id} and is_delete = 1").blank? ? "(-1)" : "(" + Course.where("tea_id = #{@user.id} and is_delete = 1").map{|course| course.syllabus_id}.join(",") + ")"
|
||||
archive_ids = Course.where("tea_id = #{@user.id} and is_delete = 1 and syllabus_id is NOT NULL").blank? ? "(-1)" : "(" + Course.where("tea_id = #{@user.id} and is_delete = 1 and syllabus_id is NOT NULL").map{|course| course.syllabus_id}.join(",") + ")"
|
||||
@archive_syllabuses = Syllabus.where("id in #{archive_ids}")
|
||||
|
||||
if @order.to_i == 1 #根据 班级更新时间排序
|
||||
|
|
|
@ -3414,10 +3414,12 @@ def get_reply_by_type type, reply_id
|
|||
reply = BlogComment.find reply_id
|
||||
when 'OrgDocumentComment'
|
||||
reply = OrgDocumentComment.find reply_id
|
||||
when 'News'
|
||||
when 'News','Comment'
|
||||
reply = Comment.find reply_id
|
||||
when 'Issue'
|
||||
reply = Journal.find reply_id
|
||||
when 'Journal'
|
||||
reply = Journal.find reply_id
|
||||
when 'Syllabus'
|
||||
reply = JournalsForMessage.find reply_id
|
||||
end
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<span style="position: relative" class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => 'Message', :user_activity_id => user_activity_id, :is_project => true},
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => 'Message', :user_activity_id => user_activity_id, :parent_id => parent_id, :is_project => true},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="orig_cont clearfix">
|
||||
<% if !comment.parent.nil? && !comment.parent.parent.nil? %>
|
||||
<div>
|
||||
<%=render :partial => 'projects/journal_comment_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/journal_comment_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => comment, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => comment, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
|
@ -1,8 +1,8 @@
|
|||
<div class="orig_cont clearfix">
|
||||
<% unless comment.parent.nil? %>
|
||||
<div>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => comment, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => comment, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
|
@ -25,7 +25,7 @@
|
|||
<span style="position: relative" class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => 'Issue', :user_activity_id => user_activity_id, :is_project => true},
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => 'Issue', :user_activity_id => user_activity_id, :parent_id => parent_id, :is_project => true},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
|
|
|
@ -8,18 +8,18 @@
|
|||
<% length = parents_rely.length %>
|
||||
<div id="comment_reply_<%=comment.id %>">
|
||||
<% if length <= 2 %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
<% else %>
|
||||
<div class="orig_cont clearfix">
|
||||
<div class="orig_cont clearfix">
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => parents_rely[length - 1], :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => parents_rely[length - 1], :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<div class="orig_cont_hide_issue clearfix">
|
||||
<span class="orig_icon" >↓ </span>
|
||||
<span class="orig_icon" style="display:none;" > ↑</span><span class="">已经隐藏<%=(length - 2).to_s %>个楼层</span>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class), :remote=>true, :class => 'linkBlue2' %>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => 'is_project_issue', :user_activity_id => user_activity_id, :parent_id => comment.id), :remote=>true, :class => 'linkBlue2' %>
|
||||
</div>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => parents_rely[0], :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/project_issue_comments_reply_detail', :locals => {:comment => parents_rely[0], :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -8,18 +8,18 @@
|
|||
<% length = parents_rely.length %>
|
||||
<div id="comment_reply_<%=comment.id %>">
|
||||
<% if length <= 2 %>
|
||||
<%=render :partial => 'projects/journal_comment_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/journal_comment_reply', :locals => {:comment => comment.parent, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
<% else %>
|
||||
<div class="orig_cont clearfix">
|
||||
<div class="orig_cont clearfix">
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<div class="orig_cont_hide_issue clearfix">
|
||||
<span class="orig_icon" >↓ </span>
|
||||
<span class="orig_icon" style="display:none;" > ↑</span><span class="">已经隐藏<%=(length - 2).to_s %>个楼层</span>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class), :remote=>true, :class => 'linkBlue2' %>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => 'is_project_message', :user_activity_id => user_activity_id, :parent_id => comment.id), :remote=>true, :class => 'linkBlue2' %>
|
||||
</div>
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => parents_rely[0], :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'projects/comment_reply_detail', :locals => {:comment => parents_rely[0], :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -27,13 +27,7 @@
|
|||
<div class="flex-cell student_work_<%= st.id%>">
|
||||
<div class="<%= score_color st.student_score%> student_score_info pr">
|
||||
<% if st.student_score.nil? %>
|
||||
<% if @homework.homework_detail_manual.comment_status == 2 && st.student_works_evaluation_distributions.count != 0 %>
|
||||
<span title="该作品未被匿评">待匿评</span>
|
||||
<% elsif @homework.homework_detail_manual.comment_status == 3 && st.student_works_evaluation_distributions.count != 0 %>
|
||||
<span title="该作品未被匿评">缺评</span>
|
||||
<% else %>
|
||||
<span title="该作品未被匿评">未参与</span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= format("%.1f", st.student_score) %>
|
||||
<% end %>
|
||||
|
|
|
@ -69,13 +69,7 @@
|
|||
<% if @homework.anonymous_comment == 0%>
|
||||
<td class="hworkList70 <%= score_color student_work.student_score%> student_score_info pr">
|
||||
<% if student_work.student_score.nil? %>
|
||||
<% if @homework.homework_detail_manual.comment_status == 2 && student_work.student_works_evaluation_distributions.count != 0 %>
|
||||
<span title="该作品未被匿评">待匿评</span>
|
||||
<% elsif @homework.homework_detail_manual.comment_status == 3 && student_work.student_works_evaluation_distributions.count != 0 %>
|
||||
<span title="该作品未被匿评">缺评</span>
|
||||
<% else %>
|
||||
<span title="该作品未被匿评">未参与</span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%=format("%.1f",student_work.student_score) %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="orig_cont clearfix">
|
||||
<% unless comment.parent.nil? %>
|
||||
<div>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
|
@ -28,7 +28,7 @@
|
|||
<span style="position: relative" class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id},
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
|
@ -39,7 +39,7 @@
|
|||
<span style="position: relative" class="fr mr20">
|
||||
<%= link_to(
|
||||
l(:button_reply),
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id},
|
||||
{:controller => 'users' ,:action => 'reply_to_comment', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id},
|
||||
:remote => true,
|
||||
:method => 'get',
|
||||
:title => l(:button_reply)) %>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="orig_cont clearfix">
|
||||
<% if !comment.parent.nil? && !comment.parent.parent.nil? %>
|
||||
<div>
|
||||
<%=render :partial => 'users/journal_comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/journal_comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => comment, :type => type, :user_activity_id => user_activity_id, :parent_id => parent_id} %>
|
||||
</div>
|
|
@ -8,21 +8,21 @@
|
|||
<% length = parents_rely.length %>
|
||||
<div id="comment_reply_<%=comment.id %>">
|
||||
<% if length <= 2 %>
|
||||
<%=render :partial => 'users/journal_comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/journal_comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
<% else %>
|
||||
<div class="orig_cont clearfix">
|
||||
<div class="orig_cont clearfix">
|
||||
<!--<div>-->
|
||||
<!--<%#=render :partial => 'users/journal_comment_reply', :locals => {:comment => parents_rely[length - 1]} %>-->
|
||||
<!--</div>-->
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<div class="orig_cont_hide clearfix">
|
||||
<span class="orig_icon" >↓ </span>
|
||||
<span class="orig_icon" style="display:none;" > ↑</span><span class="">已经隐藏<%=(length - 2).to_s %>个楼层</span>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class),:remote=>true, :class => 'linkBlue2' %>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class, :user_activity_id => user_activity_id, :parent_id => comment.id),:remote=>true, :class => 'linkBlue2' %>
|
||||
</div>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[0], :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[0], :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -8,21 +8,21 @@
|
|||
<% length = parents_rely.length %>
|
||||
<div id="comment_reply_<%=comment.id %>">
|
||||
<% if length <= 2 %>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent, :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
<% else %>
|
||||
<div class="orig_cont clearfix">
|
||||
<div class="orig_cont clearfix">
|
||||
<!--<div>-->
|
||||
<!--<%#=render :partial => 'users/comment_reply', :locals => {:comment => parents_rely[length - 1]} %>-->
|
||||
<!--</div>-->
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[length - 1], :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<div class="orig_cont_hide clearfix">
|
||||
<span class="orig_icon" >↓ </span>
|
||||
<span class="orig_icon" style="display:none;" > ↑</span><span class="">已经隐藏<%=(length - 2).to_s %>个楼层</span>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class), :remote=>true, :class => 'linkBlue2' %>
|
||||
<%= link_to '[点击展开]', show_all_replies_users_path(:comment => comment, :type => comment.class, :user_activity_id => user_activity_id, :parent_id => comment.id), :remote=>true, :class => 'linkBlue2' %>
|
||||
</div>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[0], :type => type, :user_activity_id => user_activity_id} %>
|
||||
<%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[0], :type => type, :user_activity_id => user_activity_id, :parent_id => comment.id} %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<% if params[:type] == 'Message' %>
|
||||
<% if @type == 'Message' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
<% if @is_project %>
|
||||
$("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(render :partial => 'projects/project_message_post_reply', :locals => {:activity => @root,:user_activity_id =>@user_activity_id}) %>");
|
||||
|
@ -10,23 +10,23 @@
|
|||
<% else %>
|
||||
window.location.href = "<%=board_message_path(@root.board_id, @root) %>";
|
||||
<% end %>
|
||||
<% elsif params[:type] == 'HomeworkCommon' %>
|
||||
<% elsif @type == 'HomeworkCommon' %>
|
||||
$("#homework_post_reply_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/homework_post_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id, :is_teacher => @is_teacher}) %>");
|
||||
<% elsif params[:type] == 'BlogComment' %>
|
||||
<% elsif @type == 'BlogComment' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
$("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/user_blog_post_reply', :locals => {:activity => @root,:user_activity_id =>@user_activity_id}) %>");
|
||||
<% else %>
|
||||
window.location.href = "<%=user_blog_blog_comment_path(:user_id => @root.author_id,:blog_id=>@root.blog_id,:id=>@root.id) %>";
|
||||
<% end %>
|
||||
<% elsif params[:type] == 'News' %>
|
||||
<% elsif @type == 'News' || params[:type] == 'Comment' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
$("#activity_post_reply_<%= @user_activity_id %>").html("<%= escape_javascript(render :partial => 'users/course_news_post_reply', :locals => {:activity => @root,:user_activity_id =>@user_activity_id}) %>");
|
||||
<% else %>
|
||||
window.location.href = "<%=news_path(@root) %>";
|
||||
<% end %>
|
||||
<% elsif params[:type] == 'JournalsForMessage' %>
|
||||
<% elsif @type == 'JournalsForMessage' %>
|
||||
$("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(render :partial => 'users/user_journal_post_reply', :locals => {:activity => @root,:user_activity_id =>@user_activity_id}) %>");
|
||||
<% elsif params[:type] == 'Issue' %>
|
||||
<% elsif @type == 'Issue' || params[:type] == 'Journal' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
<% if @is_project %>
|
||||
$("#div_user_issue_reply_<%=@user_activity_id%>").html("<%= escape_javascript(render :partial => 'projects/project_issue_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id}) %>");
|
||||
|
@ -36,13 +36,13 @@ $("#activity_post_reply_<%= @user_activity_id%>").html("<%= escape_javascript(re
|
|||
<% else %>
|
||||
window.location.href = "<%=issue_path(@root) %>";
|
||||
<% end %>
|
||||
<% elsif params[:type] == 'OrgDocumentComment' %>
|
||||
<% elsif @type == 'OrgDocumentComment' %>
|
||||
<% if @user_activity_id.to_i != @root.id %>
|
||||
$("#activity_post_reply_<%= @user_activity_id %>").html("<%= escape_javascript(render :partial => 'organizations/org_document_post_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id}) %>");
|
||||
<% else %>
|
||||
window.location.href = "<%=org_document_comment_path(:id => @root.id, :organization_id => @root.organization.id) %>";
|
||||
<% end %>
|
||||
<% elsif params[:type] == 'Syllabus' %>
|
||||
<% elsif @type == 'Syllabus' %>
|
||||
$("#activity_post_reply_<%= @user_activity_id %>").html("<%= escape_javascript(render :partial => 'syllabuses/syllabus_post_reply', :locals => {:activity => @root, :user_activity_id => @user_activity_id}) %>");
|
||||
<% end %>
|
||||
sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity");
|
|
@ -1,10 +1,10 @@
|
|||
if($("#reply_message_<%= @reply.id%>").length > 0) {
|
||||
$("#reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to_comment', :locals => {:reply => @reply}) %>");
|
||||
$("#reply_iconup_<%=@reply.id %>").show();
|
||||
if($("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id%>").length > 0) {
|
||||
$("#comment_reply_<%=@parent_id %> #reply_message_<%= @reply.id%>").replaceWith("<%= escape_javascript(render :partial => 'users/reply_to_comment', :locals => {:reply => @reply}) %>");
|
||||
$("#comment_reply_<%=@parent_id %> #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();
|
||||
}else if($("#comment_reply_<%=@parent_id %> #reply_to_message_<%= @reply.id%>").length >0) {
|
||||
$("#comment_reply_<%=@parent_id %> #reply_to_message_<%= @reply.id%>").replaceWith("<p id='reply_message_<%= @reply.id%>'></p>");
|
||||
$("#comment_reply_<%=@parent_id %> #reply_iconup_<%=@reply.id %>").hide();
|
||||
}
|
|
@ -1,9 +1,13 @@
|
|||
<% unless @comment.parent.nil? %>
|
||||
<% if params[:type] == 'JournalsForMessage' && (@comment.jour_type == 'Principal' || @comment.jour_type == 'Course') %>
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/journal_comment_reply', :locals => {:comment => @comment.parent, :type => params[:type]})%>");
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/journal_comment_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>");
|
||||
<% elsif params[:type] == 'is_project_message' %>
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'projects/journal_comment_reply', :locals => {:comment => @comment.parent, :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>");
|
||||
<% elsif params[:type] == 'is_project_issue' %>
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'projects/project_issue_comments_reply', :locals => {:comment => @comment.parent, :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>");
|
||||
<% elsif (@comment.class.to_s == 'Message' || @comment.class.to_s == 'BlogComment' || @comment.class.to_s == 'OrgDocumentComment') %>
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/journal_comment_reply', :locals => {:comment => @comment.parent, :type => params[:type]})%>");
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/journal_comment_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>");
|
||||
<% else %>
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/comment_reply', :locals => {:comment => @comment.parent, :type => params[:type]})%>");
|
||||
$('#comment_reply_<%=@comment.id %>').html("<%= escape_javascript(render :partial => 'users/comment_reply', :locals => {:comment => @comment.parent, :type => params[:type], :user_activity_id => @user_activity_id, :parent_id => @parent_id})%>");
|
||||
<% end %>
|
||||
<% end %>
|
28
db/schema.rb
28
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20161117060138) do
|
||||
ActiveRecord::Schema.define(:version => 20161125024643) do
|
||||
|
||||
create_table "activities", :force => true do |t|
|
||||
t.integer "act_id", :null => false
|
||||
|
@ -996,19 +996,6 @@ ActiveRecord::Schema.define(:version => 20161117060138) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "ii", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "author_login"
|
||||
t.string "rep_identifier"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "sonar_version", :default => 0
|
||||
t.string "path"
|
||||
t.string "branch"
|
||||
t.string "language"
|
||||
t.string "sonar_name"
|
||||
end
|
||||
|
||||
create_table "innodb_monitor", :id => false, :force => true do |t|
|
||||
t.integer "a"
|
||||
end
|
||||
|
@ -1634,6 +1621,19 @@ ActiveRecord::Schema.define(:version => 20161117060138) do
|
|||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "quality_analyses", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "author_login"
|
||||
t.string "rep_identifier"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.integer "sonar_version", :default => 0
|
||||
t.string "path"
|
||||
t.string "branch"
|
||||
t.string "language"
|
||||
t.string "sonar_name"
|
||||
end
|
||||
|
||||
create_table "queries", :force => true do |t|
|
||||
t.integer "project_id"
|
||||
t.string "name", :default => "", :null => false
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
module Trustie
|
||||
module Gitlab
|
||||
module Diff
|
||||
class File
|
||||
attr_reader :diff
|
||||
|
||||
delegate :new_file, :deleted_file, :renamed_file,
|
||||
:old_path, :new_path, to: :diff, prefix: false
|
||||
|
||||
def initialize(diff)
|
||||
@diff = diff
|
||||
end
|
||||
|
||||
# Array of Gitlab::DIff::Line objects
|
||||
def diff_lines
|
||||
@lines ||= parser.parse(raw_diff.lines)
|
||||
end
|
||||
|
||||
def mode_changed?
|
||||
!!(diff.a_mode && diff.b_mode && diff.a_mode != diff.b_mode)
|
||||
end
|
||||
|
||||
def parser
|
||||
Parser.new
|
||||
end
|
||||
|
||||
def raw_diff
|
||||
diff.diff.to_s
|
||||
end
|
||||
|
||||
def next_line(index)
|
||||
diff_lines[index + 1]
|
||||
end
|
||||
|
||||
def prev_line(index)
|
||||
if index > 0
|
||||
diff_lines[index - 1]
|
||||
end
|
||||
end
|
||||
|
||||
def file_path
|
||||
if diff.new_path.present?
|
||||
diff.new_path
|
||||
elsif diff.old_path.present?
|
||||
diff.old_path
|
||||
end
|
||||
end
|
||||
|
||||
def added_lines
|
||||
diff_lines.count(&:added?)
|
||||
end
|
||||
|
||||
def removed_lines
|
||||
diff_lines.count(&:removed?)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
module Trustie
|
||||
module Gitlab
|
||||
module Diff
|
||||
class Line
|
||||
attr_reader :type, :text, :index, :old_pos, :new_pos
|
||||
|
||||
def initialize(text, type, index, old_pos, new_pos)
|
||||
@text, @type, @index = text, type, index
|
||||
@old_pos, @new_pos = old_pos, new_pos
|
||||
end
|
||||
|
||||
def added?
|
||||
type == 'new'
|
||||
end
|
||||
|
||||
def removed?
|
||||
type == 'old'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,12 @@
|
|||
module Trustie
|
||||
module Gitlab
|
||||
module Diff
|
||||
class LineCode
|
||||
def self.generate(file_path, new_line_position, old_line_position)
|
||||
"#{Digest::SHA1.hexdigest(file_path)}_#{old_line_position}_#{new_line_position}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
module Trustie
|
||||
module Gitlab
|
||||
module Diff
|
||||
class Parser
|
||||
include Enumerable
|
||||
|
||||
def parse(lines)
|
||||
@lines = lines
|
||||
lines_obj = []
|
||||
line_obj_index = 0
|
||||
line_old = 1
|
||||
line_new = 1
|
||||
type = nil
|
||||
|
||||
lines_arr = InlineDiff.processing lines
|
||||
|
||||
lines_arr.each do |line|
|
||||
next if filename?(line)
|
||||
|
||||
full_line = html_escape(line.gsub(/\n/, ''))
|
||||
full_line = InlineDiff.replace_markers full_line
|
||||
|
||||
if line.match(/^@@ -/)
|
||||
type = "match"
|
||||
|
||||
line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
|
||||
line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
|
||||
|
||||
next if line_old <= 1 && line_new <= 1 #top of file
|
||||
lines_obj << Line.new(full_line, type, line_obj_index, line_old, line_new)
|
||||
line_obj_index += 1
|
||||
next
|
||||
else
|
||||
type = identification_type(line)
|
||||
lines_obj << Line.new(full_line, type, line_obj_index, line_old, line_new)
|
||||
line_obj_index += 1
|
||||
end
|
||||
|
||||
|
||||
if line[0] == "+"
|
||||
line_new += 1
|
||||
elsif line[0] == "-"
|
||||
line_old += 1
|
||||
else
|
||||
line_new += 1
|
||||
line_old += 1
|
||||
end
|
||||
end
|
||||
|
||||
lines_obj
|
||||
end
|
||||
|
||||
def empty?
|
||||
@lines.empty?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def filename?(line)
|
||||
line.start_with?('--- /dev/null', '+++ /dev/null', '--- a', '+++ b',
|
||||
'--- /tmp/diffy', '+++ /tmp/diffy')
|
||||
end
|
||||
|
||||
def identification_type(line)
|
||||
if line[0] == "+"
|
||||
"new"
|
||||
elsif line[0] == "-"
|
||||
"old"
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def html_escape(str)
|
||||
replacements = { '&' => '&', '>' => '>', '<' => '<', '"' => '"', "'" => ''' }
|
||||
str.gsub(/[&"'><]/, replacements)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,106 @@
|
|||
module Trustie
|
||||
module Gitlab
|
||||
class InlineDiff
|
||||
class << self
|
||||
|
||||
START = "#!idiff-start!#"
|
||||
FINISH = "#!idiff-finish!#"
|
||||
|
||||
def processing(diff_arr)
|
||||
indexes = _indexes_of_changed_lines diff_arr
|
||||
|
||||
indexes.each do |index|
|
||||
first_line = diff_arr[index+1]
|
||||
second_line = diff_arr[index+2]
|
||||
|
||||
# Skip inline diff if empty line was replaced with content
|
||||
next if first_line == "-\n"
|
||||
|
||||
first_token = find_first_token(first_line, second_line)
|
||||
apply_first_token(diff_arr, index, first_token)
|
||||
|
||||
last_token = find_last_token(first_line, second_line, first_token)
|
||||
apply_last_token(diff_arr, index, last_token)
|
||||
end
|
||||
|
||||
diff_arr
|
||||
end
|
||||
|
||||
def apply_first_token(diff_arr, index, first_token)
|
||||
start = first_token + START
|
||||
|
||||
if first_token.empty?
|
||||
# In case if we remove string of spaces in commit
|
||||
diff_arr[index+1].sub!("-", "-" => "-#{START}")
|
||||
diff_arr[index+2].sub!("+", "+" => "+#{START}")
|
||||
else
|
||||
diff_arr[index+1].sub!(first_token, first_token => start)
|
||||
diff_arr[index+2].sub!(first_token, first_token => start)
|
||||
end
|
||||
end
|
||||
|
||||
def apply_last_token(diff_arr, index, last_token)
|
||||
# This is tricky: escape backslashes so that `sub` doesn't interpret them
|
||||
# as backreferences. Regexp.escape does NOT do the right thing.
|
||||
replace_token = FINISH + last_token.gsub(/\\/, '\&\&')
|
||||
diff_arr[index+1].sub!(/#{Regexp.escape(last_token)}$/, replace_token)
|
||||
diff_arr[index+2].sub!(/#{Regexp.escape(last_token)}$/, replace_token)
|
||||
end
|
||||
|
||||
def find_first_token(first_line, second_line)
|
||||
max_length = [first_line.size, second_line.size].max
|
||||
first_the_same_symbols = 0
|
||||
|
||||
(0..max_length + 1).each do |i|
|
||||
first_the_same_symbols = i - 1
|
||||
|
||||
if first_line[i] != second_line[i] && i > 0
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
first_line[0..first_the_same_symbols][1..-1]
|
||||
end
|
||||
|
||||
def find_last_token(first_line, second_line, first_token)
|
||||
max_length = [first_line.size, second_line.size].max
|
||||
last_the_same_symbols = 0
|
||||
|
||||
(1..max_length + 1).each do |i|
|
||||
last_the_same_symbols = -i
|
||||
shortest_line = second_line.size > first_line.size ? first_line : second_line
|
||||
|
||||
if (first_line[-i] != second_line[-i]) || "#{first_token}#{START}".size == shortest_line[1..-i].size
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
last_the_same_symbols += 1
|
||||
first_line[last_the_same_symbols..-1]
|
||||
end
|
||||
|
||||
def _indexes_of_changed_lines(diff_arr)
|
||||
chain_of_first_symbols = ""
|
||||
diff_arr.each_with_index do |line, i|
|
||||
chain_of_first_symbols += line[0]
|
||||
end
|
||||
chain_of_first_symbols.gsub!(/[^\-\+]/, "#")
|
||||
|
||||
offset = 0
|
||||
indexes = []
|
||||
while index = chain_of_first_symbols.index("#-+#", offset)
|
||||
indexes << index
|
||||
offset = index + 1
|
||||
end
|
||||
indexes
|
||||
end
|
||||
|
||||
def replace_markers(line)
|
||||
line.gsub!(START, "<span class='idiff'>")
|
||||
line.gsub!(FINISH, "</span>")
|
||||
line
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -5067,9 +5067,9 @@ KEditor.prototype = {
|
|||
]
|
||||
K.each(fullItems, function(i, name) {
|
||||
if (name == '|') {
|
||||
htmlListFull.push('<span class="ke-inline-block ke-separator"></span>');
|
||||
// htmlListFull.push('<span class="ke-inline-block ke-separator"></span>');
|
||||
} else if (name == '/') {
|
||||
htmlListFull.push('<div class="ke-hr"></div>');
|
||||
// htmlListFull.push('<div class="ke-hr"></div>');
|
||||
} else {
|
||||
htmlListFull.push('<span class="ke-outline" data-name="' + name + '" title="' + self.lang(name) + '" unselectable="on">');
|
||||
htmlListFull.push('<span class="ke-toolbar-icon ke-toolbar-icon-url ke-icon-' + name + '" unselectable="on"></span></span>');
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
require 'spec_helper'
|
||||
require 'rails_helper'
|
||||
|
||||
require 'ostruct'
|
||||
|
||||
|
||||
describe "Git diff" do
|
||||
before(:each) do
|
||||
|
||||
# 参照此diff的输出 http://ucloudgit.trustie.net/Hjqreturn/pullrequesttest111/commit/f36f15bc1d3e256a4fa5115d82201af72301884e
|
||||
@content = '''
|
||||
[{"diff":"--- a/readme\n+++ b/readme\n@@ -1,7 +1,8 @@\n 邀请界面\n 1.1 界面设计 (已处理)\n- 1.2 改写成html功能 (已处理)\n+sdkfsjkdf\n 1.3 集成到游戏邀请功能 (已处理)\n+adfjsdajlfk\n \n 微信登录功能\n 2.1 集成sdk (已处理)\n","new_path":"readme","old_path":"readme","a_mode":"100644","b_mode":"100644","new_file":false,"renamed_file":false,"deleted_file":false}]
|
||||
'''
|
||||
|
||||
@output = %Q{
|
||||
| 1 | 1 | 邀请界面
|
||||
| 2 | 2 | 1.1 界面设计 (已处理)
|
||||
| 3 | |-<span class='idiff'> 1.2 改写成html功能 (已处理)</span>
|
||||
| | 3 |+<span class='idiff'>sdkfsjkdf</span>
|
||||
| 4 | 4 | 1.3 集成到游戏邀请功能 (已处理)
|
||||
| | 5 |+adfjsdajlfk
|
||||
| 5 | 6 | } +
|
||||
%Q{
|
||||
| 6 | 7 | 微信登录功能
|
||||
| 7 | 8 | 2.1 集成sdk (已处理)
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
it "正确解析diff文件" do
|
||||
diff = ActiveSupport::JSON.decode(@content).first
|
||||
diff = OpenStruct.new(diff)
|
||||
diff_file = Trustie::Gitlab::Diff::File.new(diff)
|
||||
|
||||
output = ''
|
||||
diff_file.diff_lines.each_with_index do |line, index|
|
||||
type = line.type
|
||||
last_line = line.new_pos
|
||||
line_old = line.old_pos.to_s
|
||||
|
||||
|
||||
if type == 'match'
|
||||
## 表示没有修改,两个都要显示行号
|
||||
output += "|#{line_old.center(4)}|#{last_line.to_s.center(4)}|#{line.text}\n"
|
||||
else
|
||||
old_line = type == 'new' ? ' '*4: line_old
|
||||
new_line = type == 'old' ? ' '*4: last_line
|
||||
output += "|#{old_line.to_s.center(4)}|#{new_line.to_s.center(4)}|#{line.text}\n"
|
||||
end
|
||||
end
|
||||
|
||||
puts output
|
||||
|
||||
expect(output.strip).to eq(@output.strip)
|
||||
end
|
||||
|
||||
|
||||
end
|
Loading…
Reference in New Issue