DateTime Metadata Field not rendering on card view for AEM assets but will render elsewhere | Community
Skip to main content
Level 2
April 16, 2024
Question

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

  • April 16, 2024
  • 1 reply
  • 523 views

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! 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

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.