Commit d54a2cd178a2bae27ee911f2cab5c8079b3dc7c7

Authored by Victor Costa
1 parent b1e38748

comment_paragraph: load comment form only when clicked

plugins/comment_paragraph/controllers/profile/comment_paragraph_plugin_profile_controller.rb
1 -class CommentParagraphPluginProfileController < ProfileController 1 +class CommentParagraphPluginProfileController < CommentController
2 append_view_path File.join(File.dirname(__FILE__) + '/../../views') 2 append_view_path File.join(File.dirname(__FILE__) + '/../../views')
3 3
4 def view_comments 4 def view_comments
@@ -11,4 +11,14 @@ class CommentParagraphPluginProfileController &lt; ProfileController @@ -11,4 +11,14 @@ class CommentParagraphPluginProfileController &lt; ProfileController
11 render :partial => 'comment/comment.html.erb', :collection => @comments 11 render :partial => 'comment/comment.html.erb', :collection => @comments
12 end 12 end
13 13
  14 + def comment_form
  15 + @page = profile.articles.find(params[:article_id])
  16 + render :partial => 'comment/comment_form', :locals => {
  17 + :comment => Comment.new,
  18 + :display_link => true,
  19 + :cancel_triggers_hide => true,
  20 + :paragraph_uuid => params[:paragraph_uuid]
  21 + }
  22 + end
  23 +
14 end 24 end
plugins/comment_paragraph/public/comment_paragraph_macro.js
@@ -80,6 +80,12 @@ jQuery(document).ready(function($) { @@ -80,6 +80,12 @@ jQuery(document).ready(function($) {
80 container.find('.display-comment-form').show(); 80 container.find('.display-comment-form').show();
81 } 81 }
82 }); 82 });
  83 + var formDiv = container.find('.side-comment .post_comment_box');
  84 + if(formDiv.find('.page-comment-form').length==0) {
  85 + $.ajax(formDiv.data('comment_paragraph_form_url')).done(function(data) {
  86 + formDiv.append(data);
  87 + });
  88 + }
83 }); 89 });
84 90
85 91
plugins/comment_paragraph/test/functional/comment_paragraph_plugin_profile_controller_test.rb
@@ -10,6 +10,9 @@ class CommentParagraphPluginProfileControllerTest &lt; ActionController::TestCase @@ -10,6 +10,9 @@ class CommentParagraphPluginProfileControllerTest &lt; ActionController::TestCase
10 @profile = create_user('testuser').person 10 @profile = create_user('testuser').person
11 @article = profile.articles.build(:name => 'test') 11 @article = profile.articles.build(:name => 'test')
12 @article.save! 12 @article.save!
  13 + @environment = Environment.default
  14 + @environment.enabled_plugins = ['CommentParagraphPlugin']
  15 + @environment.save!
13 end 16 end
14 attr_reader :article, :profile 17 attr_reader :article, :profile
15 18
@@ -39,4 +42,12 @@ class CommentParagraphPluginProfileControllerTest &lt; ActionController::TestCase @@ -39,4 +42,12 @@ class CommentParagraphPluginProfileControllerTest &lt; ActionController::TestCase
39 assert_match /d comment/, @response.body 42 assert_match /d comment/, @response.body
40 end 43 end
41 44
  45 + should 'load the comment form for a paragraph' do
  46 + login_as('testuser')
  47 + comment = fast_create(Comment, :source_id => article, :author_id => profile, :title => 'a comment', :body => 'lalala', :paragraph_uuid => 0)
  48 + xhr :get, :comment_form, :profile => @profile.identifier, :article_id => article.id, :paragraph_uuid => 0
  49 + assert_select ".page-comment-form"
  50 + assert_select "#comment_paragraph_uuid[value=?]", '0'
  51 + end
  52 +
42 end 53 end
plugins/comment_paragraph/views/comment_paragraph_plugin_profile/_comment_paragraph.html.erb
@@ -11,14 +11,14 @@ @@ -11,14 +11,14 @@
11 </div> 11 </div>
12 12
13 <% load_comments_url = url_for({:profile => profile_identifier, :controller => 'comment_paragraph_plugin_profile', :action => 'view_comments', :paragraph_uuid => paragraph_uuid, :article_id => article_id}) %> 13 <% load_comments_url = url_for({:profile => profile_identifier, :controller => 'comment_paragraph_plugin_profile', :action => 'view_comments', :paragraph_uuid => paragraph_uuid, :article_id => article_id}) %>
  14 + <% load_comment_form_url = url_for({:profile => profile_identifier, :controller => 'comment_paragraph_plugin_profile', :action => 'comment_form', :paragraph_uuid => paragraph_uuid, :article_id => article_id}) %>
14 15
15 <div class="side-comment" data-comment_paragraph_url="<%= load_comments_url %>"> 16 <div class="side-comment" data-comment_paragraph_url="<%= load_comments_url %>">
16 <div class="article-comments-list"> 17 <div class="article-comments-list">
17 <div class="loading"></div> 18 <div class="loading"></div>
18 </div> 19 </div>
19 <div class ="article-comments-list-more"></div> 20 <div class ="article-comments-list-more"></div>
20 - <div class='post_comment_box closed'>  
21 - <%= render :partial => 'comment/comment_form', :locals => {:comment => Comment.new, :display_link => true, :cancel_triggers_hide => true, :paragraph_uuid => paragraph_uuid}%> 21 + <div class='post_comment_box closed' data-comment_paragraph_form_url="<%= load_comment_form_url %>">
22 </div> 22 </div>
23 </div> 23 </div>
24 </div> 24 </div>