Alfresco tech talk live share extensibility metadata and actions for 4.1

16
Alfresco Share 4.1 Custom Metadata and Actions Mike Farman

description

Slide deck to accompany episode 63 of Alfresco Tech Talk Live on share extensibility in Alfresco 4.1

Transcript of Alfresco tech talk live share extensibility metadata and actions for 4.1

Page 1: Alfresco tech talk live share extensibility metadata and actions for 4.1

Alfresco Share 4.1 Custom Metadata and Actions Mike Farman

Page 2: Alfresco tech talk live share extensibility metadata and actions for 4.1

Objectives

•  Extend Share without deep knowledge of how Share is built

•  Avoid copy-paste of existing code •  Simplify ungraded – avoid diff/merge •  Easier Deployment

Page 3: Alfresco tech talk live share extensibility metadata and actions for 4.1

Customizing the Document Library

• Metadata

•  Actions

… with configuration - no code

Page 4: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 5: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 6: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 7: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 8: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 9: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 10: Alfresco tech talk live share extensibility metadata and actions for 4.1

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:

Page 11: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 12: Alfresco tech talk live share extensibility metadata and actions for 4.1

Example New Action: Import ACP/ZIP

•  share-config-custom.xml Action Definition

Form Definition - Select destination for extracted files

Page 13: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 14: Alfresco tech talk live share extensibility metadata and actions for 4.1

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

Page 15: Alfresco tech talk live share extensibility metadata and actions for 4.1

Example: Mimetype Evaluator

• Only show Import for ACP/ZIP files o  share-config-custom.xml

o  custom-slingshot-context.xml

Page 16: Alfresco tech talk live share extensibility metadata and actions for 4.1

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