comment_form.js
3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
jQuery('.display-comment-form').unbind();
jQuery('.display-comment-form').click(function(){
var $button = jQuery(this);
toggleBox($button.parents('.post_comment_box'));
jQuery($button).hide();
$button.closest('.page-comment-form').find('input[type="text"]:visible,textarea').first().focus();
return false;
});
jQuery('#cancel-comment').die();
jQuery('#cancel-comment').live("click", function(){
var $button = jQuery(this);
toggleBox($button.parents('.post_comment_box'));
show_display_comment_button();
var page_comment_form = $button.parents('.page-comment-form');
page_comment_form.find('.errorExplanation').remove();
return false;
});
function toggleBox(div){
if(div.hasClass('opened')) {
div.removeClass('opened');
div.addClass('closed');
} else {
div.removeClass('closed');
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');
var page_comment_form = $button.parents('.page-comment-form');
$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 = '';
});
page_comment_form.find('.errorExplanation').remove();
} else if(data.render_target == 'form') {
//Comment with errors
$.scrollTo(page_comment_form);
page_comment_form.html(data.html);
$('.display-comment-form').hide();
} else if($('#' + data.render_target).size() > 0) {
//Comment of reply
$('#'+ data.render_target).replaceWith(data.html);
$('#' + data.render_target).effect("highlight", {}, 3000);
noosfero.modal.close();
increment_comment_count(comment_div);
} 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 = '';
});
page_comment_form.find('.errorExplanation').remove();
noosfero.modal.close();
increment_comment_count(comment_div);
}
if(jQuery('#recaptcha_response_field').val()){
Recaptcha.reload();
}
if(data.msg != null) {
display_notice(data.msg);
}
close_loading();
toggleBox($button.closest('.post_comment_box'));
show_display_comment_button();
$button.removeClass('comment-button-loading');
$button.enable();
}, 'json');
}
function increment_comment_count(comment_div) {
comment_div.find('.comment-count').add('#article-header .comment-count').each(function() {
var count = parseInt(jQuery(this).html());
update_comment_count(jQuery(this), count + 1);
});
}
function show_display_comment_button() {
if(jQuery('.post_comment_box.opened').length==0)
jQuery('.display-comment-form').show();
}