@@ -4,10 +4,15 @@ App.Comments =
|
||||
$(response_html).insertAfter($("#js-comment-form-#{parent_id}"))
|
||||
|
||||
reset_and_hide_form: (id) ->
|
||||
form = $("#js-comment-form-#{id}")
|
||||
form.val('')
|
||||
form = $("#js-comment-form-#{id} form")
|
||||
input = form.find("textarea")
|
||||
input.val('')
|
||||
form.hide()
|
||||
|
||||
reset_form: (id) ->
|
||||
input = $("#js-comment-form-#{id} form textarea")
|
||||
input.val('')
|
||||
|
||||
toggle_form: (id) ->
|
||||
$("#js-comment-form-#{id}").toggle()
|
||||
|
||||
@@ -16,5 +21,3 @@ App.Comments =
|
||||
id = $(this).data().id
|
||||
App.Comments.toggle_form(id)
|
||||
false
|
||||
|
||||
|
||||
|
||||
@@ -4,10 +4,10 @@ class DebatesController < ApplicationController
|
||||
|
||||
def index
|
||||
if params[:tag]
|
||||
@debates = Debate.tagged_with(params[:tag]).order("created_at DESC")
|
||||
@debates = Debate.tagged_with(params[:tag]).order(id: :desc)
|
||||
set_voted_values @debates.map(&:id)
|
||||
else
|
||||
@debates = Debate.all.order("created_at DESC")
|
||||
@debates = Debate.all.order(id: :desc)
|
||||
set_voted_values @debates.map(&:id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -8,6 +8,8 @@ class Comment < ActiveRecord::Base
|
||||
belongs_to :commentable, polymorphic: true
|
||||
belongs_to :user
|
||||
|
||||
scope :recent, -> { order(id: :desc) }
|
||||
|
||||
def self.build(commentable, user, body)
|
||||
new commentable: commentable,
|
||||
user_id: user.id,
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
</div>
|
||||
|
||||
<div class="comment-children">
|
||||
<%= render comment.children %>
|
||||
<%= render comment.children.reorder('id DESC, lft') %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
var parent_id = '<%= dom_id(@parent) %>';
|
||||
App.Comments.reset_and_hide_form(parent_id);
|
||||
|
||||
<% if @parent.is_a?(Debate) -%>
|
||||
App.Comments.reset_form(parent_id);
|
||||
<% else -%>
|
||||
App.Comments.reset_and_hide_form(parent_id);
|
||||
<% end -%>
|
||||
|
||||
App.Comments.add_response(parent_id, "<%= j(render @comment) %>");
|
||||
|
||||
@@ -25,4 +25,4 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
<%= render 'comments/form', {parent: @debate, toggeable: false} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<%= render @debate.root_comments %>
|
||||
<%= render @debate.root_comments.recent %>
|
||||
</div>
|
||||
<% if current_user && @debate.editable_by?(current_user) %>
|
||||
<%= link_to t("debates.show.edit_debate_link"), edit_debate_path(@debate), :class => 'button radius right' %>
|
||||
<% end %>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@@ -59,6 +59,7 @@ feature 'Comments' do
|
||||
visit debate_path(debate)
|
||||
|
||||
click_link "Reply"
|
||||
|
||||
within "#js-comment-form-comment_#{comment.id}" do
|
||||
fill_in 'comment_body', with: 'It will be done next week.'
|
||||
click_button 'Publish reply'
|
||||
@@ -67,6 +68,8 @@ feature 'Comments' do
|
||||
within "#comment-#{comment.id}" do
|
||||
expect(page).to have_content 'It will be done next week.'
|
||||
end
|
||||
|
||||
expect(page).to have_selector("#js-comment-form-comment_#{comment.id}", visible: true)
|
||||
end
|
||||
|
||||
scenario "N replies", :js do
|
||||
@@ -74,13 +77,13 @@ feature 'Comments' do
|
||||
parent = create(:comment, commentable: debate)
|
||||
|
||||
7.times do
|
||||
create(:comment, commentable: debate).
|
||||
move_to_child_of(parent)
|
||||
parent = parent.children.first
|
||||
create(:comment, commentable: debate).
|
||||
move_to_child_of(parent)
|
||||
parent = parent.children.first
|
||||
end
|
||||
|
||||
visit debate_path(debate)
|
||||
expect(page).to have_css(".comment.comment.comment.comment.comment.comment.comment.comment")
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,4 +56,4 @@ module CommonActions
|
||||
SimpleCaptcha::SimpleCaptchaData.first.value
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user