Skip to main content
Level 2
April 16, 2024
質問

DateTime Metadata Field not rendering on card view for AEM assets but will render elsewhere

  • April 16, 2024
  • 1 の返信
  • 530 ビュー

Hello all! 

 

Im trying to customize some metadata that displays on the card view found here (keep in mind this is overlayed already just linking the actual path)

 

/libs/dam/gui/coral/components/admin/contentrenderer/card/asset/propertyList.jsp

 

Im able to retrieve metadata using the following jsp - which renders on the card view perfectly.

 

 

 

 

<% ValueMap Metadata = Resource.getChild("jcr:content/metadata").getValueMap(); Object UsageParams = Metadata.get("xmpRights:usageParameters"); if (UsageParams != null) { if (UsageParams instanceof String[]) { String[] dummyBrands = (String[]) UsageParams; for (String dummyBrand : dummyBrands) { // Replace hyphens with spaces dummyBrand = dummyBrand.replace("-", " "); out.println(dummyBrand + "<br>"); } } else if (UsageParams instanceof String) { // Replace hyphens with spaces String dummyBrand = ((String) UsageParams).replace("-", " "); out.println(dummyBrand + "<br>"); } else { out.println("No brands represented"); } } else { out.println("No brands represented"); } %>

 

 

 

When I try to grab a custom datetime field expiration wise using this same logic (of course im aware object is not for date fields so I use calendar instead) I cant for the life of me get the date expiration field to appear. For some reason propertylist.jsp does not want to take in the custom_assetexpirationdate metadata field. 

 

I was able to successfully do this on reorder.jsp for the list view field but no matter how I apply it, still wont render. Here is the list view code where it works with date metadata

 

 

 

<%@ page import="org.apache.sling.api.resource.ValueMap" %> <%@ page import="org.apache.sling.api.resource.Resource" %> <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> <%@taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0"%> <% final String ASSET_RES_TYPE = "dam/gui/coral/components/admin/contentrenderer/row/asset"; final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Resource assetResource = resource; String eaemTitle = ""; String formattedDate = ""; String codedDate = ""; if (assetResource != null && ASSET_RES_TYPE.equals(assetResource.getResourceType())) { Resource metadataResource = assetResource.getChild("jcr:content/metadata"); if (metadataResource != null) { ValueMap vm = metadataResource.getValueMap(); eaemTitle = vm.get("custom_assetexpirationdate", ""); if (!eaemTitle.isEmpty()) { try { codedDate = eaemTitle.replaceAll("-", "").split("T")[0]; } catch (Exception e) { // do nothing } } if (!eaemTitle.isEmpty()) { try { Date date = dateFormat.parse(eaemTitle.split("T")[0]); formattedDate = dateFormat.format(date); } catch (Exception e) { // do nothing } } } } %> <% request.setAttribute("formattedDate", formattedDate); request.setAttribute("codedDate", codedDate); %>

 

 

 

Does anyone have any idea what im doing wrong here? Any guidance would be insanely helpful. Thanks! 

このトピックへの返信は締め切られました。

1 の返信

Level 2
April 19, 2024

This has been solved...

 

SimpleDate wasnt working on this propertylist.jsp I had to manually extract the values from the valuemap.