commentElement = (function(postId) {
separator = $("<span> · </span>").addClass("separator");
var commentElement = $("<div><span>Comment</span></div>").addClass("show-reply-form").click(function() {
- markPostAsKnown(getPostElement(this));
replyElement = $("#sone .post#" + postId + " .create-reply");
replyElement.removeClass("hidden");
replyElement.removeClass("light");
if (success) {
$(inputField).val("");
loadNewReply(replyId, soneId, postId);
- markPostAsKnown(getPostElement(inputField));
$("#sone .post#" + postId + " .create-reply").addClass("hidden");
$("#sone .post#" + postId + " .create-reply .sender").hide();
$("#sone .post#" + postId + " .create-reply .select-sender").show();
/* convert all “like” buttons to javascript functions. */
$(postElement).find(".like-post").submit(function() {
likePost(getPostId(this));
- markPostAsKnown(getPostElement(this));
return false;
});
$(postElement).find(".unlike-post").submit(function() {
unlikePost(getPostId(this));
- markPostAsKnown(getPostElement(this));
return false;
});
function ajaxifyReply(replyElement) {
$(replyElement).find(".like-reply").submit(function() {
likeReply(getReplyId(this));
- markPostAsKnown(getPostElement(this));
return false;
});
$(replyElement).find(".unlike-reply").submit(function() {
unlikeReply(getReplyId(this));
- markPostAsKnown(getPostElement(this));
return false;
});
(function(replyElement) {
untrustSone(getReplyAuthor(this));
return false;
});
-
- /* mark post and all replies as known on click. */
- $(replyElement).click(function() {
- markPostAsKnown(getPostElement(this));
- });
}
/**
notification = ajaxifyNotification(createNotification(value.id, value.text, value.dismissable)).hide();
if (oldNotification.length != 0) {
if ((oldNotification.find(".short-text").length > 0) && (notification.find(".short-text").length > 0)) {
- opened = oldNotification.find(".short-text").hasClass("hidden");
+ opened = oldNotification.is(":visible") && oldNotification.find(".short-text").hasClass("hidden");
notification.find(".short-text").toggleClass("hidden", opened);
notification.find(".text").toggleClass("hidden", !opened);
}
postElement = this;
if ($(postElement).hasClass("new")) {
(function(postElement) {
- $.getJSON("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": "post", "id": getPostId(postElement)}, function(data, textStatus) {
- $(postElement).removeClass("new");
- $(".click-to-show", postElement).removeClass("new");
- });
+ $(postElement).removeClass("new");
+ $(".click-to-show", postElement).removeClass("new");
+ $.getJSON("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": "post", "id": getPostId(postElement)});
})(postElement);
}
});
replyElement = this;
if ($(replyElement).hasClass("new")) {
(function(replyElement) {
- $.getJSON("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": "reply", "id": getReplyId(replyElement)}, function(data, textStatus) {
- $(replyElement).removeClass("new");
- });
+ $(replyElement).removeClass("new");
+ $.getJSON("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": "reply", "id": getReplyId(replyElement)});
})(replyElement);
}
});
if (title.indexOf('(') != 0) {
document.title = "(!) " + title;
}
+ setTimeout(toggleIcon, 1500);
}
}
+/** Whether the icon is currently showing activity. */
+var iconActive = false;
+
+/**
+ * Toggles the icon. If the window has gained focus and the icon is still
+ * showing the activity state, it is returned to normal.
+ */
+function toggleIcon() {
+ if (focus) {
+ if (iconActive) {
+ changeIcon("images/icon.png");
+ iconActive = false;
+ }
+ } else {
+ iconActive = !iconActive;
+ console.log("showing icon: " + iconActive);
+ changeIcon(iconActive ? "images/icon-activity.png" : "images/icon.png");
+ setTimeout(toggleIcon, 1500);
+ }
+}
+
+/**
+ * Changes the icon of the page.
+ *
+ * @param iconUrl
+ * The new URL of the icon
+ */
+function changeIcon(iconUrl) {
+ $("link[rel=icon]").remove();
+ $("head").append($("<link>").attr("rel", "icon").attr("type", "image/png").attr("href", iconUrl));
+ $("iframe[id=icon-update]")[0].src += "";
+}
+
/**
* Creates a new notification.
*