X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FCreateAlbumPage.java;h=561878c7a63fedd297f63e5d6646f7f5e1d34354;hb=2e03e9dddbea4b81aacaf1aa316f5c3ccffd4bf9;hp=7b51fb59f6c7b1f1e6fb18d048db6860c5a9414e;hpb=33f333b35a73d3d4a4e79f41e9dd7b342db87b1a;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/CreateAlbumPage.java b/src/main/java/net/pterodactylus/sone/web/CreateAlbumPage.java index 7b51fb5..561878c 100644 --- a/src/main/java/net/pterodactylus/sone/web/CreateAlbumPage.java +++ b/src/main/java/net/pterodactylus/sone/web/CreateAlbumPage.java @@ -1,5 +1,5 @@ /* - * Sone - CreateAlbumPage.java - Copyright © 2011 David Roden + * Sone - CreateAlbumPage.java - Copyright © 2011–2013 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 @@ -17,11 +17,15 @@ package net.pterodactylus.sone.web; +import static net.pterodactylus.sone.text.TextFilter.filter; + import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Sone; -import net.pterodactylus.sone.web.page.Page.Request.Method; +import net.pterodactylus.sone.database.AlbumBuilder; +import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; +import net.pterodactylus.util.web.Method; /** * Page that lets the user create a new album. @@ -46,11 +50,8 @@ public class CreateAlbumPage extends SoneTemplatePage { // SONETEMPLATEPAGE METHODS // - /** - * {@inheritDoc} - */ @Override - protected void processTemplate(Request request, TemplateContext templateContext) throws RedirectException { + protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { super.processTemplate(request, templateContext); if (request.getMethod() == Method.POST) { String name = request.getHttpRequest().getPartAsStringFailsafe("name", 64).trim(); @@ -58,13 +59,23 @@ public class CreateAlbumPage extends SoneTemplatePage { templateContext.set("nameMissing", true); return; } - Sone currentSone = getCurrentSone(request.getToadletContext()); - String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", 36); - Album parent = webInterface.getCore().getAlbum(parentId, false); - Album album = webInterface.getCore().createAlbum(currentSone, parent); - album.setName(name); + Album album = createAlbum(request, name); + webInterface.getCore().touchConfiguration(); throw new RedirectException("imageBrowser.html?album=" + album.getId()); } } + private Album createAlbum(FreenetRequest request, String name) { + Sone currentSone = getCurrentSone(request.getToadletContext()); + String parentId = request.getHttpRequest().getPartAsStringFailsafe("parent", 36); + AlbumBuilder albumBuilder = parentId.equals("") ? currentSone.newAlbumBuilder() : webInterface.getCore().getAlbum(parentId).get().newAlbumBuilder(); + Album album = albumBuilder.build(); + return setTitleAndDescription(request, name, album); + } + + private Album setTitleAndDescription(FreenetRequest request, String name, Album album) { + String description = request.getHttpRequest().getPartAsStringFailsafe("description", 256).trim(); + return album.modify().setTitle(name).setDescription(filter(request.getHttpRequest().getHeader("host"), description)).update(); + } + }