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(), 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);
}
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) {
+ JsonObject jsonPost = new JsonObject();
+ jsonPost.put("id", post.getId());
+ jsonPost.put("sone", post.getSone().getId());
+ jsonPost.put("recipient", (post.getRecipient() != null) ? post.getRecipient().getId() : null);
+ jsonPost.put("time", post.getTime());
+ jsonPosts.add(jsonPost);
+ }
+ /* load new replies. */
+ Set<Reply> newReplies = webInterface.getNewReplies();
+ JsonArray jsonReplies = new JsonArray();
+ for (Reply reply : newReplies) {
+ JsonObject jsonReply = new JsonObject();
+ jsonReply.put("id", reply.getId());
+ jsonReply.put("sone", reply.getSone().getId());
+ jsonReply.put("post", reply.getPost().getId());
+ jsonReply.put("postSone", reply.getPost().getSone().getId());
+ jsonReplies.add(jsonReply);
+ }
+ return createSuccessJsonObject().put("sones", jsonSones).put("notifications", jsonNotifications).put("removedNotifications", jsonRemovedNotifications).put("newPosts", jsonPosts).put("newReplies", jsonReplies);
}
/**
return false;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected boolean requiresLogin() {
+ return false;
+ }
+
//
// PRIVATE METHODS
//