2. Objectives
• Extend Share without deep knowledge of
how Share is built
• Avoid copy-paste of existing code
• Simplify ungraded – avoid diff/merge
• Easier Deployment
4. Custom Metadata Display
• Control the metadata that is displayed in
the Document List
o e.g. Title, Status, EXIF Props etc
• Supports OOTB and custom model
properties
• Config driven, no coding required
o Optional Label
o Property only displayed if present on node
o Can use client-side JS for advanced rendering
7. Example Metadata Template
• Config: shared/classes/alfresco/web-extension/
share-config-custom.xml
• Template ID: exif
• Add line index 60 – exif_model with label
• Evaluator
o Reusing evaluator.doclib.indicator.exifMetadata from the core
8. Document Library Actions
• Simplified & consolidated config for actions
available on the DocLib, DocDetails and
FolderDetails pages
• Single Configuration File for OOTB Actions
o share-documentlibrary-config.xml
• Can be overridden via extensions
o Add New, Remove Existing, Change Order of UI Actions
o share-config-custom.xml
• Actions Groups and Actions
o Similar approach to Explorer
9. Out-of-the-Box Actions & ActionGroups
• Like metadata, OOTB Actions defined in:
o share/WEB-INF/classes/alfresco/share-documentlibrary-config.xml
• <actions> section defines the individual actions
• <actionGroups> defines where and the order in
which they appear
o Note: Action must be in an ActionGroup to appear
• Extend/Override in share-config-custom.xml i.e.:
o shared/classes/alfresco/web-extensions/share-config-custom.xml
o No need to copy full OOTB Action/ActionGroup definitions
10. Example: Removing Existing Actions
• share-config-custom.xml Config applies to DocLibActions
Start Workflow Action ID
disableAction Evaluator
Upload New Version Action ID
After:
Before:
11. Adding New Actions
• Configuration only, no coding required
• 2 types of action: Simple and Advanced
• Simple Action: No user input (i.e. dialog)
o e.g. Extract Metadata
o Returns success or failure message
• Advanced Action: User provides parameters for
action
o e.g. Transform – Need to select target format and output location
o Uses Forms service define dialogs
• see share-form-config.xml for OOTB definitions
o Can plug in your own actions and forms
• Can be used to execute the OOTB Actions or your
own custom actions
12. Example New Action: Import ACP/ZIP
• share-config-custom.xml Action Definition
Form Definition
- Select destination for extracted files
13. Controlling when actions are available
• Evaluators
o Control display of actions based on context e.g.
• Type, Aspect, Property, Site, Mimetype etc
• Can use OOTB evaluators or define your
own
• Chain them together, all need to evaluate
to true
• See slingshot-documentlibrary-context.xml
for OOTB evaluators
14. Action Types
• Three main action types:
o “link” – external link or link to content
o “pagelink” – to another Share page (e.g. details)
o “javascript” – client-side action
• onActionSimpleRepoAction
e.g. Simple Workflow approve/reject
• onActionFormDialog
e.g. Transform (to image), Run Action
15. Example: Mimetype Evaluator
• Only show Import for ACP/ZIP files
o share-config-custom.xml
o custom-slingshot-context.xml
16. Further Reading
• Mike Hatfield's blog: Share Document
Library Extensions in v4.0:
http://blogs.alfresco.com/wp/developer/2011/09/26/share-document-
library-extensions-in-v4-0/
• Forms:
http://wiki.alfresco.com/wiki/Forms
• Forms Developer Kit:
http://wiki.alfresco.com/wiki/Forms_Development_Kit#Form_Console
• Custom Models:
http://wiki.alfresco.com/wiki/
Data_Dictionary_Guide#Step_by_Step_Model_Definition