Alfresco tech talk live share extensibility metadata and actions for 4.1

Post on 08-May-2015

3.045 views 3 download

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

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