1var fss_comment_add = false; 2 3function commentFormRedirect() { 4 5 jQuery("#addcommentform").submit(function (event) { 6 event.preventDefault(); 7 8 if (fss_comment_add) 9 return false; 10 11 fss_comment_add = true; 12 13 var $form = jQuery(this), 14 term = $form.find('input[name="s"]').val(), 15 url = $form.attr('action'); 16 jQuery('#addcomment').attr("disabled", true); 17 18 var uid = jQuery("#addcommentform").find('[name="uid"]').val(); 19 20 jQuery.post(url, jQuery("#addcommentform").serialize(), 21 function (data) { 22 23 var reevent = false; 24 var result = JSON.parse(data); 25 26 // update comments display 27 jQuery('.fss_comments_result_'+uid).each(function () { 28 if (result['display'] == "before") { 29 jQuery(this).html(result['comment'] + jQuery(this).html()); 30 } else if (result['display'] == "after") { 31 jQuery(this).html(jQuery(this).html() + result['comment']); 32 } else if (result['display'] == "replace") { 33 jQuery(this).html(result['comment']); 34 } 35 }); 36 37 // update form display 38 if (result['form_display'] == "replace") { 39 jQuery('#add_comment').html(result['form']); 40 reevent = true; 41 } else if (result['form_display'] == "clear_comment") { 42 jQuery('#comment_body').val(""); 43 jQuery('#addcomment').attr("disabled", false); 44 } 45 46 if (reevent) { 47 commentFormRedirect(); 48 } 49 50 if (result['valid'] == 0) 51 jQuery('#commentaddbutton').click(); 52 53 sortCommentHeights(); 54 55 fss_comment_add = false; 56 57 if (typeof (grecaptcha) != "undefined") { 58 var recap_key = jQuery('#recaptcha_public_key').text(); 59 grecaptcha.render(jQuery('.g-recaptcha')[0], { 60 'sitekey': recap_key 61 }); 62 63 return; 64 } 65 } 66 ); 67 68 }); 69 70 jQuery("#editcommentform").submit(function (event) { 71 event.preventDefault(); 72 73 var $form = jQuery(this), 74 term = $form.find('input[name="s"]').val(), 75 url = $form.attr('action'); 76 var commentid = jQuery('#canceledit').attr('commentid'); 77 var uid = jQuery('#canceledit').attr('uid'); 78 79 jQuery.post(url, jQuery("#editcommentform").serialize(), 80 function (data) { 81 var newcomment = jQuery(data); 82 newcomment.insertAfter(jQuery('#fss_comment_' + uid + '_' + commentid)); 83 jQuery('#fss_comment_' + uid + '_' + commentid).remove(); 84 sortCommentHeights(); 85 } 86 ); 87 88 }); 89} 90 91function sortCommentHeights() { 92 jQuery('.fss_comment').each(function () { 93 var baseheight = jQuery(this).innerHeight(); 94 var top = parseInt(jQuery(this).css('padding-top').replace('px', '')); 95 if (top) { 96 baseheight -= top; 97 } else { 98 top = 0; 99 } 100 var bottom = parseInt(jQuery(this).css('padding-bottom').replace('px', '')); 101 if (bottom) { 102 baseheight -= bottom; 103 } else { 104 bottom = 0; 105 } 106 var height = jQuery(this).children('.fss_comment_left').outerHeight(); 107 height = Math.max(height, jQuery(this).children('.fss_kb_mod_this').outerHeight()); 108 height = Math.max(height, jQuery(this).children('.fss_comment_comment').outerHeight()); 109 110 var pad = height - baseheight + top; 111 jQuery(this).css('padding-bottom', pad + 'px'); 112 }); 113} 114 115jQuery(document).ready(function () { 116 commentFormRedirect(); 117 sortCommentHeights(); 118}); 119 120function fss_remove_comment(uid, commentid) { 121 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-info'); 122 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').addClass('label-warning'); 123 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-success'); 124 jQuery('#fss_comment_' + uid + '_' + commentid + '_cross').css('display', 'none'); 125 jQuery('#fss_comment_' + uid + '_' + commentid + '_tick').css('display', 'inline'); 126 jQuery('#fss_comment_' + uid + '_' + commentid + '_delete').css('display', 'inline'); 127 var url = jQuery('#comments_urls').attr('url'); 128 url = url.replace("XXTASKXX", 'removecomment');
129 url = url.replace("XXUIDXX", uid); 130 url = url.replace("XXCIDXX", commentid); 131 jQuery.get(url); 132} 133 134function fss_approve_comment(uid, commentid) { 135 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-info'); 136 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-warning'); 137 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').addClass('label-success'); 138 jQuery('#fss_comment_' + uid + '_' + commentid + '_cross').css('display', 'inline'); 139 jQuery('#fss_comment_' + uid + '_' + commentid + '_tick').css('display', 'none'); 140 jQuery('#fss_comment_' + uid + '_' + commentid + '_delete').css('display', 'none'); 141 var url = jQuery('#comments_urls').attr('url'); 142 url = url.replace("XXTASKXX", 'approvecomment'); 143 url = url.replace("XXUIDXX", uid); 144 url = url.replace("XXCIDXX", commentid); 145 jQuery.get(url); 146} 147 148function fss_delete_comment(uid, commentid) { 149 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-info'); 150 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-warning'); 151 jQuery('#fss_comment_' + uid + '_' + commentid + ' > span').removeClass('label-success'); 152 jQuery('#fss_comment_' + uid + '_' + commentid).html(jQuery('#comments_urls').attr('deleted')); 153 var url = jQuery('#comments_urls').attr('url'); 154 url = url.replace("XXTASKXX", 'deletecomment'); 155 url = url.replace("XXUIDXX", uid); 156 url = url.replace("XXCIDXX", commentid); 157 158 jQuery('div.tooltip').remove(); 159 160 jQuery.get(url); 161} 162 163function fss_edit_comment(uid, commentid) { 164 jQuery('#fss_comment_' + uid + '_' + commentid).html(jQuery('#comments_urls').attr('wait')); 165 var url = jQuery('#comments_urls').attr('url'); 166 url = url.replace("XXTASKXX", 'editcomment'); 167 url = url.replace("XXUIDXX", uid); 168 url = url.replace("XXCIDXX", commentid); 169 jQuery('#canceledit').each(function() { 170 var commentid = jQuery(this).attr('commentid'); 171 cancel_edit(uid, commentid); 172 }); 173 jQuery.get(url, function (data) { 174 jQuery('#fss_comment_' + uid + '_' + commentid).html(data); 175 setup_edit_form(); 176 }); 177} 178function setup_edit_form() 179{ 180 commentFormRedirect(); 181 182 jQuery('#canceledit').click(function(ev) { 183 ev.preventDefault(); 184 var commentid = jQuery(this).attr('commentid'); 185 var uid = jQuery(this).attr('uid'); 186 cancel_edit(uid, commentid); 187 }); 188} 189 190function cancel_edit(uid, commentid) 191{ 192 var url = jQuery('#comments_urls').attr('url'); 193 url = url.replace("XXTASKXX", 'showcomment'); 194 url = url.replace("XXUIDXX", uid); 195 url = url.replace('XXCIDXX', commentid); 196 197 jQuery.get(url, function (data) { 198 var newcomment = jQuery(data); 199 newcomment.insertAfter(jQuery('#fss_comment_' + uid + '_' + commentid)); 200 jQuery('#fss_comment_' + uid + '_' + commentid).remove(); 201 sortCommentHeights(); 202 }); 203} 204 205var fss_ident = jQuery('#comments_urls').attr('ident'); 206var fss_published = jQuery('#comments_urls').attr('published'); 207 208function fss_moderate_refresh() { 209 fss_ident = jQuery('#ident').val(); 210 fss_published = jQuery('#published').val(); 211 212 jQuery('#fss_moderate').html("<div class='fss_please_wait'>" + jQuery('#comments_urls').attr('wait') + "</div>"); 213 214 var url = jQuery('#comments_urls').attr('refresh'); 215 url = url.replace('XXXIDXX', fss_ident); 216 url = url.replace('XXPXX',fss_published); 217 218 jQuery.get(url, function (data) { 219 jQuery('#fss_moderate').html(data); 220 sortCommentHeights(); 221 }); 222}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.