alfresco tech talk live share extensibility metadata and actions for 4.1
DESCRIPTION
Slide deck to accompany episode 63 of Alfresco Tech Talk Live on share extensibility in Alfresco 4.1TRANSCRIPT
Alfresco Share 4.1 Custom Metadata and Actions Mike Farman
Objectives
• Extend Share without deep knowledge of how Share is built
• Avoid copy-paste of existing code • Simplify ungraded – avoid diff/merge • Easier Deployment
Customizing the Document Library
• Metadata
• Actions
… with configuration - no code
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
Out-of-the-box Configuration
• webapps/share/WEB-INF/classes/alfresco/
share-documentlibrary-config.xml • Templates
• webapps/share/WEB-INF/classes/alfresco/
slingshot-documentlibrary-context.xml • Evaluators
Extend/Override
• shared/classes/alfresco/web-extension
share-config-custom.xml o Override existing o Add new templates
• shared/classes/alfresco/web-extension
custom-slingshot-context.xml • Custom evaluators
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
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
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
Example: Removing Existing Actions
• share-config-custom.xml Config applies to DocLibActions
Start Workflow Action ID
Upload New Version Action ID
disableAction Evaluator
Before:
After:
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
Example New Action: Import ACP/ZIP
• share-config-custom.xml Action Definition
Form Definition - Select destination for extracted files
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
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
Example: Mimetype Evaluator
• Only show Import for ACP/ZIP files o share-config-custom.xml
o custom-slingshot-context.xml
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