Change permalinks to insert the links if the reply input is visible.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Jul 2011 14:42:12 +0000 (16:42 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Jul 2011 14:42:12 +0000 (16:42 +0200)
src/main/resources/static/javascript/sone.js

index 943895b..b5a7a2a 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"));
 
@@ -909,6 +918,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. */
@@ -1921,11 +1940,6 @@ $(document).ready(function() {
                ajaxifyNotification($(this));
        });
 
-       /* disable all permalinks. */
-       $(".permalink").click(function() {
-               return false;
-       });
-
        /* activate status polling. */
        setTimeout(getStatus, 5000);