X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FIndexPage.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FIndexPage.java;h=0000000000000000000000000000000000000000;hb=de7568a82eb4150bf6d2b0553841b7b69f84c968;hp=1d40f4519abc8410708d102e55831827e7927594;hpb=9acbc5bdec4ccb752e0856a501568b0bb6161579;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/IndexPage.java b/src/main/java/net/pterodactylus/sone/web/IndexPage.java deleted file mode 100644 index 1d40f45..0000000 --- a/src/main/java/net/pterodactylus/sone/web/IndexPage.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Sone - IndexPage.java - Copyright © 2010–2016 David Roden - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.pterodactylus.sone.web; - -import static net.pterodactylus.sone.utils.NumberParsers.parseInt; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import net.pterodactylus.sone.data.Post; -import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.notify.PostVisibilityFilter; -import net.pterodactylus.sone.web.page.FreenetRequest; -import net.pterodactylus.util.collection.Pagination; -import net.pterodactylus.util.template.Template; -import net.pterodactylus.util.template.TemplateContext; - -import com.google.common.base.Optional; -import com.google.common.collect.Collections2; - -/** - * The index page shows the main page of Sone. This page will contain the posts - * of all friends of the current user. - * - * @author David ‘Bombe’ Roden - */ -public class IndexPage extends SoneTemplatePage { - - private final PostVisibilityFilter postVisibilityFilter; - - public IndexPage(Template template, WebInterface webInterface, PostVisibilityFilter postVisibilityFilter) { - super("index.html", template, "Page.Index.Title", webInterface, true); - this.postVisibilityFilter = postVisibilityFilter; - } - - // - // TEMPLATEPAGE METHODS - // - - /** - * {@inheritDoc} - */ - @Override - protected void handleRequest(FreenetRequest request, TemplateContext templateContext) throws RedirectException { - final Sone currentSone = getCurrentSone(request.getToadletContext()); - Collection allPosts = new ArrayList(); - allPosts.addAll(currentSone.getPosts()); - for (String friendSoneId : currentSone.getFriends()) { - Optional friendSone = webInterface.getCore().getSone(friendSoneId); - if (!friendSone.isPresent()) { - continue; - } - allPosts.addAll(friendSone.get().getPosts()); - } - for (Sone sone : webInterface.getCore().getSones()) { - for (Post post : sone.getPosts()) { - if (currentSone.equals(post.getRecipient().orNull()) && !allPosts.contains(post)) { - allPosts.add(post); - } - } - } - allPosts = Collections2.filter(allPosts, postVisibilityFilter.isVisible(currentSone)); - List sortedPosts = new ArrayList(allPosts); - Collections.sort(sortedPosts, Post.NEWEST_FIRST); - Pagination pagination = new Pagination(sortedPosts, webInterface.getCore().getPreferences().getPostsPerPage()).setPage(parseInt(request.getHttpRequest().getParam("page"), 0)); - templateContext.set("pagination", pagination); - templateContext.set("posts", pagination.getItems()); - } - -}