diff --git a/app/assets/javascripts/comments.js.coffee b/app/assets/javascripts/comments.js.coffee
index 7a8743f88..452b706e7 100644
--- a/app/assets/javascripts/comments.js.coffee
+++ b/app/assets/javascripts/comments.js.coffee
@@ -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
-
-
diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb
index cca1e89a2..3b61becc2 100644
--- a/app/controllers/debates_controller.rb
+++ b/app/controllers/debates_controller.rb
@@ -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
diff --git a/app/models/comment.rb b/app/models/comment.rb
index c2cf75292..d4ceb9e3e 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -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,
diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb
index f8eb903a2..4e375c540 100644
--- a/app/views/comments/_comment.html.erb
+++ b/app/views/comments/_comment.html.erb
@@ -22,8 +22,8 @@
-
\ No newline at end of file
+
diff --git a/app/views/comments/create.js.erb b/app/views/comments/create.js.erb
index 9eeec3108..f2b078195 100644
--- a/app/views/comments/create.js.erb
+++ b/app/views/comments/create.js.erb
@@ -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) %>");
diff --git a/app/views/debates/_debate.html.erb b/app/views/debates/_debate.html.erb
index 0bcc2e708..4620e1232 100644
--- a/app/views/debates/_debate.html.erb
+++ b/app/views/debates/_debate.html.erb
@@ -25,4 +25,4 @@
-
\ No newline at end of file
+
diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb
index d10d0e022..28fefd085 100644
--- a/app/views/debates/show.html.erb
+++ b/app/views/debates/show.html.erb
@@ -43,10 +43,10 @@
<%= render 'comments/form', {parent: @debate, toggeable: false} %>
<% end %>
- <%= render @debate.root_comments %>
+ <%= render @debate.root_comments.recent %>
<% 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 %>
-
\ No newline at end of file
+
diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb
index 1ec6a8c10..0cc64bce1 100644
--- a/spec/features/comments_spec.rb
+++ b/spec/features/comments_spec.rb
@@ -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
\ No newline at end of file
+end
diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb
index b625138b0..5e56d2cea 100644
--- a/spec/support/common_actions.rb
+++ b/spec/support/common_actions.rb
@@ -56,4 +56,4 @@ module CommonActions
SimpleCaptcha::SimpleCaptchaData.first.value
end
-end
\ No newline at end of file
+end