X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FGetStatusAjaxPage.java;h=015add553879b7f39889a05510dbac4f6280282a;hb=7815943b9ecc1199e11dd8be9736d6f3e892118e;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..015add5 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,9 +63,15 @@ 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(), false))); + if (loadAllSones) { + sones.addAll(webInterface.getCore().getSones()); + } JsonArray jsonSones = new JsonArray(); for (Sone sone : sones) { + if (sone == null) { + continue; + } JsonObject jsonSone = createJsonSone(sone); jsonSones.add(jsonSone); } @@ -78,7 +87,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); } /**