author | Dan |
Mon, 12 May 2008 00:59:46 -0400 | |
changeset 554 | e87390b1f9b0 |
parent 550 | 685e839d934e |
child 582 | a38876c0793c |
permissions | -rw-r--r-- |
1 | 1 |
// Comments |
2 |
||
3 |
var comment_template = false; |
|
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
4 |
var comment_render_track = 0; |
1 | 5 |
|
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
6 |
function ajaxComments(parms) |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
7 |
{ |
1 | 8 |
setAjaxLoading(); |
9 |
var pid = strToPageID(title); |
|
10 |
if(!parms) |
|
11 |
{ |
|
12 |
var parms = { |
|
13 |
'mode' : 'fetch' |
|
14 |
}; |
|
15 |
} |
|
16 |
parms.page_id = pid[0]; |
|
17 |
parms.namespace = pid[1]; |
|
18 |
if(comment_template) |
|
19 |
parms.have_template = true; |
|
20 |
parms = ajaxEscape(toJSONString(parms)); |
|
21 |
ajaxPost(stdAjaxPrefix+'&_mode=comments', 'data=' + parms, function() { |
|
407
35d94240a197
Mass-fixed all AJAX functions to also check the HTTP status code before parsing the response
Dan
parents:
359
diff
changeset
|
22 |
if ( ajax.readyState == 4 && ajax.status == 200 ) { |
1 | 23 |
unsetAjaxLoading(); |
24 |
selectButtonMajor('discussion'); |
|
25 |
unselectAllButtonsMinor(); |
|
26 |
// IE compatibility - doing ajax.responseText.substr() doesn't work |
|
27 |
var rsptxt = ajax.responseText + ''; |
|
28 |
if ( rsptxt.substr(0, 1) != '{' ) |
|
29 |
{ |
|
30 |
document.getElementById('ajaxEditContainer').innerHTML = '<p>Comment system Javascript runtime: invalid JSON response from server, response text:</p><pre>' + ajax.responseText + '</pre>'; |
|
31 |
return false; |
|
32 |
} |
|
33 |
var response = parseJSON(ajax.responseText); |
|
34 |
switch(response.mode) |
|
35 |
{ |
|
36 |
case 'fetch': |
|
86
c162ca39db8f
Finished pagination code (was incomplete in previous revision) and added a few hacks for an upcoming theme
Dan
parents:
85
diff
changeset
|
37 |
document.getElementById('ajaxEditContainer').innerHTML = '<div class="wait-box">Rendering '+response.count_total+' comments...</div>'; |
1 | 38 |
if(response.template) |
39 |
comment_template = response.template; |
|
40 |
setAjaxLoading(); |
|
41 |
renderComments(response); |
|
42 |
unsetAjaxLoading(); |
|
43 |
break; |
|
44 |
case 'redraw': |
|
45 |
redrawComment(response); |
|
46 |
break; |
|
47 |
case 'annihilate': |
|
48 |
annihiliateComment(response.id); |
|
49 |
break; |
|
50 |
case 'materialize': |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
51 |
alert($lang.get('comment_msg_comment_posted')); |
1 | 52 |
hideCommentForm(); |
53 |
materializeComment(response); |
|
54 |
break; |
|
55 |
case 'error': |
|
550
685e839d934e
Added ability to delete the draft revision; [SECURITY] fixed lack of permission check on draft save; renamed messagebox() constructor to MessageBox() (backward compat. maintained)
Dan
parents:
541
diff
changeset
|
56 |
new MessageBox(MB_OK|MB_ICONSTOP, ( response.title ? response.title : 'Error fetching comment data' ), response.error); |
1 | 57 |
break; |
58 |
default: |
|
59 |
alert(ajax.responseText); |
|
60 |
break; |
|
61 |
} |
|
62 |
} |
|
63 |
}); |
|
64 |
} |
|
65 |
||
66 |
function renderComments(data) |
|
67 |
{ |
|
68 |
||
69 |
var html = ''; |
|
70 |
||
71 |
// Header |
|
72 |
||
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
73 |
html += '<h3>' + $lang.get('comment_heading') + '</h3>'; |
1 | 74 |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
75 |
var ns = ENANO_PAGE_TYPE; |
1 | 76 |
|
420
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
77 |
// Counters |
1 | 78 |
if ( data.auth_mod_comments ) |
79 |
{ |
|
80 |
var cnt = ( data.auth_mod_comments ) ? data.count_total : data.count_appr; |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
81 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
82 |
var subst = { |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
83 |
num_comments: cnt, |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
84 |
page_type: ns |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
85 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
86 |
var count_msg = ( cnt == 0 ) ? $lang.get('comment_msg_count_zero', subst) : ( ( cnt == 1 ) ? $lang.get('comment_msg_count_one', subst) : $lang.get('comment_msg_count_plural', subst) ); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
87 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
88 |
html += "<p id=\"comment_status\"><span>" + count_msg + '</span>'; |
1 | 89 |
if ( data.count_unappr > 0 ) |
90 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
91 |
html += ' <span style="color: #D84308" id="comment_status_unapp">' + $lang.get('comment_msg_count_unapp_mod', { num_unapp: data.count_unappr }) + '</span>'; |
1 | 92 |
} |
93 |
html += '</p>'; |
|
94 |
} |
|
95 |
else |
|
96 |
{ |
|
97 |
var cnt = data.count_appr; |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
98 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
99 |
var subst = { |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
100 |
num_comments: cnt, |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
101 |
page_type: ns |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
102 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
103 |
var count_msg = ( cnt == 0 ) ? $lang.get('comment_msg_count_zero', subst) : ( ( cnt == 1 ) ? $lang.get('comment_msg_count_one', subst) : $lang.get('comment_msg_count_plural', subst) ); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
104 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
105 |
html += "<p id=\"comment_status\">" + count_msg; |
1 | 106 |
if ( data.count_unappr > 0 ) |
107 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
108 |
var unappr_msg = ( data.count_unappr == 1 ) ? $lang.get('comment_msg_count_unapp_one') : $lang.get('comment_msg_count_unapp_plural', { num_unapp: data.count_unappr }); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
109 |
html += ' ' + unappr_msg; |
1 | 110 |
} |
111 |
html += '</p>'; |
|
112 |
} |
|
113 |
||
114 |
// Comment display |
|
115 |
||
116 |
if ( data.count_total > 0 ) |
|
117 |
{ |
|
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
118 |
comment_render_track = 0; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
119 |
var commentpages = new paginator(data.comments, _render_comment, 0, 10, data); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
120 |
html += commentpages.html; |
1 | 121 |
} |
122 |
||
74
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
29
diff
changeset
|
123 |
if ( data.auth_post_comments ) |
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
29
diff
changeset
|
124 |
{ |
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
29
diff
changeset
|
125 |
// Posting form |
1 | 126 |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
127 |
html += '<h3>' + $lang.get('comment_postform_title') + '</h3>'; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
128 |
html += '<p>' + $lang.get('comment_postform_blurb'); |
1 | 129 |
if ( data.approval_needed ) |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
130 |
html+=' ' + $lang.get('comment_postform_blurb_unapp'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
131 |
html += ' <a id="leave_comment_button" href="#" onclick="displayCommentForm(); return false;">' + $lang.get('comment_postform_blurb_link') + '</a></p>'; |
1 | 132 |
html += '<div id="comment_form" style="display: none;">'; |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
133 |
html += ' <table border="0" style="width: 100%;">'; |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
134 |
html += ' <tr><td>' + $lang.get('comment_postform_field_name') + '</td><td>'; |
1 | 135 |
if ( data.user_id > 1 ) html += data.username + '<input id="commentform_name" type="hidden" value="'+data.username+'" size="40" />'; |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
136 |
else html += '<input id="commentform_name" type="text" size="40" style="width: 100%;" />'; |
1 | 137 |
html += ' </td></tr>'; |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
138 |
html += ' <tr><td>' + $lang.get('comment_postform_field_subject') + '</td><td><input id="commentform_subject" type="text" size="40" style="width: 100%;" /></td></tr>'; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
139 |
html += ' <tr><td>' + $lang.get('comment_postform_field_comment') + '</td><td><textarea id="commentform_message" rows="15" cols="50" style="width: 100%;"></textarea></td></tr>'; |
1 | 140 |
if ( !data.logged_in && data.guest_posting == '1' ) |
141 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
142 |
html += ' <tr><td>' + $lang.get('comment_postform_field_captcha_title') + '<br /><small>' + $lang.get('comment_postform_field_captcha_blurb') + '</small></td><td>'; |
1 | 143 |
html += ' <img alt="CAPTCHA image" src="'+makeUrlNS('Special', 'Captcha/' + data.captcha)+'" onclick="this.src=\''+makeUrlNS('Special', 'Captcha/' + data.captcha)+'/\'+Math.floor(Math.random()*10000000);" style="cursor: pointer;" /><br />'; |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
144 |
html += ' ' + $lang.get('comment_postform_field_captcha_label') + ' <input type="text" size="8" id="commentform_captcha" />'; |
1 | 145 |
html += ' <!-- This input is used to track the ID of the CAPTCHA image --> <input type="hidden" id="commentform_captcha_id" value="'+data.captcha+'" />'; |
146 |
html += ' </td></tr>'; |
|
147 |
} |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
148 |
html += ' <tr><td colspan="2" style="text-align: center;"><input type="button" onclick="submitComment();" value="' + $lang.get('comment_postform_btn_submit') + '" /></td></tr>'; |
1 | 149 |
html += ' </table>'; |
150 |
html += '</div>'; |
|
74
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
29
diff
changeset
|
151 |
} |
68469a95658d
Various bugfixes and cleanups, too much to remember... see the diffs for what got changed :-)
Dan
parents:
29
diff
changeset
|
152 |
|
1 | 153 |
document.getElementById('ajaxEditContainer').innerHTML = html; |
154 |
||
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
155 |
for ( i = 0; i < data.comments.length; i++ ) |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
156 |
{ |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
157 |
document.getElementById('comment_source_'+i).value = data.comments[i].comment_source; |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
158 |
} |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
159 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
160 |
} |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
161 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
162 |
var _render_comment = function(this_comment, data) |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
163 |
{ |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
164 |
var i = comment_render_track; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
165 |
comment_render_track++; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
166 |
var parser = new templateParser(comment_template); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
167 |
var tplvars = new Object(); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
168 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
169 |
if ( this_comment.approved != '1' && !data.auth_mod_comments ) |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
170 |
return ''; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
171 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
172 |
tplvars.ID = i; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
173 |
tplvars.DATETIME = this_comment.time; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
174 |
tplvars.SUBJECT = this_comment.subject; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
175 |
tplvars.DATA = this_comment.comment_data; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
176 |
tplvars.SIGNATURE = this_comment.signature; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
177 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
178 |
if ( this_comment.approved != '1' ) |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
179 |
tplvars.SUBJECT += ' <span style="color: #D84308">' + $lang.get('comment_msg_note_unapp') + '</span>'; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
180 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
181 |
// Name |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
182 |
tplvars.NAME = this_comment.name; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
183 |
if ( this_comment.user_id > 1 ) |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
184 |
tplvars.NAME = '<a href="' + makeUrlNS('User', this_comment.name) + '" style="' + this_comment.rank_style + '">' + this_comment.name + '</a>'; |
1 | 185 |
|
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
186 |
// Avatar |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
187 |
if ( this_comment.user_has_avatar == '1' ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
188 |
{ |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
189 |
tplvars.AVATAR_URL = this_comment.avatar_path; |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
190 |
tplvars.USERPAGE_LINK = makeUrlNS('User', this_comment.name); |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
191 |
tplvars.AVATAR_ALT = $lang.get('usercp_avatar_image_alt', { username: this_comment.name }); |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
192 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
193 |
|
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
194 |
// User level |
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
195 |
tplvars.USER_LEVEL = ''; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
196 |
if ( this_comment.user_title ) |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
197 |
tplvars.USER_LEVEL += this_comment.user_title; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
198 |
if ( this_comment.rank_title && this_comment.user_title ) |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
199 |
tplvars.USER_LEVEL += '<br />'; |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
200 |
if ( this_comment.rank_title ) |
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
201 |
tplvars.USER_LEVEL += $lang.get(this_comment.rank_title); |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
202 |
|
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
203 |
// Send PM link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
204 |
tplvars.SEND_PM_LINK=(this_comment.user_id>1)?'<a onclick="window.open(this.href); return false;" href="'+ makeUrlNS('Special', 'PrivateMessages/Compose/To/' + ( this_comment.name.replace(/ /g, '_') )) +'">' + $lang.get('comment_btn_send_privmsg') + '</a><br />':''; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
205 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
206 |
// Add buddy link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
207 |
tplvars.ADD_BUDDY_LINK=(this_comment.user_id>1)?'<a onclick="window.open(this.href); return false;" href="'+ makeUrlNS('Special', 'PrivateMessages/FriendList/Add/' + ( this_comment.name.replace(/ /g, '_') )) +'">' + $lang.get('comment_btn_add_buddy') + '</a><br />':''; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
208 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
209 |
// Edit link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
210 |
tplvars.EDIT_LINK='<a href="#edit_'+i+'" onclick="editComment(\''+i+'\', this); return false;" id="cmteditlink_'+i+'">' + $lang.get('comment_btn_edit') + '</a>'; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
211 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
212 |
// Delete link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
213 |
tplvars.DELETE_LINK='<a href="#delete_'+i+'" onclick="deleteComment(\''+i+'\'); return false;">' + $lang.get('comment_btn_delete') + '</a>'; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
214 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
215 |
// Moderation: (Un)approve link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
216 |
var appr = ( this_comment.approved == 1 ) ? $lang.get('comment_btn_mod_unapprove') : $lang.get('comment_btn_mod_approve'); |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
217 |
tplvars.MOD_APPROVE_LINK='<a href="#approve_'+i+'" id="comment_approve_'+i+'" onclick="approveComment(\''+i+'\'); return false;">'+appr+'</a>'; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
218 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
219 |
// Moderation: Delete post link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
220 |
tplvars.MOD_DELETE_LINK='<a href="#mod_del_'+i+'" onclick="deleteComment(\''+i+'\'); return false;">' + $lang.get('comment_btn_mod_delete') + '</a>'; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
221 |
|
359 | 222 |
// Moderation: IP address link |
223 |
if ( this_comment.have_ip ) |
|
224 |
{ |
|
225 |
tplvars.MOD_IP_LINK = '<span id="comment_ip_' + i + '"><a href="#mod_ip_' + i + '" onclick="viewCommentIP(' + this_comment.comment_id + ', ' + i + '); return false;">' + $lang.get('comment_btn_mod_ip_logged') + '</a></span>'; |
|
226 |
} |
|
227 |
else |
|
228 |
{ |
|
229 |
tplvars.MOD_IP_LINK = $lang.get('comment_btn_mod_ip_missing'); |
|
230 |
} |
|
231 |
||
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
232 |
var tplbool = new Object(); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
233 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
234 |
tplbool.signature = ( this_comment.signature == '' ) ? false : true; |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
235 |
tplbool.can_edit = ( data.auth_edit_comments && ( ( this_comment.user_id == data.user_id && data.logged_in ) || data.auth_mod_comments ) ); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
236 |
tplbool.auth_mod = data.auth_mod_comments; |
108
1c7f59df9474
Implemented some extra functionality for friends/foes in comments; fixed lack of table_prefix in stats.php line 63
Dan
parents:
102
diff
changeset
|
237 |
tplbool.is_friend = ( this_comment.is_buddy == 1 && this_comment.is_friend == 1 ); |
1c7f59df9474
Implemented some extra functionality for friends/foes in comments; fixed lack of table_prefix in stats.php line 63
Dan
parents:
102
diff
changeset
|
238 |
tplbool.is_foe = ( this_comment.is_buddy == 1 && this_comment.is_friend == 0 ); |
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
239 |
tplbool.user_has_avatar = ( this_comment.user_has_avatar == '1' ); |
108
1c7f59df9474
Implemented some extra functionality for friends/foes in comments; fixed lack of table_prefix in stats.php line 63
Dan
parents:
102
diff
changeset
|
240 |
|
1c7f59df9474
Implemented some extra functionality for friends/foes in comments; fixed lack of table_prefix in stats.php line 63
Dan
parents:
102
diff
changeset
|
241 |
if ( tplbool.is_friend ) |
214 | 242 |
tplvars.USER_LEVEL += '<br /><b>' + $lang.get('comment_on_friend_list') + '</b>'; |
108
1c7f59df9474
Implemented some extra functionality for friends/foes in comments; fixed lack of table_prefix in stats.php line 63
Dan
parents:
102
diff
changeset
|
243 |
else if ( tplbool.is_foe ) |
214 | 244 |
tplvars.USER_LEVEL += '<br /><b>' + $lang.get('comment_on_foe_list') + '</b>'; |
85
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
245 |
|
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
246 |
parser.assign_vars(tplvars); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
247 |
parser.assign_bool(tplbool); |
7c68a18a27be
AJAX comments are now paginated; plugin manager can now show system plugins; typo in installer corrected; links in oxygen/stpatty/admin footers changed to "About Enano" page; 1.0.1 release candidate
Dan
parents:
74
diff
changeset
|
248 |
|
420
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
249 |
var ret = '<div id="comment_holder_' + i + '">'; |
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
250 |
ret += '<input type="hidden" value="'+this_comment.comment_id+'" />'; |
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
251 |
ret += '<input type="hidden" id="comment_source_'+i+'" />'; |
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
252 |
ret += parser.run(); |
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
253 |
ret += '</div>'; |
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
254 |
return ret; |
1 | 255 |
} |
256 |
||
257 |
function displayCommentForm() |
|
258 |
{ |
|
259 |
document.getElementById('leave_comment_button').style.display = 'none'; |
|
260 |
document.getElementById('comment_form').style.display = 'block'; |
|
261 |
} |
|
262 |
||
263 |
function hideCommentForm() |
|
264 |
{ |
|
265 |
document.getElementById('leave_comment_button').style.display = 'inline'; |
|
266 |
document.getElementById('comment_form').style.display = 'none'; |
|
267 |
} |
|
268 |
||
269 |
function editComment(id, link) |
|
270 |
{ |
|
271 |
var ctr = document.getElementById('subject_'+id); |
|
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
272 |
var subj = ( ctr.firstChild ) ? trim(ctr.firstChild.nodeValue) : ''; // If there's a span in there that says 'unapproved', this eliminates it |
1 | 273 |
ctr.innerHTML = ''; |
274 |
var ipt = document.createElement('input'); |
|
275 |
ipt.id = 'subject_edit_'+id; |
|
276 |
ipt.value = subj; |
|
277 |
ctr.appendChild(ipt); |
|
278 |
||
279 |
var src = document.getElementById('comment_source_'+id).value; |
|
280 |
var cmt = document.getElementById('comment_'+id); |
|
281 |
cmt.innerHTML = ''; |
|
282 |
var ta = document.createElement('textarea'); |
|
283 |
ta.rows = '10'; |
|
284 |
ta.cols = '40'; |
|
541
acb7e23b6ffa
Massive commit with various changes. Added user ranks system (no admin interface yet) and ability for users to have custom user titles. Made cron framework accept fractions of hours through floating-point intervals. Modifed ACL editor to use miniPrompt framework for close confirmation box. Made avatar system use a special page as opposed to fetching the files directly for caching reasons.
Dan
parents:
420
diff
changeset
|
285 |
ta.style.width = '98%'; |
1 | 286 |
ta.value = src; |
287 |
ta.id = 'comment_edit_'+id; |
|
288 |
cmt.appendChild(ta); |
|
289 |
||
290 |
link.style.fontWeight = 'bold'; |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
291 |
link.innerHTML = $lang.get('comment_btn_save'); |
1 | 292 |
link.onclick = function() { var id = this.id.substr(this.id.indexOf('_')+1); saveComment(id, this); return false; }; |
293 |
} |
|
294 |
||
295 |
function saveComment(id, link) |
|
296 |
{ |
|
297 |
var data = document.getElementById('comment_edit_'+id).value; |
|
298 |
var subj = document.getElementById('subject_edit_'+id).value; |
|
299 |
var div = document.getElementById('comment_holder_'+id); |
|
300 |
var real_id = div.getElementsByTagName('input')[0]['value']; |
|
301 |
var req = { |
|
302 |
'mode' : 'edit', |
|
303 |
'id' : real_id, |
|
304 |
'local_id' : id, |
|
305 |
'data' : data, |
|
306 |
'subj' : subj |
|
307 |
}; |
|
308 |
link.style.fontWeight = 'normal'; |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
309 |
link.innerHTML = $lang.get('comment_btn_edit'); |
1 | 310 |
link.onclick = function() { var id = this.id.substr(this.id.indexOf('_')+1); editComment(id, this); return false; }; |
311 |
ajaxComments(req); |
|
312 |
} |
|
313 |
||
314 |
function deleteComment(id) |
|
315 |
{ |
|
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
316 |
if ( !shift ) |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
317 |
{ |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
318 |
var c = confirm($lang.get('comment_msg_delete_confirm')); |
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
319 |
if(!c) |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
320 |
return false; |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
321 |
} |
1 | 322 |
var div = document.getElementById('comment_holder_'+id); |
323 |
var real_id = div.getElementsByTagName('input')[0]['value']; |
|
324 |
var req = { |
|
325 |
'mode' : 'delete', |
|
326 |
'id' : real_id, |
|
327 |
'local_id' : id |
|
328 |
}; |
|
329 |
ajaxComments(req); |
|
330 |
} |
|
331 |
||
332 |
function submitComment() |
|
333 |
{ |
|
334 |
var name = document.getElementById('commentform_name').value; |
|
335 |
var subj = document.getElementById('commentform_subject').value; |
|
336 |
var text = document.getElementById('commentform_message').value; |
|
337 |
if ( document.getElementById('commentform_captcha') ) |
|
338 |
{ |
|
339 |
var captcha_code = document.getElementById('commentform_captcha').value; |
|
340 |
var captcha_id = document.getElementById('commentform_captcha_id').value; |
|
341 |
} |
|
342 |
else |
|
343 |
{ |
|
344 |
var captcha_code = ''; |
|
345 |
var captcha_id = ''; |
|
346 |
} |
|
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
347 |
if ( subj == '' ) |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
348 |
{ |
550
685e839d934e
Added ability to delete the draft revision; [SECURITY] fixed lack of permission check on draft save; renamed messagebox() constructor to MessageBox() (backward compat. maintained)
Dan
parents:
541
diff
changeset
|
349 |
new MessageBox(MB_OK|MB_ICONSTOP, 'Input validation failed', 'Please enter a subject for your comment.'); |
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
350 |
return false; |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
351 |
} |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
352 |
if ( text == '' ) |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
353 |
{ |
550
685e839d934e
Added ability to delete the draft revision; [SECURITY] fixed lack of permission check on draft save; renamed messagebox() constructor to MessageBox() (backward compat. maintained)
Dan
parents:
541
diff
changeset
|
354 |
new MessageBox(MB_OK|MB_ICONSTOP, 'Input validation failed', 'Please enter some text for the body of your comment .'); |
102
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
355 |
return false; |
d807dcd7aed7
[comments] fixed edit button (source wasn't getting filled)
Dan
parents:
86
diff
changeset
|
356 |
} |
1 | 357 |
var req = { |
358 |
'mode' : 'submit', |
|
359 |
'name' : name, |
|
360 |
'subj' : subj, |
|
361 |
'text' : text, |
|
362 |
'captcha_code' : captcha_code, |
|
363 |
'captcha_id' : captcha_id |
|
364 |
}; |
|
365 |
ajaxComments(req); |
|
366 |
} |
|
367 |
||
368 |
function redrawComment(data) |
|
369 |
{ |
|
370 |
if ( data.subj ) |
|
371 |
{ |
|
372 |
document.getElementById('subject_' + data.id).innerHTML = data.subj; |
|
373 |
} |
|
374 |
if ( data.approved && data.approved != '1' ) |
|
375 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
376 |
document.getElementById('subject_' + data.id).innerHTML += ' <span style="color: #D84308">' + $lang.get('comment_msg_note_unapp') + '</span>'; |
1 | 377 |
} |
29
e5484a9e0818
Rewrote change theme dialog; a few minor stability fixes here and there; fixed IE + St Patty background image
Dan
parents:
1
diff
changeset
|
378 |
if ( data.approved && ( typeof(data.approve_updated) == 'string' && data.approve_updated == 'yes' ) ) |
1 | 379 |
{ |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
380 |
var appr = ( data.approved == '1' ) ? $lang.get('comment_btn_mod_unapprove') : $lang.get('comment_btn_mod_approve'); |
1 | 381 |
document.getElementById('comment_approve_'+data.id).innerHTML = appr; |
29
e5484a9e0818
Rewrote change theme dialog; a few minor stability fixes here and there; fixed IE + St Patty background image
Dan
parents:
1
diff
changeset
|
382 |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
383 |
if ( data.approved == '1' ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
384 |
comment_decrement_unapproval(); |
1 | 385 |
else |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
386 |
comment_increment_unapproval(); |
1 | 387 |
} |
388 |
if ( data.text ) |
|
389 |
{ |
|
390 |
document.getElementById('comment_' + data.id).innerHTML = data.text; |
|
391 |
} |
|
392 |
if ( data.src ) |
|
393 |
{ |
|
394 |
document.getElementById('comment_source_' + data.id).value = data.src; |
|
395 |
} |
|
359 | 396 |
if ( data.ip_addr ) |
397 |
{ |
|
420
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
398 |
var span = $dynano('comment_ip_' + data.local_id).object; |
359 | 399 |
if ( !span ) |
400 |
return false; |
|
401 |
span.innerHTML = $lang.get('comment_msg_ip_address') + ' <a href="#rdns" onclick="ajaxReverseDNS(this); return false;">' + data.ip_addr + '</a>'; |
|
402 |
} |
|
1 | 403 |
} |
404 |
||
405 |
function approveComment(id) |
|
406 |
{ |
|
407 |
var div = document.getElementById('comment_holder_'+id); |
|
408 |
var real_id = div.getElementsByTagName('input')[0]['value']; |
|
409 |
var req = { |
|
410 |
'mode' : 'approve', |
|
411 |
'id' : real_id, |
|
412 |
'local_id' : id |
|
413 |
}; |
|
414 |
ajaxComments(req); |
|
415 |
} |
|
416 |
||
417 |
// Does the actual DOM object removal |
|
418 |
function annihiliateComment(id) // Did I spell that right? |
|
419 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
420 |
var approved = true; |
1 | 421 |
if(document.getElementById('comment_approve_'+id)) |
422 |
{ |
|
423 |
var appr = document.getElementById('comment_approve_'+id).firstChild.nodeValue; |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
424 |
if ( appr == $lang.get('comment_btn_mod_approve') ) |
1 | 425 |
{ |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
426 |
approved = false; |
1 | 427 |
} |
428 |
} |
|
429 |
||
430 |
var div = document.getElementById('comment_holder_'+id); |
|
431 |
div.parentNode.removeChild(div); |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
432 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
433 |
// update approval status |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
434 |
if ( document.getElementById('comment_count_unapp_inner') && !approved ) |
1 | 435 |
{ |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
436 |
comment_decrement_unapproval(); |
1 | 437 |
} |
438 |
} |
|
439 |
||
440 |
function materializeComment(data) |
|
441 |
{ |
|
442 |
// Intelligently get an ID |
|
443 |
||
444 |
var i = 0; |
|
445 |
var brother; |
|
446 |
while ( true ) |
|
447 |
{ |
|
448 |
var x = document.getElementById('comment_holder_'+i); |
|
449 |
if(!x) |
|
450 |
break; |
|
451 |
brother = x; |
|
452 |
i++; |
|
453 |
} |
|
454 |
||
455 |
var parser = new templateParser(comment_template); |
|
456 |
var tplvars = new Object(); |
|
457 |
||
458 |
if ( data.approved != '1' && !data.auth_mod_comments ) |
|
459 |
return false; |
|
460 |
||
461 |
tplvars.ID = i; |
|
462 |
tplvars.DATETIME = data.time; |
|
463 |
tplvars.SUBJECT = data.subject; |
|
464 |
tplvars.DATA = data.comment_data; |
|
465 |
tplvars.SIGNATURE = data.signature; |
|
466 |
||
467 |
tplvars.NAME = data.name; |
|
468 |
if ( data.user_id > 1 ) |
|
469 |
tplvars.NAME = '<a href="' + makeUrlNS('User', data.name) + '">' + data.name + '</a>'; |
|
470 |
||
471 |
if ( data.approved != '1' ) |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
472 |
tplvars.SUBJECT += ' <span style="color: #D84308">' + $lang.get('comment_msg_note_unapp') + '</span>'; |
1 | 473 |
|
474 |
// User level |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
475 |
tplvars.USER_LEVEL = $lang.get('user_type_guest'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
476 |
if ( data.user_level >= data.user_level_list.member ) tplvars.USER_LEVEL = $lang.get('user_type_member'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
477 |
if ( data.user_level >= data.user_level_list.mod ) tplvars.USER_LEVEL = $lang.get('user_type_mod'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
478 |
if ( data.user_level >= data.user_level_list.admin ) tplvars.USER_LEVEL = $lang.get('user_type_admin'); |
1 | 479 |
|
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
480 |
// Avatar |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
481 |
if ( data.user_has_avatar == '1' ) |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
482 |
{ |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
483 |
tplvars.AVATAR_URL = scriptPath + '/' + data.avatar_directory + '/' + data.user_id + '.' + data.avatar_type; |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
484 |
tplvars.USERPAGE_LINK = makeUrlNS('User', data.name); |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
485 |
tplvars.AVATAR_ALT = $lang.get('usercp_avatar_image_alt', { username: data.name }); |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
486 |
} |
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
487 |
|
1 | 488 |
// Send PM link |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
489 |
tplvars.SEND_PM_LINK=(data.user_id>1)?'<a onclick="window.open(this.href); return false;" href="'+ makeUrlNS('Special', 'PrivateMessages/Compose/To/' + ( data.name.replace(/ /g, '_') )) +'">' + $lang.get('comment_btn_send_privmsg') + '</a><br />':''; |
1 | 490 |
|
491 |
// Add buddy link |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
492 |
tplvars.ADD_BUDDY_LINK=(data.user_id>1)?'<a onclick="window.open(this.href); return false;" href="'+ makeUrlNS('Special', 'PrivateMessages/FriendList/Add/' + ( data.name.replace(/ /g, '_') )) +'">' + $lang.get('comment_btn_add_buddy') + '</a><br />':''; |
1 | 493 |
|
494 |
// Edit link |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
495 |
tplvars.EDIT_LINK='<a href="#edit_'+i+'" onclick="editComment(\''+i+'\', this); return false;" id="cmteditlink_'+i+'">' + $lang.get('comment_btn_edit') + '</a>'; |
1 | 496 |
|
497 |
// Delete link |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
498 |
tplvars.DELETE_LINK='<a href="#delete_'+i+'" onclick="deleteComment(\''+i+'\'); return false;">' + $lang.get('comment_btn_delete') + '</a>'; |
1 | 499 |
|
500 |
// Moderation: (Un)approve link |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
501 |
var appr = ( data.approved == 1 ) ? $lang.get('comment_btn_mod_unapprove') : $lang.get('comment_btn_mod_approve'); |
1 | 502 |
tplvars.MOD_APPROVE_LINK='<a href="#approve_'+i+'" id="comment_approve_'+i+'" onclick="approveComment(\''+i+'\'); return false;">'+appr+'</a>'; |
503 |
||
504 |
// Moderation: Delete post link |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
505 |
tplvars.MOD_DELETE_LINK='<a href="#mod_del_'+i+'" onclick="deleteComment(\''+i+'\'); return false;">' + $lang.get('comment_btn_mod_delete') + '</a>'; |
1 | 506 |
|
359 | 507 |
// Moderation: IP address link |
508 |
tplvars.MOD_IP_LINK = '<span id="comment_ip_' + i + '"><a href="#mod_ip_' + i + '" onclick="viewCommentIP(' + data.comment_id + ', ' + i + '); return false;">' + $lang.get('comment_btn_mod_ip_logged') + '</a></span>'; |
|
509 |
||
1 | 510 |
var tplbool = new Object(); |
511 |
||
512 |
tplbool.signature = ( data.signature == '' ) ? false : true; |
|
513 |
tplbool.can_edit = ( data.auth_edit_comments && ( ( data.user_id == data.user_id && data.logged_in ) || data.auth_mod_comments ) ); |
|
514 |
tplbool.auth_mod = data.auth_mod_comments; |
|
328
dc838fd61a06
Added initial avatar support. Currently rather feature complete except for admin controls for avatar.
Dan
parents:
214
diff
changeset
|
515 |
tplbool.user_has_avatar = ( data.user_has_avatar == '1' ); |
1 | 516 |
|
517 |
parser.assign_vars(tplvars); |
|
518 |
parser.assign_bool(tplbool); |
|
519 |
||
520 |
var div = document.createElement('div'); |
|
521 |
div.id = 'comment_holder_'+i; |
|
522 |
||
523 |
div.innerHTML = '<input type="hidden" value="'+data.comment_id+'" /><input type="hidden" id="comment_source_'+i+'" />' + parser.run(); |
|
524 |
||
525 |
if ( brother ) |
|
526 |
{ |
|
527 |
brother.parentNode.insertBefore(div, brother.nextSibling); |
|
528 |
} |
|
529 |
else |
|
530 |
{ |
|
531 |
// No comments in ajaxEditContainer, insert it after the header |
|
532 |
var aec = document.getElementById("ajaxEditContainer"); |
|
533 |
aec.insertBefore(div, aec.firstChild.nextSibling.nextSibling); |
|
534 |
} |
|
535 |
||
536 |
document.getElementById('comment_source_'+i).value = data.comment_source; |
|
537 |
||
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
538 |
var cnt = document.getElementById('comment_count_inner').innerHTML; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
539 |
cnt = parseInt(cnt); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
540 |
if ( isNaN(cnt) ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
541 |
cnt = 0; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
542 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
543 |
var subst = { |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
544 |
num_comments: cnt, |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
545 |
page_type: ENANO_PAGE_TYPE |
1 | 546 |
} |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
547 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
548 |
var count_msg = ( cnt == 0 ) ? $lang.get('comment_msg_count_zero', subst) : ( ( cnt == 1 ) ? $lang.get('comment_msg_count_one', subst) : $lang.get('comment_msg_count_plural', subst) ); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
549 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
550 |
document.getElementById('comment_status').firstChild.innerHTML = count_msg; |
1 | 551 |
|
552 |
if(document.getElementById('comment_approve_'+i)) |
|
553 |
{ |
|
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
554 |
var is_unappr = document.getElementById('comment_approve_'+i).firstChild.nodeValue; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
555 |
is_unappr = ( is_unappr == $lang.get('comment_btn_mod_approve') ); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
556 |
if ( is_unappr ) |
1 | 557 |
{ |
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
558 |
comment_increment_unapproval(); |
1 | 559 |
} |
560 |
} |
|
561 |
||
562 |
} |
|
563 |
||
212
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
564 |
function comment_decrement_unapproval() |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
565 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
566 |
if ( document.getElementById('comment_count_unapp_inner') ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
567 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
568 |
var num_unapp = parseInt(document.getElementById('comment_count_unapp_inner').innerHTML); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
569 |
if ( !isNaN(num_unapp) ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
570 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
571 |
num_unapp = num_unapp - 1; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
572 |
if ( num_unapp == 0 ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
573 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
574 |
var p = document.getElementById('comment_status'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
575 |
p.removeChild(p.childNodes[2]); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
576 |
p.removeChild(p.childNodes[1]); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
577 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
578 |
else |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
579 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
580 |
var count_msg = $lang.get('comment_msg_count_unapp_mod', { num_unapp: num_unapp }); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
581 |
document.getElementById('comment_count_unapp_inner').parentNode.innerHTML = count_msg; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
582 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
583 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
584 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
585 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
586 |
|
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
587 |
function comment_increment_unapproval() |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
588 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
589 |
if ( document.getElementById('comment_count_unapp_inner') ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
590 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
591 |
var num_unapp = parseInt(document.getElementById('comment_count_unapp_inner').innerHTML); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
592 |
if ( isNaN(num_unapp) ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
593 |
num_unapp = 0; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
594 |
num_unapp = num_unapp + 1; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
595 |
var count_msg = $lang.get('comment_msg_count_unapp_mod', { num_unapp: num_unapp }); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
596 |
document.getElementById('comment_count_unapp_inner').parentNode.innerHTML = count_msg; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
597 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
598 |
else |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
599 |
{ |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
600 |
var count_msg = $lang.get('comment_msg_count_unapp_mod', { num_unapp: 1 }); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
601 |
var status = document.getElementById('comment_status'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
602 |
if ( !status.childNodes[1] ) |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
603 |
status.appendChild(document.createTextNode(' ')); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
604 |
var span = document.createElement('span'); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
605 |
span.id = 'comment_status_unapp'; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
606 |
span.style.color = '#D84308'; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
607 |
span.innerHTML = count_msg; |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
608 |
status.appendChild(span); |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
609 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
610 |
} |
30b857a6b811
Reworked comment system to not use HACKISH FIXES; AJAX comment framework is completely localized now
Dan
parents:
108
diff
changeset
|
611 |
|
359 | 612 |
function viewCommentIP(id, local_id) |
613 |
{ |
|
614 |
// set "loading" indicator on IP button |
|
420
301f546688d1
Re-enabled, debugged, and optimized Javascript compression code
Dan
parents:
407
diff
changeset
|
615 |
var span = $dynano('comment_ip_' + local_id).object; |
359 | 616 |
if ( !span ) |
617 |
return false; |
|
618 |
span.innerHTML = '<img alt="..." src="' + ajax_load_icon + '" />'; |
|
619 |
||
620 |
var parms = { |
|
621 |
mode: 'view_ip', |
|
622 |
id: id, |
|
623 |
local_id: local_id |
|
624 |
} |
|
625 |
ajaxComments(parms); |
|
626 |
} |
|
627 |
||
1 | 628 |
function htmlspecialchars(text) |
629 |
{ |
|
630 |
text = text.replace(/</g, '<'); |
|
631 |
text = text.replace(/>/g, '>'); |
|
632 |
return text; |
|
633 |
} |
|
634 |
||
635 |
// Equivalent to PHP trim() function |
|
636 |
function trim(text) |
|
637 |
{ |
|
638 |
text = text.replace(/^([\s]+)/, ''); |
|
639 |
text = text.replace(/([\s]+)$/, ''); |
|
640 |
return text; |
|
641 |
} |
|
642 |
||
643 |
// Equivalent to PHP implode() function |
|
644 |
function implode(chr, arr) |
|
645 |
{ |
|
646 |
if ( typeof ( arr.toJSONString ) == 'function' ) |
|
647 |
delete(arr.toJSONString); |
|
648 |
||
649 |
var ret = ''; |
|
650 |
var c = 0; |
|
651 |
for ( var i in arr ) |
|
652 |
{ |
|
653 |
if(i=='toJSONString')continue; |
|
654 |
if ( c > 0 ) |
|
655 |
ret += chr; |
|
656 |
ret += arr[i]; |
|
657 |
c++; |
|
658 |
} |
|
659 |
return ret; |
|
660 |
} |
|
661 |
||
662 |
function nl2br(text) |
|
663 |
{ |
|
664 |
var regex = new RegExp(unescape('%0A'), 'g'); |
|
665 |
return text.replace(regex, '<br />' + unescape('%0A')); |
|
666 |
} |
|
667 |