diff --git a/app/views/comment/_comment_form.rhtml b/app/views/comment/_comment_form.rhtml
index 96bb539..a9413ca 100644
--- a/app/views/comment/_comment_form.rhtml
+++ b/app/views/comment/_comment_form.rhtml
@@ -5,17 +5,7 @@
+
+<%= javascript_include_tag 'comment_form'%>
diff --git a/app/views/content_viewer/view_page.rhtml b/app/views/content_viewer/view_page.rhtml
index 648203f..f7621cb 100644
--- a/app/views/content_viewer/view_page.rhtml
+++ b/app/views/content_viewer/view_page.rhtml
@@ -95,7 +95,7 @@
<% end %>
<% if @page.accept_comments? && @comments_count > 1 %>
- <%= link_to(_('Post a comment'), '#', :class => 'display-comment-form', :id => 'top-post-comment-button') %>
+ <%= link_to(_('Post a comment'), '#', :class => 'display-comment-form', :id => 'top-post-comment-button', :onclick => "jQuery('#page-comment-form .display-comment-form').first().click();") %>
<% end %>
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index 833f6a9..377b2a1 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -754,69 +754,6 @@ function update_comment_count(element, new_count) {
}
-function save_comment(button) {
- var $ = jQuery;
- open_loading(DEFAULT_LOADING_MESSAGE);
- var $button = $(button);
- var form = $(button).parents("form");
- var post_comment_box = $(button).parents('.post_comment_box');
- var comment_div = $button.parents('.comments');
- $button.addClass('comment-button-loading');
- $.post(form.attr("action"), form.serialize(), function(data) {
-
- if(data.render_target == null) {
- //Comment for approval
- form.find("input[type='text']").add('textarea').each(function() {
- this.value = '';
- });
- form.find('.errorExplanation').remove();
-
- } else if(data.render_target == 'form') {
- //Comment with errors
- var page_comment_form = $(button).parents('.page-comment-form');
- $.scrollTo(page_comment_form);
- page_comment_form.html(data.html);
-
- } else if($('#' + data.render_target).size() > 0) {
- //Comment of reply
- $('#'+ data.render_target).replaceWith(data.html);
- $('#' + data.render_target).effect("highlight", {}, 3000);
- $.colorbox.close();
-
- } else {
- //New comment of article
- comment_div.find('.article-comments-list').append(data.html);
-
- form.find("input[type='text']").add('textarea').each(function() {
- this.value = '';
- });
-
- form.find('.errorExplanation').remove();
- $.colorbox.close();
-
- }
-
- comment_div.find('.comment-count').add('#article-header .comment-count').each(function() {
- var count = parseInt($(this).html());
- update_comment_count($(this), count + 1);
- });
-
- if(jQuery('#recaptcha_response_field').val()){
- Recaptcha.reload();
- }
-
- if(data.msg != null) {
- display_notice(data.msg);
- }
-
- close_loading();
- post_comment_box.removeClass('opened');
- post_comment_box.addClass('closed');
- $button.removeClass('comment-button-loading');
- $button.enable();
- }, 'json');
-}
-
function remove_comment(button, url, msg) {
var $ = jQuery;
var $button = $(button);
diff --git a/public/javascripts/comment_form.js b/public/javascripts/comment_form.js
index 26cb7bf..c6357e5 100644
--- a/public/javascripts/comment_form.js
+++ b/public/javascripts/comment_form.js
@@ -1,18 +1,17 @@
jQuery('.display-comment-form').click(function(){
- toggleBox('.post_comment_box');
+ toggleBox(jQuery(this).parents('.post_comment_box'));
jQuery('.display-comment-form').hide();
jQuery('form.comment_form input').first().focus();
return false;
});
-jQuery('#cancel-comment').click(function(){
- toggleBox('.post_comment_box');
+jQuery('#cancel-comment').live("click", function(){
+ toggleBox(jQuery(this).parents('.post_comment_box'));
jQuery('.display-comment-form').show();
- return false
+ return false;
})
-function toggleBox(div_selector){
- div = jQuery(div_selector);
+function toggleBox(div){
if(div.hasClass('opened')) {
div.removeClass('opened');
div.addClass('closed');
@@ -21,3 +20,66 @@ function toggleBox(div_selector){
div.addClass('opened');
}
}
+
+function save_comment(button) {
+ var $ = jQuery;
+ open_loading(DEFAULT_LOADING_MESSAGE);
+ var $button = $(button);
+ var form = $(button).parents("form");
+ var post_comment_box = $(button).parents('.post_comment_box');
+ var comment_div = $button.parents('.comments');
+ $button.addClass('comment-button-loading');
+ $.post(form.attr("action"), form.serialize(), function(data) {
+
+ if(data.render_target == null) {
+ //Comment for approval
+ form.find("input[type='text']").add('textarea').each(function() {
+ this.value = '';
+ });
+ form.find('.errorExplanation').remove();
+
+ } else if(data.render_target == 'form') {
+ //Comment with errors
+ var page_comment_form = $(button).parents('.page-comment-form');
+ $.scrollTo(page_comment_form);
+ page_comment_form.html(data.html);
+
+ } else if($('#' + data.render_target).size() > 0) {
+ //Comment of reply
+ $('#'+ data.render_target).replaceWith(data.html);
+ $('#' + data.render_target).effect("highlight", {}, 3000);
+ $.colorbox.close();
+
+ } else {
+ //New comment of article
+ comment_div.find('.article-comments-list').append(data.html);
+
+ form.find("input[type='text']").add('textarea').each(function() {
+ this.value = '';
+ });
+
+ form.find('.errorExplanation').remove();
+ $.colorbox.close();
+
+ }
+
+ comment_div.find('.comment-count').add('#article-header .comment-count').each(function() {
+ var count = parseInt($(this).html());
+ update_comment_count($(this), count + 1);
+ });
+
+ if(jQuery('#recaptcha_response_field').val()){
+ Recaptcha.reload();
+ }
+
+ if(data.msg != null) {
+ display_notice(data.msg);
+ }
+
+ close_loading();
+ toggleBox($button.closest('.post_comment_box'));
+ $('.display-comment-form').show();
+ $button.removeClass('comment-button-loading');
+ $button.enable();
+ }, 'json');
+}
--
libgit2 0.21.2
- <%= content_tag('a', '', :name => 'comment_form') + _('Post a comment') %> -
-<% end %> +<%= link_to(_('Post a comment'), '#', :class => 'display-comment-form') if display_link %> <% if !edition_mode && !pass_without_comment_captcha? %>