Move methods to move an image up and down to Image.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / EditImagePage.java
index 7e9eb7e..c9bd705 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * FreenetSone - WebInterface.java - Copyright © 2010 David Roden
+ * Sone - EditImagePage.java - Copyright © 2010–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
 package net.pterodactylus.sone.web;
 
 import net.pterodactylus.sone.data.Image;
+import net.pterodactylus.sone.text.TextFilter;
 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;
 
+import com.google.common.base.Optional;
+
 /**
  * Page that lets the user edit title and description of an {@link Image}.
  *
@@ -55,25 +58,24 @@ public class EditImagePage extends SoneTemplatePage {
                if (request.getMethod() == Method.POST) {
                        String imageId = request.getHttpRequest().getPartAsStringFailsafe("image", 36);
                        String returnPage = request.getHttpRequest().getPartAsStringFailsafe("returnPage", 256);
-                       Image image = webInterface.getCore().getImage(imageId, false);
-                       if (image == null) {
+                       Optional<Image> image = webInterface.getCore().getImage(imageId);
+                       if (!image.isPresent()) {
                                throw new RedirectException("invalid.html");
                        }
-                       if (!webInterface.getCore().isLocalSone(image.getSone())) {
+                       if (!image.get().getSone().isLocal()) {
                                throw new RedirectException("noPermission.html");
                        }
                        if ("true".equals(request.getHttpRequest().getPartAsStringFailsafe("moveLeft", 4))) {
-                               image.getAlbum().moveImageUp(image);
-                       } else  if ("true".equals(request.getHttpRequest().getPartAsStringFailsafe("moveRight", 4))) {
-                               image.getAlbum().moveImageDown(image);
+                               image.get().moveUp();
+                       } else if ("true".equals(request.getHttpRequest().getPartAsStringFailsafe("moveRight", 4))) {
+                               image.get().moveDown();
                        } else {
                                String title = request.getHttpRequest().getPartAsStringFailsafe("title", 100).trim();
                                String description = request.getHttpRequest().getPartAsStringFailsafe("description", 1024).trim();
                                if (title.length() == 0) {
                                        templateContext.set("titleMissing", true);
                                }
-                               image.setTitle(title);
-                               image.setDescription(description);
+                               image.get().modify().setTitle(title).setDescription(TextFilter.filter(request.getHttpRequest().getHeader("host"), description)).update();
                        }
                        webInterface.getCore().touchConfiguration();
                        throw new RedirectException(returnPage);