Просмотр исходного кода

remove some more this, slightly change comments

rugk 9 лет назад
Родитель
Сommit
b01a28d580
1 измененных файлов с 38 добавлено и 34 удалено
  1. 38 34
      js/privatebin.js

+ 38 - 34
js/privatebin.js

@@ -135,26 +135,25 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
         };
 
         /**
-         * set text of a DOM element (required for IE),
+         * set text of a jQuery element (required for IE),
          *
          * @name   helper.setElementText
          * @function
-         * @param  {Object} element - a DOM element
+         * @param  {jQuery} $element - a jQuery element
          * @param  {string} text - the text to enter
-         * @this is equivalent to element.text(text)
          * @TODO check for XSS attacks, usually no CSS can prevent them so this looks weird on the first look
          */
-        me.setElementText = function(element, text)
+        me.setElementText = function($element, text)
         {
             // For IE<10: Doesn't support white-space:pre-wrap; so we have to do this...
             if ($('#oldienotice').is(':visible')) {
                 var html = me.htmlEntities(text).replace(/\n/ig, '\r\n<br>');
-                element.html('<pre>' + html + '</pre>');
+                $element.html('<pre>' + html + '</pre>');
             }
             // for other (sane) browsers:
             else
             {
-                element.text(text);
+                $element.text(text);
             }
         };
 
@@ -163,19 +162,19 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
          *
          * @name   helper.setMessage
          * @function
-         * @param  {Object} element - a jQuery wrapped DOM element
+         * @param  {jQuery} $element - a jQuery wrapped DOM element
          * @param  {string} message - the message to append
          */
-        me.setMessage = function(element, message)
+        me.setMessage = function($element, message)
         {
-            var content = element.contents();
+            var content = $element.contents();
             if (content.length > 0)
             {
                 content[content.length - 1].nodeValue = ' ' + message;
             }
             else
             {
-                me.setElementText(element, message);
+                me.setElementText($element, message);
             }
         };
 
@@ -931,63 +930,68 @@ jQuery.PrivateBin = function($, sjcl, Base64, RawDeflate) {
             {
                 $comments.html('');
 
+                var $divComment;
+
                 // iterate over comments
                 for (var i = 0; i < paste.comments.length; ++i)
                 {
                     var $place = $comments,
                         comment = paste.comments[i],
-                        commenttext = filter.decipher(key, password, comment.data),
-                        // if parent comment exists, display below (CSS will automatically shift it to the right)
-                        cname = '#comment_' + comment.parentid,
-                        divComment = $('<article><div class="comment" id="comment_' + comment.id
-                                   + '"><div class="commentmeta"><span class="nickname"></span>'
-                                   + '<span class="commentdate"></span></div>'
-                                   + '<div class="commentdata"></div>'
-                                   + '<button class="btn btn-default btn-sm">'
-                                   + i18n._('Reply') + '</button></div></article>'),
-                        divCommentData = divComment.find('div.commentdata');
-
-                    // if the element exists in page
-                    if ($(cname).length)
+                        commentText = filter.decipher(key, password, comment.data),
+                        $parentComment = $('#comment_' + comment.parentid);
+
+                    $divComment = $('<article><div class="comment" id="comment_' + comment.id
+                               + '"><div class="commentmeta"><span class="nickname"></span>'
+                               + '<span class="commentdate"></span></div>'
+                               + '<div class="commentdata"></div>'
+                               + '<button class="btn btn-default btn-sm">'
+                               + i18n._('Reply') + '</button></div></article>');
+                    var $divCommentData = $divComment.find('div.commentdata');
+
+                    // if parent comment exists
+                    if ($parentComment.length)
                     {
-                        $place = $(cname);
+                        // shift comment to the right
+                        $place = $parentComment;
                     }
-                    divComment.find('button').click({commentid: comment.id}, me.openReply);
-                    helper.setElementText(divCommentData, commenttext);
-                    helper.urls2links(divCommentData);
+                    $divComment.find('button').click({commentid: comment.id}, me.openReply);
+                    helper.setElementText($divCommentData, commentText);
+                    helper.urls2links($divCommentData);
 
                     // try to get optional nickname
                     var nick = filter.decipher(key, password, comment.meta.nickname);
                     if (nick.length > 0)
                     {
-                        divComment.find('span.nickname').text(nick);
+                        $divComment.find('span.nickname').text(nick);
                     }
                     else
                     {
                         divComment.find('span.nickname').html('<i>' + i18n._('Anonymous') + '</i>');
                     }
-                    divComment.find('span.commentdate')
+                    $divComment.find('span.commentdate')
                               .text(' (' + (new Date(comment.meta.postdate * 1000).toLocaleString()) + ')')
                               .attr('title', 'CommentID: ' + comment.id);
 
                     // if an avatar is available, display it
                     if (comment.meta.vizhash)
                     {
-                        divComment.find('span.nickname')
+                        $divComment.find('span.nickname')
                                   .before(
                                     '<img src="' + comment.meta.vizhash + '" class="vizhash" title="' +
                                     i18n._('Anonymous avatar (Vizhash of the IP address)') + '" /> '
                                   );
                     }
 
-                    $place.append(divComment);
+                    $place.append($divComment);
                 }
-                var divComment = $(
+
+                // add 'add new comment' area
+                $divComment = $(
                     '<div class="comment"><button class="btn btn-default btn-sm">' +
                     i18n._('Add comment') + '</button></div>'
                 );
-                divComment.find('button').click({commentid: helper.pasteId()}, me.openReply);
-                $comments.append(divComment);
+                $divComment.find('button').click({commentid: helper.pasteId()}, me.openReply);
+                $comments.append($divComment);
                 $discussion.removeClass('hidden');
             }
         };