Merge branch 'release-0.6.6'
[Sone.git] / src / main / resources / static / javascript / sone.js
index 943895b..ca80b48 100644 (file)
@@ -809,6 +809,15 @@ function ajaxifyPost(postElement) {
                })
        });
 
+       /* ajaxify author/post links */
+       $(".post-status-line .permalink a", postElement).click(function() {
+               if (!$(".create-reply", postElement).hasClass("hidden")) {
+                       textArea = $("input.reply-input", postElement).focus().data("textarea");
+                       $(textArea).replaceSelection($(this).attr("href"));
+               }
+               return false;
+       });
+
        /* add “comment” link. */
        addCommentLink(getPostId(postElement), getPostAuthor(postElement), postElement, $(postElement).find(".post-status-line .permalink-author"));
 
@@ -849,6 +858,7 @@ function ajaxifyPost(postElement) {
 
        /* show Sone menu when hovering over the avatar. */
        $(postElement).find(".post-avatar").mouseover(function() {
+               $(".sone-menu:visible").fadeOut();
                $(".sone-post-menu", postElement).mouseleave(function() {
                        $(this).fadeOut();
                }).fadeIn();
@@ -909,6 +919,16 @@ function ajaxifyReply(replyElement) {
                        });
                });
        })(replyElement);
+
+       /* ajaxify author links */
+       $(".reply-status-line .permalink a", replyElement).click(function() {
+               if (!$(".create-reply", getPostElement(replyElement)).hasClass("hidden")) {
+                       textArea = $("input.reply-input", getPostElement(replyElement)).focus().data("textarea");
+                       $(textArea).replaceSelection($(this).attr("href"));
+               }
+               return false;
+       });
+
        addCommentLink(getPostId(replyElement), getReplyAuthor(replyElement), replyElement, $(replyElement).find(".reply-status-line .permalink-author"));
 
        /* convert “show source” link into javascript function. */
@@ -968,6 +988,7 @@ function ajaxifyReply(replyElement) {
 
        /* show Sone menu when hovering over the avatar. */
        $(replyElement).find(".reply-avatar").mouseover(function() {
+               $(".sone-menu:visible").fadeOut();
                $(".sone-reply-menu", replyElement).mouseleave(function() {
                        $(this).fadeOut();
                }).fadeIn();
@@ -1120,7 +1141,7 @@ function checkForRemovedPosts(oldNotification, newNotification) {
  *            The new notification element
  */
 function checkForRemovedReplies(oldNotification, newNotification) {
-       if (getNotificationId(oldNotification) != "new-replies-notification") {
+       if (getNotificationId(oldNotification) != "new-reply-notification") {
                return;
        }
        oldIds = getElementIds(oldNotification, ".reply-id");
@@ -1164,7 +1185,7 @@ function getStatus() {
                                                        postId = $(this).text();
                                                        markPostAsKnown(getPost(postId), true);
                                                });
-                                       } else if (notificationId == "new-replies-notification") {
+                                       } else if (notificationId == "new-reply-notification") {
                                                $(".reply-id", this).each(function(index, element) {
                                                        replyId = $(this).text();
                                                        markReplyAsKnown(getReply(replyId), true);
@@ -1921,11 +1942,6 @@ $(document).ready(function() {
                ajaxifyNotification($(this));
        });
 
-       /* disable all permalinks. */
-       $(".permalink").click(function() {
-               return false;
-       });
-
        /* activate status polling. */
        setTimeout(getStatus, 5000);