You configure new evaluators via a web-extension/custom-slingshot-*-context.xml file, taking the form of bean definitions.
You can use any of the out-of-the-box evaluators as parents to template from. For example:
<bean id="evaluator.doclib.metadata.hasExposure"
parent="evaluator.doclib.action.propertyNotNull">
<property name="property" value="exif:exposureTime"/>
</bean>
Client-side dependencies are specified in the share-config-custom.xml file using the DocLibCustom config section.
<config evaluator="string-compare" condition="DocLibCustom">
<dependencies>
<js src="/custom/exif.js" />
</dependencies>
</config>
Extra status indicators are configured in the following way via the share-config-custom.xml file.
<config evaluator="string-compare" condition="DocumentLibrary">
<indicator id="my-custom"index="10">
<evaluator>evaluator.doclib.indicator.myCustomEvaluator</evaluator>
<labelParam index="0">{jsNode.properties.owner.displayName}</labelParam>
</indicator>
</config>
Custom metadata templates are also specified in the share-config-custom.xml file, in the DocumentLibrary config section.
<config evaluator="string-compare" condition="DocumentLibrary">
<metadata-templates>
<!-- Photos -->
<template id="isPhoto">
<evaluator>evaluator.doclib.metadata.hasExif</evaluator>
<line index="10" id="date" view="detailed">{date}{size}</line>
<line index="20" id="exposure" evaluator="evaluator.doclib.metadata.hasExposure">
{exposure exif.label.exposure}
</line>
<line index="30" id="description" view="detailed">{description}</line>
<line index="40" id="social" view="detailed">{social}</line>
</template>
</metadata-templates></config>
New actions can be specified within the share-config-custom.xml file as follows.
<config evaluator="string-compare" condition="DocLibActions">
<actions>
<action id="document-preview-webasset" type="javascript"
label="actions.wcmqs.preview-webasset">
<param name="function">onActionPreviewWebAsset</param>
<evaluator>wcmqs.evaluator.doclib.action.isPreviewable</evaluator>
</action>
</actions>
</config>
An action may be disabled across the whole application using the following configuration in a share-config-custom.xml file. For example the following config removes the "Upload New Version" action from users.
<config evaluator="string-compare" condition="DocLibActions">
<actions>
<action id="document-upload-new-version">
<evaluator>evaluator.doclib.action.disableAction</evaluator>
</action>
</actions>
</config>
Add an evaluator, used on an out-of-the-box action:
<config evaluator="string-compare" condition="DocLibActions">
<actions>
<action id="document-publish">
<evaluator negate="true">
wcmqs.evaluator.doclib.action.isWebsiteContainerType
</evaluator>
</action>
</actions>
</config>