Merge branch 'message-recipient'
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / GetStatusAjaxPage.java
index 831bb6f..ae3dfc2 100644 (file)
@@ -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<Sone> sones = loadAllSones ? webInterface.getCore().getSones() : Collections.singleton(getCurrentSone(request.getToadletContext()));
+               Set<Sone> sones = new HashSet<Sone>(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<Post> newPosts = webInterface.getNewPosts();
+               JsonArray jsonPosts = new JsonArray();
+               for (Post post : newPosts) {
+                       jsonPosts.add(post.getId());
+               }
+               /* load new replies. */
+               Set<Reply> 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);
        }
 
        /**