Store textarea in input field’s data.
[Sone.git] / src / main / resources / static / javascript / sone.js
index 596c19c..8e6429c 100644 (file)
@@ -33,7 +33,7 @@ function registerInputTextareaSwap(inputElement, defaultText, inputFieldName, op
                                inputField.val(defaultText);
                        }
                }).hide().data("inputField", $(this)).val($(this).val());
-               $(this).after(textarea);
+               $(this).data("textarea", textarea).after(textarea);
                (function(inputField, textarea) {
                        inputField.focus(function() {
                                $(this).hide().attr("disabled", "disabled");
@@ -666,7 +666,7 @@ function ajaxifySone(soneElement) {
 
        /* mark Sone as known when clicking it. */
        $(soneElement).click(function() {
-               markSoneAsKnown(soneElement);
+               markSoneAsKnown(this);
        });
 }
 
@@ -1001,6 +1001,10 @@ function getStatus() {
                                        }
                                        $(this).slideUp("normal", function() {
                                                $(this).remove();
+                                               /* remove activity when no notifications are visible. */
+                                               if ($("#sone #notification-area .notification").length == 0) {
+                                                       resetActivity();
+                                               }
                                        });
                                }
                        });
@@ -1032,10 +1036,6 @@ function getStatus() {
                        $.each(data.newReplies, function(index, value) {
                                loadNewReply(value.id, value.sone, value.post, value.postSone);
                        });
-                       /* remove activity when no notifications are visible. */
-                       if ($("#sone #notification-area .notification").length == 0) {
-                               resetActivity();
-                       }
                        /* do it again in 5 seconds. */
                        setTimeout(getStatus, 5000);
                } else {
@@ -1335,9 +1335,6 @@ function updatePostTimes(postIds) {
  *            The tooltip to show
  */
 function updateReplyTime(replyId, timeText, refreshTime, tooltip) {
-       if (!getReply(replyId).is(":visible")) {
-               return;
-       }
        getReply(replyId).find(".reply-status-line > .time").html(timeText).attr("title", tooltip);
        (function(replyId, refreshTime) {
                setTimeout(function() {
@@ -1367,6 +1364,7 @@ function resetActivity() {
        if (title.indexOf('(') == 0) {
                setTitle(title.substr(title.indexOf(' ') + 1));
        }
+       iconBlinking = false;
 }
 
 function setActivity() {
@@ -1405,7 +1403,7 @@ var iconBlinking = false;
  * showing the activity state, it is returned to normal.
  */
 function toggleIcon() {
-       if (focus) {
+       if (focus || !iconBlinking) {
                if (iconActive) {
                        changeIcon("images/icon.png");
                        iconActive = false;