PLAT-14 Forms Config, Customization, and Extension
-
Upload
alfresco-software -
Category
Technology
-
view
1.742 -
download
3
description
Transcript of PLAT-14 Forms Config, Customization, and Extension
Forms Config, Customization, & Extension!
Gavin Cornwell, Development Manager, Services Team, Alfresco!
Agenda!
• Where Forms Are Used • Demo • Configuration • Customization • Extension • Q & A
Where Forms Are Used!
Metadata !
Advanced Search!
Workflow !
Datalists !
Actions (4.0)!
Admin Console (4.0)!
Demo!
• Custom Type • Custom Control • Advanced Search • FDK • startLocation!• Custom “foldername” NodeLocator!
• Built-in NodeLocators; ancestor, doclib, userhome!
• Unit Test Page!
Configuration!
Global Defaults – form-config.xml <config> <forms> <default-controls> ... </default-controls> <constraint-handlers> ... </constraint-handlers> <dependencies> ... </dependencies> </forms> </config>
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>
Default Constraint Handlers!<constraint-handlers> … <constraint type="MANDATORY” validation-handler="...mandatory” event="keyup" />
<constraint type="NUMBER” validation-handler=”...number” event="keyup" /> ... </constraint-handlers>
Dependencies!<dependencies> <css src=” /accordion/accordion.css" /> <js src=“/accordion/accordion-min.js" /> ... </dependencies>
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)
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>
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>
Node Form – Screenshot !
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>
Node Form – Hiding the ʻAuthorʼ field!
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>
Search Form
Customization!
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>
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>!
Custom Form Template!
inwf:resourceTitle bpm:priority
inwf:inviteeRole bpm:comment
inwf:inviteOutcome
Extension!
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!
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
Whatʼs New & Tips!
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)!
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!
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
Questions ?!
Learn More!
http://wiki.alfresco.com/wiki/Forms http://wiki.alfresco.com/wiki/Share_Advanced_Search