}
function getStatus() {
- ajaxGet("getStatus.ajax", isViewSonePage() ? {"soneIds": getShownSoneId() } : {"loadAllSones": isKnownSonesPage()}, function(data, textStatus) {
+ ajaxGet("getStatus.ajax", isViewSonePage() ? {"soneIds": getShownSoneId() } : isKnownSonesPage() ? {"soneIds": getShownSoneIds() } : {}, function(data, textStatus) {
if ((data != null) && data.success) {
/* process Sone information. */
$.each(data.sones, function(index, value) {
if (data.notificationHash != getNotificationHash()) {
console.log("Old hash: ", getNotificationHash(), ", new hash: ", data.notificationHash);
requestNotifications();
+ /* process new posts. */
+ $.each(data.newPosts, function(index, value) {
+ loadNewPost(value.id, value.sone, value.recipient, value.time);
+ });
+ /* process new replies. */
+ $.each(data.newReplies, function(index, value) {
+ loadNewReply(value.id, value.sone, value.post, value.postSone);
+ });
}
- /* process new posts. */
- $.each(data.newPosts, function(index, value) {
- loadNewPost(value.id, value.sone, value.recipient, value.time);
- });
- /* process new replies. */
- $.each(data.newReplies, function(index, value) {
- loadNewReply(value.id, value.sone, value.post, value.postSone);
- });
/* do it again in 5 seconds. */
setTimeout(getStatus, 5000);
} else {
}
/**
+ * Returns the ID of all currently visible Sones. This is mainly used on the
+ * “Known Sones” page.
+ *
+ * @returns The ID of the currently shown Sones
+ */
+function getShownSoneIds() {
+ var soneIds = new Array();
+ $("#sone #known-sones .sone .id").each(function() {
+ soneIds.push($(this).text());
+ });
+ return soneIds.join(",");
+}
+
+/**
* Returns whether the current page is a “view post” page.
*
* @returns {Boolean} <code>true</code> if the current page is a “view post”
* request
*/
function markSoneAsKnown(soneElement, skipRequest) {
- if ($(soneElement).is(".new")) {
+ if ($(soneElement).hasClass("new")) {
$(soneElement).removeClass("new");
if ((typeof skipRequest == "undefined") || !skipRequest) {
ajaxGet("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": "sone", "id": getSoneId(soneElement)});
$(document).ready(function() {
+ /* rip out the status update textarea. */
+ $("#sone .rip-out").each(function() {
+ var oldElement = $(this);
+ newElement = $("<input type='text'/>");
+ newElement.attr("class", oldElement.attr("class")).attr("name", oldElement.attr("name"));
+ oldElement.before(newElement).remove();
+ });
+
/* this initializes the status update input field. */
getTranslation("WebInterface.DefaultText.StatusUpdate", function(defaultText) {
registerInputTextareaSwap("#sone #update-status .status-input", defaultText, "text", false, false);