From 719d38641089f17d1f4af5072f9ebf9239ecd27f Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sat, 10 Jul 2021 17:30:50 +0200 Subject: [PATCH] Audio and Video Asset bugfixes --- .../assets/AudioAssetEditStep.java | 60 +++++++++++++----- .../assets/AudioAssetEditStepModel.java | 10 +++ .../assets/VideoAssetEditStep.java | 63 ++++++++++++++----- .../assets/VideoAssetEditStepModel.java | 10 +++ .../assets/audioasset/edit-audioasset.xhtml | 13 +++- .../assets/image/edit-image.xhtml | 4 +- .../assets/videoasset/edit-videoasset.xhtml | 17 ++++- 7 files changed, 142 insertions(+), 35 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStep.java index fa9f59ac2..be827e8ff 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStep.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 AudioAssetEditStep extends AbstractMvcAssetEditStep { AudioAssetEditStep.class ); + @Context + private HttpServletRequest request; + @Inject private AssetStepsDefaultMessagesBundle messageBundle; @@ -95,7 +100,7 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { @Inject private IdentifierParser identifierParser; - + @Inject private AssetPermissionsChecker assetPermissionsChecker; @@ -114,9 +119,9 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { protected void init() throws ContentSectionNotFoundException, AssetNotFoundException { super.init(); - + if (getAsset() instanceof AudioAsset) { - editStepModel.setDescriptionValues( + editStepModel.setDescriptionValues( getAudioAsset() .getDescription() .getValues() @@ -167,8 +172,19 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { String.format("%d GB", size / (1024 * 1024 * 1024)) ); } - + editStepModel.setLegalMetadata(getAudioAsset().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( @@ -182,8 +198,8 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { ); } } - - @GET + + @GET @Path("/") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -211,8 +227,8 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { messageBundle.get("asset.edit.denied")); } } - - @POST + + @POST @Path("/description/add") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -318,8 +334,8 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { messageBundle.get("asset.edit.denied")); } } - - @POST + + @POST @Path("/legalmetadata") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -458,12 +474,11 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep { } } - public AudioAsset getAudioAsset() { return (AudioAsset) getAsset(); } - - private String getFileName(final MultivaluedMap headers) { + + private String getFileName(final MultivaluedMap headers) { final String[] contentDisposition = headers .getFirst("Content-Disposition") .split(";"); @@ -484,5 +499,22 @@ public class AudioAssetEditStep 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/AudioAssetEditStepModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStepModel.java index 43f4db425..2b8c14039 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStepModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/AudioAssetEditStepModel.java @@ -37,6 +37,8 @@ import javax.inject.Named; @Named("CmsAudioAssetEditStepModel") public class AudioAssetEditStepModel { + private String baseUrl; + private Map descriptionValues; private List unusedDescriptionLocales; @@ -51,6 +53,14 @@ public class AudioAssetEditStepModel { 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/java/org/librecms/ui/contentsections/assets/VideoAssetEditStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStep.java index c5bb7019f..385d00907 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStep.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; @@ -74,9 +76,13 @@ import javax.ws.rs.core.MultivaluedMap; ) public class VideoAssetEditStep extends AbstractMvcAssetEditStep { - private static final Logger LOGGER = LogManager.getLogger(VideoAssetEditStep.class + private static final Logger LOGGER = LogManager.getLogger( + VideoAssetEditStep.class ); + @Context + private HttpServletRequest request; + @Inject private AssetStepsDefaultMessagesBundle messageBundle; @@ -94,7 +100,7 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { @Inject private IdentifierParser identifierParser; - + @Inject private AssetPermissionsChecker assetPermissionsChecker; @@ -113,9 +119,9 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { protected void init() throws ContentSectionNotFoundException, AssetNotFoundException { super.init(); - + if (getAsset() instanceof VideoAsset) { - editStepModel.setDescriptionValues( + editStepModel.setDescriptionValues( getVideoAsset() .getDescription() .getValues() @@ -166,8 +172,19 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { String.format("%d GB", size / (1024 * 1024 * 1024)) ); } - + editStepModel.setLegalMetadata(getVideoAsset().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( @@ -181,8 +198,8 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { ); } } - - @GET + + @GET @Path("/") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -210,8 +227,8 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { messageBundle.get("asset.edit.denied")); } } - - @POST + + @POST @Path("/description/add") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -317,8 +334,8 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { messageBundle.get("asset.edit.denied")); } } - - @POST + + @POST @Path("/legalmetadata") @AuthorizationRequired @Transactional(Transactional.TxType.REQUIRED) @@ -457,12 +474,11 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep { } } - public VideoAsset getVideoAsset() { return (VideoAsset) getAsset(); } - - private String getFileName(final MultivaluedMap headers) { + + private String getFileName(final MultivaluedMap headers) { final String[] contentDisposition = headers .getFirst("Content-Disposition") .split(";"); @@ -483,5 +499,22 @@ public class VideoAssetEditStep 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/VideoAssetEditStepModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStepModel.java index 3766ef01c..15610bea2 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStepModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/assets/VideoAssetEditStepModel.java @@ -37,6 +37,8 @@ import javax.inject.Named; @Named("CmsVideoAssetEditStepModel") public class VideoAssetEditStepModel { + private String baseUrl; + private Map descriptionValues; private List unusedDescriptionLocales; @@ -51,6 +53,14 @@ public class VideoAssetEditStepModel { 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/audioasset/edit-audioasset.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/audioasset/edit-audioasset.xhtml index a6cd7f36a..4c142b0b9 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/audioasset/edit-audioasset.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/audioasset/edit-audioasset.xhtml @@ -112,7 +112,8 @@ -
@@ -136,6 +137,16 @@

#{CmsAssetsStepsDefaultMessagesBundle['audioasset.editstep.legalmetadata.title']}

+ + +
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 41b5e592b..83f7ab14c 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,14 +139,14 @@

#{CmsAssetsStepsDefaultMessagesBundle['image.editstep.legalmetadata.title']}

+ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/videoasset/edit-videoasset.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/videoasset/edit-videoasset.xhtml index 26cf1c9b8..2a0b24d0a 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/videoasset/edit-videoasset.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/assets/videoasset/edit-videoasset.xhtml @@ -110,9 +110,10 @@
- + - @@ -135,8 +136,18 @@

#{CmsAssetsStepsDefaultMessagesBundle['videoasset.editstep.file.none']}

- +

#{CmsAssetsStepsDefaultMessagesBundle['videoasset.editstep.legalmetadata.title']}

+ + +