From d58fa954b9c2a0e5c9d5ce08daabe8eb0361b127 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Wed, 28 Jul 2021 21:19:02 +0200 Subject: [PATCH] Several small things for the related info step. --- .../java/org/librecms/assets/BinaryAsset.java | 2 +- .../relatedinfo/ItemAttachmentDto.java | 23 +- .../relatedinfo/RelatedInfoStep.java | 47 +- .../relatedinfo/RelatedInfoStepModel.java | 5 + .../documents/asset-not-found.xhtml | 2 +- .../documents/relatedinfo.xhtml | 546 ++---------------- .../ui/DefaultAuthoringStepsBundle.properties | 7 + .../DefaultAuthoringStepsBundle_de.properties | 7 + 8 files changed, 131 insertions(+), 508 deletions(-) diff --git a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java index 03b77204d..306dd770a 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java +++ b/ccm-cms/src/main/java/org/librecms/assets/BinaryAsset.java @@ -86,7 +86,7 @@ public class BinaryAsset extends Asset implements Serializable { @Column(name = "ASSET_DATA") @Lob @Basic(fetch = FetchType.LAZY) -// @NotAudited + @NotAudited // Workaround until bug in Hibernate is resolved: https://hibernate.atlassian.net/browse/HHH-14725 private Blob data; @Column(name = "DATA_SIZE") diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/ItemAttachmentDto.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/ItemAttachmentDto.java index 2a4c17e6d..50b60cac5 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/ItemAttachmentDto.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/ItemAttachmentDto.java @@ -45,9 +45,14 @@ public class ItemAttachmentDto { private long sortKey; /** - * The type of the asset of the attachment. + * The name of the asset type. */ private String assetType; + + /** + * Label for the type of the asset of the attachment. + */ + private String assetTypeLabel; /** * The UUID of the attachment asset. @@ -91,12 +96,12 @@ public class ItemAttachmentDto { this.sortKey = sortKey; } - public String getAssetType() { - return assetType; + public String getAssetTypeLabel() { + return assetTypeLabel; } - public void setAssetType(final String assetType) { - this.assetType = assetType; + public void setAssetTypeLabel(final String assetTypeLabel) { + this.assetTypeLabel = assetTypeLabel; } public String getTitle() { @@ -122,5 +127,13 @@ public class ItemAttachmentDto { public void setAssetUuid(final String assetUuid) { this.assetUuid = assetUuid; } + + public String getAssetType() { + return assetType; + } + + public void setAssetType(final String assetType) { + this.assetType = assetType; + } } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java index bf5cc1301..d80f59372 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java @@ -27,7 +27,6 @@ import org.libreccm.security.PermissionChecker; import org.libreccm.ui.BaseUrl; import org.librecms.assets.AssetTypesManager; import org.librecms.assets.Bookmark; -import org.librecms.assets.FileAsset; import org.librecms.assets.RelatedLink; import org.librecms.contentsection.Asset; import org.librecms.contentsection.AssetManager; @@ -138,9 +137,6 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { @Inject private AttachmentListRepository listRepo; - @Inject - private BaseUrl baseUrl; - @Inject private DocumentUi documentUi; @@ -895,7 +891,8 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { * @param documentPath * @param listIdentifierParam The identifier of the list to which the * attachment is added. - * @param assetUuid The asset to use for the attachment. + * @param assetIdentifier The identifier of the asset to use for the + * attachment. * * @return A redirect to the list of attachment lists and attachments. */ @@ -909,8 +906,8 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { final String documentPath, @PathParam("attachmentListIdentifier") final String listIdentifierParam, - @FormParam("assetUuid") - final String assetUuid + @FormParam("assetIdentifier") + final String assetIdentifierParam ) { try { init(); @@ -931,11 +928,35 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { } final AttachmentList list = listResult.get(); - final Optional assetResult = assetRepo.findByUuid(assetUuid); + final Optional assetResult; + final Identifier assetIdentifier = identifierParser.parseIdentifier( + assetIdentifierParam + ); + switch (assetIdentifier.getType()) { + case ID: + assetResult = assetRepo.findById( + Long.parseLong( + assetIdentifier.getIdentifier() + ) + ); + break; + case UUID: + assetResult = assetRepo.findByUuid( + assetIdentifier.getIdentifier() + ); + break; + default: + assetResult = assetRepo.findByPath( + getContentSection(), + assetIdentifier.getIdentifier() + ); + break; + } + if (!assetResult.isPresent()) { models .put("section", getContentSection().getLabel()); - models.put("assetUuid", assetUuid); + models.put("assetUuid", assetIdentifierParam); return "org/librecms/ui/contentsection/documents/asset-not-found.xhtml"; } @@ -2148,6 +2169,14 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { ) { final ItemAttachmentDto dto = new ItemAttachmentDto(); dto.setAssetType( + Optional + .ofNullable(itemAttachment.getAsset()) + .map(Asset::getClass) + .map(clazz -> assetTypesManager.getAssetTypeInfo(clazz)) + .map(info -> info.getAssetClass().getName()) + .orElse("") + ); + dto.setAssetTypeLabel( Optional .ofNullable(itemAttachment.getAsset()) .map(Asset::getClass) diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStepModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStepModel.java index f9e9db48b..872a96831 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStepModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStepModel.java @@ -19,6 +19,7 @@ package org.librecms.ui.contentsections.documents.relatedinfo; import org.librecms.assets.FileAsset; +import org.librecms.assets.RelatedLink; import org.librecms.contentsection.AttachmentList; import java.util.ArrayList; @@ -87,4 +88,8 @@ public class RelatedInfoStepModel { this.sectionName = sectionName; } + public String getRelatedLinkType() { + return RelatedLink.class.getName(); + } + } diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/asset-not-found.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/asset-not-found.xhtml index c5cc43717..ec8574caa 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/asset-not-found.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/asset-not-found.xhtml @@ -12,7 +12,7 @@ diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml index 399d1c4d8..fc87f0984 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml @@ -1,6 +1,7 @@ ]> @@ -83,271 +84,6 @@ - -
-
- #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.edit.button']}" - - - #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.link.add.label']} - - - - - #{CmsDefaultStepsMessageBundle['relatedinfo.attachments.edit.button']}" - -