Top Banner
Forms Config, Customization, & Extension Gavin Cornwell, Development Manager, Services Team, Alfresco
36

Forms config and customisation

Jan 22, 2017

Download

Software

Gavin Cornwell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Forms config and customisation

Forms Config, Customization, & Extension!

Gavin Cornwell, Development Manager, Services Team, Alfresco!

Page 2: Forms config and customisation

Agenda!

•  Where Forms Are Used •  Demo •  Configuration •  Customization •  Extension •  Q & A

Page 3: Forms config and customisation

Where Forms Are Used!

Page 4: Forms config and customisation

Metadata !

Page 5: Forms config and customisation

Advanced Search!

Page 6: Forms config and customisation

Workflow !

Page 7: Forms config and customisation

Datalists !

Page 8: Forms config and customisation

Actions (4.0)!

Page 9: Forms config and customisation

Admin Console (4.0)!

Page 10: Forms config and customisation

Demo!

•  Custom Type •  Custom Control •  Advanced Search •  FDK • startLocation!• Custom “foldername” NodeLocator!

• Built-in NodeLocators; ancestor, doclib, userhome!

• Unit Test Page!

Page 11: Forms config and customisation

Configuration!

Page 12: Forms config and customisation

Global Defaults – form-config.xml <config> <forms> <default-controls> ... </default-controls> <constraint-handlers> ... </constraint-handlers> <dependencies> ... </dependencies> </forms> </config>

Page 13: Forms config and customisation

Default Controls!<default-controls> <type name="text” template="/org.../textfield.ftl" />

<type name=”datetime” template="/org.../date.ftl”> <control-param name="showTime”> true </control-param> </type> ... </default-controls>

Page 14: Forms config and customisation

Default Constraint Handlers!<constraint-handlers> … <constraint type="MANDATORY” validation-handler="...mandatory” event="keyup" />

<constraint type="NUMBER” validation-handler=”...number” event="keyup" /> ... </constraint-handlers>

Page 15: Forms config and customisation

Dependencies!<dependencies> <css src=” /accordion/accordion.css" /> <js src=“/accordion/accordion-min.js" /> ... </dependencies>

Page 16: Forms config and customisation

Custom Type (dcforms:presentation)!

•  Name (d:text) inherited from cm:content •  Code (d:text) •  Abstract (d:text) •  Level (d:text with LIST constraint) •  Duration (d:int) •  When (d:datetime) •  Rating (d:int) •  Presenter (association to cm:person)

Page 17: Forms config and customisation

Node Form – Visibility !<config evaluator="node-type” condition="dcforms:presentation"> <forms> <form> <field-visibility> <show id="dcforms:code" /> <show id="cm:name" /> <show id="dcforms:abstract" /> <show id="dcforms:presenter" /> <show id="dcforms:duration" /> <show id="dcforms:when" /> <show id="dcforms:level" /> <show id="dcforms:rating" /> </field-visibility> <appearance>….</appearance> </form> </forms> </config>

Page 18: Forms config and customisation

Node Form – Appearance !<appearance> <set id="" label-id="form.set.general” appearance="title”/> <set id="time" label="Time” appearance="title”/> <set id="feedback" label="Feedback" appearance=”panel”/>

<field id="dcforms:abstract"> <control template="/org/…/controls/textarea.ftl" /> </field> <field id="dcforms:rating" set="feedback” /> <field id="dcforms:when" set="time" /> <field id="dcforms:duration" set="time" /> </appearance>

Page 19: Forms config and customisation

Node Form – Screenshot !

Page 20: Forms config and customisation

Node Form – Hiding the ʻAuthorʼ field!<config evaluator="node-type" condition="cm:content"> <forms> <form> <field-visibility> <hide id="cm:author" /> </field-visibility> </form> </forms> </config>

Page 21: Forms config and customisation

Node Form – Hiding the ʻAuthorʼ field!

Page 22: Forms config and customisation

Search Form!<config evaluator="model-type" condition="dcforms:presentation"> <forms> <form id="search"> <field-visibility> <show id="cm:name" /> <show id="dcforms:code" /> <show id="dcforms:level" /> <show id="dcforms:when" /> </field-visibility> <appearance> <field id="dcforms:when"> <control template="/org/alfresco/components/form/controls/daterange.ftl" /> </field> </appearance> </form> </forms> </config>

Page 23: Forms config and customisation

Search Form

Page 24: Forms config and customisation

Customization!

Page 25: Forms config and customisation

Custom Control – YUI Slider!

•  Root location for custom controls •  shared/classes/alfresco/web-extension/site-webscripts!

<field id="dcforms:rating" set="feedback"> <control template="/devcon/progress.ftl" /> </field>

Page 26: Forms config and customisation

Custom Form Template!<config evaluator="task-type" condition="inwf:activitiInvitePendingTask"> <forms> <form> <view-form template="/org/alfresco/components/form/invite-task-form.ftl”/> <edit-form template="/org/alfresco/components/form/invite-task-form.ftl”/> <field-visibility> <show id="inwf:resourceTitle" /> <show id="inwf:resourceDescription" /> <show id="inwf:inviteeRole" /> <show id="bpm:priority" /> <show id="bpm:comment" /> <show id="inwf:inviteOutcome" /> </field-visibility> </form> </forms> </config>!

Page 27: Forms config and customisation

Custom Form Template!

inwf:resourceTitle   bpm:priority  

inwf:inviteeRole   bpm:comment  

inwf:inviteOutcome  

Page 28: Forms config and customisation

Extension!

Page 29: Forms config and customisation

Form Processors!

•  Pluggable Form Processors •  Driven by “itemKind”!•  Provide implementation to generate and persist form!•  OOTB Form Processors!

• Node, Type, Workflow, Task, Action & JMX!

•  Form Filter •  Allows pre and post processing of fields!

Page 30: Forms config and customisation

NodeLocatorService (picker startLocation)!

•  Returns a NodeRef •  Implement NodeLocator Interface • NodeRef getNode(NodeRef, Map<String, Serializable>);!• Specify ID for “startLocation” param value!

•  REST API • /api/workspace/SpacesStore/…/nodelocator/ancestor?type=xyz !

•  https://wiki.alfresco.com/wiki/NodeLocatorService

Page 31: Forms config and customisation

Whatʼs New & Tips!

Page 32: Forms config and customisation

Whatʼs New in 4.0!

•  JMX Form Processor •  Action Form Processor •  Association Control • Customizable startLocation !• rootNode option (stops navigation beyond node)!

•  Category Control • Root node configurable!• Include sub categories option (for search)!

Page 33: Forms config and customisation

Tips!

• Log4J settings • org.alfresco.repo.forms=debug!• org.alfresco.web.config.forms=debug!• org.alfresco.web.scripts.forms=debug!

• Eclipse (breakpoints) • FormUIGet for UI!• FilteredFormProcessor for server!

Page 34: Forms config and customisation

Tips!

• Forms Development Kit (FDK) • Form Console (/<app>/page/form-console)!• Unit Test Page (/<app>/page/fdk-unit-tests)!• Debug control & template (dumps model)!

• Cntrl, Cntrl, Shift, Shift

Page 35: Forms config and customisation

Questions ?!

Page 36: Forms config and customisation

Learn More!

http://wiki.alfresco.com/wiki/Forms http://wiki.alfresco.com/wiki/Share_Advanced_Search