X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FGetStatusAjaxPage.java;h=ae3dfc2b66df985eee52b25bc58ac2be0d3a5d09;hb=6db033602e7c17efc40a4a19efe705d67832fc1a;hp=831bb6f44bbdf454fb8ffca39ffd3c0e455540de;hpb=80822a0b544648746b293b562eed1da88e439991;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java index 831bb6f..ae3dfc2 100644 --- a/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java +++ b/src/main/java/net/pterodactylus/sone/web/ajax/GetStatusAjaxPage.java @@ -22,9 +22,12 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Set; +import net.pterodactylus.sone.data.Post; +import net.pterodactylus.sone.data.Reply; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.template.SoneAccessor; import net.pterodactylus.sone.web.WebInterface; @@ -50,7 +53,7 @@ public class GetStatusAjaxPage extends JsonPage { * The Sone web interface */ public GetStatusAjaxPage(WebInterface webInterface) { - super("ajax/getStatus.ajax", webInterface); + super("getStatus.ajax", webInterface); } /** @@ -60,7 +63,10 @@ public class GetStatusAjaxPage extends JsonPage { protected JsonObject createJsonObject(Request request) { /* load Sones. */ boolean loadAllSones = Boolean.parseBoolean(request.getHttpRequest().getParam("loadAllSones", "true")); - Set sones = loadAllSones ? webInterface.getCore().getSones() : Collections.singleton(getCurrentSone(request.getToadletContext())); + Set sones = new HashSet(Collections.singleton(getCurrentSone(request.getToadletContext()))); + if (loadAllSones) { + sones.addAll(webInterface.getCore().getSones()); + } JsonArray jsonSones = new JsonArray(); for (Sone sone : sones) { JsonObject jsonSone = createJsonSone(sone); @@ -78,7 +84,19 @@ public class GetStatusAjaxPage extends JsonPage { for (Notification notification : removedNotifications) { jsonRemovedNotifications.add(createJsonNotification(notification)); } - return createSuccessJsonObject().put("sones", jsonSones).put("notifications", jsonNotifications).put("removedNotifications", jsonRemovedNotifications); + /* load new posts. */ + Set newPosts = webInterface.getNewPosts(); + JsonArray jsonPosts = new JsonArray(); + for (Post post : newPosts) { + jsonPosts.add(post.getId()); + } + /* load new replies. */ + Set newReplies = webInterface.getNewReplies(); + JsonArray jsonReplies = new JsonArray(); + for (Reply reply : newReplies) { + jsonReplies.add(reply.getId()); + } + return createSuccessJsonObject().put("sones", jsonSones).put("notifications", jsonNotifications).put("removedNotifications", jsonRemovedNotifications).put("newPosts", jsonPosts).put("newReplies", jsonReplies); } /**