Audio and Video Asset bugfixes
parent
0f44e9d70c
commit
719d386410
|
|
@ -49,6 +49,7 @@ import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.mvc.Controller;
|
import javax.mvc.Controller;
|
||||||
import javax.mvc.Models;
|
import javax.mvc.Models;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.FormParam;
|
import javax.ws.rs.FormParam;
|
||||||
|
|
@ -56,6 +57,7 @@ import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.MultivaluedMap;
|
import javax.ws.rs.core.MultivaluedMap;
|
||||||
|
|
||||||
|
|
@ -78,6 +80,9 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
AudioAssetEditStep.class
|
AudioAssetEditStep.class
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@Context
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private AssetStepsDefaultMessagesBundle messageBundle;
|
private AssetStepsDefaultMessagesBundle messageBundle;
|
||||||
|
|
||||||
|
|
@ -116,7 +121,7 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
if (getAsset() instanceof AudioAsset) {
|
if (getAsset() instanceof AudioAsset) {
|
||||||
editStepModel.setDescriptionValues(
|
editStepModel.setDescriptionValues(
|
||||||
getAudioAsset()
|
getAudioAsset()
|
||||||
.getDescription()
|
.getDescription()
|
||||||
.getValues()
|
.getValues()
|
||||||
|
|
@ -169,6 +174,17 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
|
|
||||||
editStepModel.setLegalMetadata(getAudioAsset().getLegalMetadata());
|
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 {
|
} else {
|
||||||
throw new AssetNotFoundException(
|
throw new AssetNotFoundException(
|
||||||
assetUi.showAssetNotFound(
|
assetUi.showAssetNotFound(
|
||||||
|
|
@ -183,7 +199,7 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/")
|
@Path("/")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -212,7 +228,7 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/description/add")
|
@Path("/description/add")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -319,7 +335,7 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/legalmetadata")
|
@Path("/legalmetadata")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -458,12 +474,11 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public AudioAsset getAudioAsset() {
|
public AudioAsset getAudioAsset() {
|
||||||
return (AudioAsset) getAsset();
|
return (AudioAsset) getAsset();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getFileName(final MultivaluedMap<String, String> headers) {
|
private String getFileName(final MultivaluedMap<String, String> headers) {
|
||||||
final String[] contentDisposition = headers
|
final String[] contentDisposition = headers
|
||||||
.getFirst("Content-Disposition")
|
.getFirst("Content-Disposition")
|
||||||
.split(";");
|
.split(";");
|
||||||
|
|
@ -485,4 +500,21 @@ public class AudioAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
return headers.getFirst("Content-Type");
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ import javax.inject.Named;
|
||||||
@Named("CmsAudioAssetEditStepModel")
|
@Named("CmsAudioAssetEditStepModel")
|
||||||
public class AudioAssetEditStepModel {
|
public class AudioAssetEditStepModel {
|
||||||
|
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
private Map<String, String> descriptionValues;
|
private Map<String, String> descriptionValues;
|
||||||
|
|
||||||
private List<String> unusedDescriptionLocales;
|
private List<String> unusedDescriptionLocales;
|
||||||
|
|
@ -51,6 +53,14 @@ public class AudioAssetEditStepModel {
|
||||||
|
|
||||||
private LegalMetadata legalMetadata;
|
private LegalMetadata legalMetadata;
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBaseUrl(final String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, String> getDescriptionValues() {
|
public Map<String, String> getDescriptionValues() {
|
||||||
return Collections.unmodifiableMap(descriptionValues);
|
return Collections.unmodifiableMap(descriptionValues);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.mvc.Controller;
|
import javax.mvc.Controller;
|
||||||
import javax.mvc.Models;
|
import javax.mvc.Models;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import javax.ws.rs.Consumes;
|
import javax.ws.rs.Consumes;
|
||||||
import javax.ws.rs.FormParam;
|
import javax.ws.rs.FormParam;
|
||||||
|
|
@ -56,6 +57,7 @@ import javax.ws.rs.GET;
|
||||||
import javax.ws.rs.POST;
|
import javax.ws.rs.POST;
|
||||||
import javax.ws.rs.Path;
|
import javax.ws.rs.Path;
|
||||||
import javax.ws.rs.PathParam;
|
import javax.ws.rs.PathParam;
|
||||||
|
import javax.ws.rs.core.Context;
|
||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
import javax.ws.rs.core.MultivaluedMap;
|
import javax.ws.rs.core.MultivaluedMap;
|
||||||
|
|
||||||
|
|
@ -74,9 +76,13 @@ import javax.ws.rs.core.MultivaluedMap;
|
||||||
)
|
)
|
||||||
public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
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
|
@Inject
|
||||||
private AssetStepsDefaultMessagesBundle messageBundle;
|
private AssetStepsDefaultMessagesBundle messageBundle;
|
||||||
|
|
||||||
|
|
@ -115,7 +121,7 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
if (getAsset() instanceof VideoAsset) {
|
if (getAsset() instanceof VideoAsset) {
|
||||||
editStepModel.setDescriptionValues(
|
editStepModel.setDescriptionValues(
|
||||||
getVideoAsset()
|
getVideoAsset()
|
||||||
.getDescription()
|
.getDescription()
|
||||||
.getValues()
|
.getValues()
|
||||||
|
|
@ -168,6 +174,17 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
|
|
||||||
editStepModel.setLegalMetadata(getVideoAsset().getLegalMetadata());
|
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 {
|
} else {
|
||||||
throw new AssetNotFoundException(
|
throw new AssetNotFoundException(
|
||||||
assetUi.showAssetNotFound(
|
assetUi.showAssetNotFound(
|
||||||
|
|
@ -182,7 +199,7 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/")
|
@Path("/")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -211,7 +228,7 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/description/add")
|
@Path("/description/add")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -318,7 +335,7 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@POST
|
@POST
|
||||||
@Path("/legalmetadata")
|
@Path("/legalmetadata")
|
||||||
@AuthorizationRequired
|
@AuthorizationRequired
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
|
@ -457,12 +474,11 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public VideoAsset getVideoAsset() {
|
public VideoAsset getVideoAsset() {
|
||||||
return (VideoAsset) getAsset();
|
return (VideoAsset) getAsset();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getFileName(final MultivaluedMap<String, String> headers) {
|
private String getFileName(final MultivaluedMap<String, String> headers) {
|
||||||
final String[] contentDisposition = headers
|
final String[] contentDisposition = headers
|
||||||
.getFirst("Content-Disposition")
|
.getFirst("Content-Disposition")
|
||||||
.split(";");
|
.split(";");
|
||||||
|
|
@ -484,4 +500,21 @@ public class VideoAssetEditStep extends AbstractMvcAssetEditStep {
|
||||||
return headers.getFirst("Content-Type");
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ import javax.inject.Named;
|
||||||
@Named("CmsVideoAssetEditStepModel")
|
@Named("CmsVideoAssetEditStepModel")
|
||||||
public class VideoAssetEditStepModel {
|
public class VideoAssetEditStepModel {
|
||||||
|
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
private Map<String, String> descriptionValues;
|
private Map<String, String> descriptionValues;
|
||||||
|
|
||||||
private List<String> unusedDescriptionLocales;
|
private List<String> unusedDescriptionLocales;
|
||||||
|
|
@ -51,6 +53,14 @@ public class VideoAssetEditStepModel {
|
||||||
|
|
||||||
private LegalMetadata legalMetadata;
|
private LegalMetadata legalMetadata;
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setBaseUrl(final String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, String> getDescriptionValues() {
|
public Map<String, String> getDescriptionValues() {
|
||||||
return Collections.unmodifiableMap(descriptionValues);
|
return Collections.unmodifiableMap(descriptionValues);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,8 @@
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="#{CmsAudioAssetEditStepModel.dataAvailable}">
|
<c:when test="#{CmsAudioAssetEditStepModel.dataAvailable}">
|
||||||
<audio controls="controls"
|
<audio class="mt-3"
|
||||||
|
controls="controls"
|
||||||
src="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@audioasset-edit-download">
|
src="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@audioasset-edit-download">
|
||||||
</audio>
|
</audio>
|
||||||
<dl>
|
<dl>
|
||||||
|
|
@ -136,6 +137,16 @@
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
||||||
<h3>#{CmsAssetsStepsDefaultMessagesBundle['audioasset.editstep.legalmetadata.title']}</h3>
|
<h3>#{CmsAssetsStepsDefaultMessagesBundle['audioasset.editstep.legalmetadata.title']}</h3>
|
||||||
|
|
||||||
|
<librecms:assetPicker
|
||||||
|
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@audioasset-edit/legalmetadata"
|
||||||
|
assetType="#{CmsAudioAssetEditStepModel.legalMetadataType}"
|
||||||
|
assetPickerId="legalmetadata-picker"
|
||||||
|
baseUrl="#{CmsAudioAssetEditStepModel.baseUrl}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
formParamName="legalMetadataIdentifier"
|
||||||
|
/>
|
||||||
|
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="#{CmsAudioAssetEditStepModel.legalMetadata == null}">
|
<c:when test="#{CmsAudioAssetEditStepModel.legalMetadata == null}">
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
|
|
|
||||||
|
|
@ -139,14 +139,14 @@
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
||||||
<h3>#{CmsAssetsStepsDefaultMessagesBundle['image.editstep.legalmetadata.title']}</h3>
|
<h3>#{CmsAssetsStepsDefaultMessagesBundle['image.editstep.legalmetadata.title']}</h3>
|
||||||
|
|
||||||
<librecms:assetPicker
|
<librecms:assetPicker
|
||||||
actionUrl="#{actionBaseUrl}/legalmetadata"
|
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@image-edit/legalmetadata"
|
||||||
assetType="#{CmsImageEditStepModel.legalMetadataType}"
|
assetType="#{CmsImageEditStepModel.legalMetadataType}"
|
||||||
assetPickerId="legalmetadata-picker"
|
assetPickerId="legalmetadata-picker"
|
||||||
baseUrl="#{CmsImageEditStepModel.baseUrl}"
|
baseUrl="#{CmsImageEditStepModel.baseUrl}"
|
||||||
contentSection="#{ContentSectionModel.sectionName}"
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
formParamName="legalMetadataIdentifier"
|
formParamName="legalMetadataIdentifier"
|
||||||
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<c:choose>
|
<c:choose>
|
||||||
|
|
|
||||||
|
|
@ -110,9 +110,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="#{CmsVideoAssetEditStepModel.dataAvailable}">
|
<c:when test="#{CmsVideoAssetEditStepModel.dataAvailable}">
|
||||||
<video controls="controls"
|
<video class="mt-3"
|
||||||
|
controls="controls"
|
||||||
src="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@videoasset-edit-download"
|
src="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@videoasset-edit-download"
|
||||||
width="320">
|
width="320">
|
||||||
</video>
|
</video>
|
||||||
|
|
@ -137,6 +138,16 @@
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
||||||
<h3>#{CmsAssetsStepsDefaultMessagesBundle['videoasset.editstep.legalmetadata.title']}</h3>
|
<h3>#{CmsAssetsStepsDefaultMessagesBundle['videoasset.editstep.legalmetadata.title']}</h3>
|
||||||
|
|
||||||
|
<librecms:assetPicker
|
||||||
|
actionUrl="#{mvc.basePath}/#{ContentSectionModel.sectionName}/assets/#{CmsSelectedAssetModel.assetPath}/@videoasset-edit/legalmetadata"
|
||||||
|
assetType="#{CmsVideoAssetEditStepModel.legalMetadataType}"
|
||||||
|
assetPickerId="legalmetadata-picker"
|
||||||
|
baseUrl="#{CmsVideoAssetEditStepModel.baseUrl}"
|
||||||
|
contentSection="#{ContentSectionModel.sectionName}"
|
||||||
|
formParamName="legalMetadataIdentifier"
|
||||||
|
/>
|
||||||
|
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="#{CmsVideoAssetEditStepModel.legalMetadata == null}">
|
<c:when test="#{CmsVideoAssetEditStepModel.legalMetadata == null}">
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue