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;
* The Sone web interface
*/
public GetStatusAjaxPage(WebInterface webInterface) {
- super("ajax/getStatus.ajax", webInterface);
+ super("getStatus.ajax", webInterface);
}
/**
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);
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);
}
/**