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!