diff --git a/ccm-cms/src/main/java/org/librecms/assets/ImageService.java b/ccm-cms/src/main/java/org/librecms/assets/ImageService.java
index eb177061e..a4956840f 100644
--- a/ccm-cms/src/main/java/org/librecms/assets/ImageService.java
+++ b/ccm-cms/src/main/java/org/librecms/assets/ImageService.java
@@ -89,11 +89,12 @@ public class ImageService {
imageReader = readers.next();
} else {
LOGGER.error(
- "No image reader suitable image reader available");
+ "No suitable image reader available"
+ );
throw new UnexpectedErrorException();
}
imageReader.setInput(imageInputStream);
- bufferedImage = imageReader.read(0);
+ bufferedImage = imageReader.read(imageReader.getMinIndex());
imageFormat = imageReader.getFormatName();
} catch (IOException ex) {
LOGGER.error("Failed to load image.");
diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageCreateStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageCreateStep.java
index 4ebc3a880..4c8353857 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageCreateStep.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageCreateStep.java
@@ -35,7 +35,7 @@ import javax.inject.Named;
* @author Jens Pelzetter
*/
@RequestScoped
-@Named("CmsImageCreatStep")
+@Named("CmsImageCreateStep")
public class ImageCreateStep extends AbstractMvcAssetCreateStep {
@Inject
diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStep.java
index 390ca9e7b..0d9bd8b10 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStep.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStep.java
@@ -49,6 +49,7 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.mvc.Controller;
import javax.mvc.Models;
+import javax.servlet.http.HttpServletRequest;
import javax.transaction.Transactional;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
@@ -56,6 +57,7 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
@@ -78,6 +80,9 @@ public class ImageEditStep extends AbstractMvcAssetEditStep {
ImageEditStep.class
);
+ @Context
+ private HttpServletRequest request;
+
@Inject
private AssetStepsDefaultMessagesBundle messageBundle;
@@ -95,7 +100,7 @@ public class ImageEditStep extends AbstractMvcAssetEditStep {
@Inject
private IdentifierParser identifierParser;
-
+
@Inject
private AssetPermissionsChecker assetPermissionsChecker;
@@ -169,8 +174,19 @@ public class ImageEditStep extends AbstractMvcAssetEditStep {
editStepModel.setHeight(getImage().getHeight());
editStepModel.setWidth(getImage().getWidth());
-
+
editStepModel.setLegalMetadata(getImage().getLegalMetadata());
+
+ final StringBuilder baseUrlBuilder = new StringBuilder();
+ editStepModel.setBaseUrl(
+ baseUrlBuilder
+ .append(request.getScheme())
+ .append("://")
+ .append(request.getServerName())
+ .append(addServerPortToBaseUrl())
+ .append(addContextPathToBaseUrl())
+ .toString()
+ );
} else {
throw new AssetNotFoundException(
assetUi.showAssetNotFound(
@@ -320,8 +336,8 @@ public class ImageEditStep extends AbstractMvcAssetEditStep {
messageBundle.get("asset.edit.denied"));
}
}
-
- @POST
+
+ @POST
@Path("/legalmetadata")
@AuthorizationRequired
@Transactional(Transactional.TxType.REQUIRED)
@@ -486,4 +502,21 @@ public class ImageEditStep extends AbstractMvcAssetEditStep {
return headers.getFirst("Content-Type");
}
+ private String addServerPortToBaseUrl() {
+ if (request.getServerPort() == 80 || request.getServerPort() == 443) {
+ return "";
+ } else {
+ return String.format(":%d", request.getServerPort());
+ }
+ }
+
+ private String addContextPathToBaseUrl() {
+ if (request.getServletContext().getContextPath() == null
+ || request.getServletContext().getContextPath().isEmpty()) {
+ return "/";
+ } else {
+ return request.getServletContext().getContextPath();
+ }
+ }
+
}
diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStepModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStepModel.java
index db3d23ebf..8469c3f55 100644
--- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStepModel.java
+++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/ImageEditStepModel.java
@@ -37,6 +37,8 @@ import javax.inject.Named;
@Named("CmsImageEditStepModel")
public class ImageEditStepModel {
+ private String baseUrl;
+
private Map descriptionValues;
private List unusedDescriptionLocales;
@@ -55,6 +57,14 @@ public class ImageEditStepModel {
private LegalMetadata legalMetadata;
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+ protected void setBaseUrl(final String baseUrl) {
+ this.baseUrl = baseUrl;
+ }
+
public Map getDescriptionValues() {
return Collections.unmodifiableMap(descriptionValues);
}
diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/image/edit-image.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/image/edit-image.xhtml
index 09940a2c3..6096ec2ac 100644
--- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/image/edit-image.xhtml
+++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/image/edit-image.xhtml
@@ -139,6 +139,16 @@
#{CmsAssetsStepsDefaultMessagesBundle['image.editstep.legalmetadata.title']}
+
+