using forms in share

30
Alfresco Forms Part 1: Forms in Share 1 Gavin Cornwell Services Team Lead, Alfresco twitter: @gcornwell

Upload: alfresco-software

Post on 26-May-2015

6.087 views

Category:

Technology


1 download

DESCRIPTION

The "Using Forms in Share" session follows on from the "Forms Service Deep Dive" session. We will discuss each area of Share that uses Forms and demonstrate how each of those areas (Metadata, Datalists, Workflow & Advanced Search) can be configured and customized. The session will also show how to integrate forms in your own custom applications and/or pages.

TRANSCRIPT

Page 1: Using Forms in Share

1

Alfresco Forms Part 1: Forms in Share

Gavin CornwellServices Team Lead, Alfresco

twitter: @gcornwell

Page 2: Using Forms in Share

2

Agenda

• Where Forms Are Used• Configuration• Demo

• Metadata• Advanced Search• Workflow• Datalists

• Q & A

Page 3: Using Forms in Share

3

Where Forms Are Used

Metadata

Page 4: Using Forms in Share

4

Where Forms Are Used

Advanced Search

Page 5: Using Forms in Share

5

Where Forms Are Used

Workflow

Page 6: Using Forms in Share

6

Where Forms Are Used

Datalists

Page 7: Using Forms in Share

7

Configuration

<config> <forms> <default-controls> ... </default-controls> <constraint-handlers> ... </constraint-handlers> <dependencies> ... </dependencies> </forms></config>

Global Defaults – form-config.xml

Page 8: Using Forms in Share

8

Configuration

<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 Controls

Page 9: Using Forms in Share

9

Configuration

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

Default Constraint Handlers

Page 10: Using Forms in Share

10

Configuration

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

Dependencies

Page 11: Using Forms in Share

11

Configuration

<config evaluator=“” condition=“”> <forms> <form [id=“”]> <field-visibility> ... </field-visibility> <edit|create|view-form template=“” /> <appearance> ... </appearance> </form> </forms></config>

Form – share-form-config.xml

Page 12: Using Forms in Share

12

Configuration

• Creating nodes <config evaluator="model-type" condition="cm:content">

• Editing nodes <config evaluator="node-type" condition="cm:content">

• Starting workflow <config evaluator="string-compare" condition="jbpm$wf:adhoc">

• Editing tasks <config evaluator="task-type" condition="wf:adhocTask">

Evaluators

Page 13: Using Forms in Share

13

Configuration

<show id="cm:name" />

<hide id=“cm:author” />

<show id="cm:created" for-mode="view" />

Visibility

Page 14: Using Forms in Share

14

Configuration

<field id="cm:title” label=“” label-id=“” description=“” description-id=“” help=“” help-id=“” set=“” read-only=“” mandatory=“”> <control template="/.../textfield.ftl”> <control-param ... /> </control> <constraint-handlers> <constraint ... /> </constraint-handlers></field>

Field Appearance

Page 15: Using Forms in Share

15

Configuration

<set id=“info” label=“” label-id=“” template=“” parent=“” appearance=“|fieldset|panel|bordered-panel|title|whitespace” />

Set Appearance

Page 16: Using Forms in Share

16

Demos

• Metadata• Advanced Search• Workflow• Datalists

Page 17: Using Forms in Share

17

Q & A

Page 18: Using Forms in Share

18

Learn MoreAlfresco Forms Part 2: Deep Dive (tomorrow)

wiki.alfresco.com/wiki/Formsblogs.alfresco.com/wp/gavinc/

Page 19: Using Forms in Share

19

Appendix – Demo Config - cm:content<config evaluator="node-type" condition="cm:content"> <forms> <form> <field-visibility> <hide id="cm:author" /> </field-visibility> <edit-form template="/devcon/2-column-edit-form.ftl" /> <appearance> <set id="dublin-core" label-id="set.label.dublincore” appearance="panel" />

<field id="cm:publisher" set="dublin-core" /> <field id="cm:contributor" set="dublin-core" /> <field id="cm:type" set="dublin-core" /> <field id="cm:identifier" set="dublin-core" /> <field id="cm:dcsource" set="dublin-core" /> <field id="cm:coverage" set="dublin-core" /> <field id="cm:rights" set="dublin-core" /> <field id="cm:subject" set="dublin-core" /> </appearance> </form> </forms></config>

Page 20: Using Forms in Share

20

Appendix – Demo Config - Model<type name="devcon:session"> <title>Devcon Session</title> <parent>cm:content</parent> <properties> <property name="devcon:code"> <title>Code</title> <description>Unique code for the session</description> <type>d:text</type> <mandatory>true</mandatory> </property> <property name="devcon:duration"> <title>Duration</title> <description>Session duration in minutes</description> <type>d:int</type> <mandatory>true</mandatory> </property> <property name="devcon:when"> <title>When</title> <description>The date and time of the session</description> <type>d:datetime</type> </property> <property name="devcon:rating"> <title>Rating</title> <description>The feedback rating of the session</description> <type>d:int</type> </property> <property name="devcon:level"> <title>Level</title> <description>Difficulty level of the session</description> <type>d:text</type> <mandatory>true</mandatory> <constraints> <constraint ref="devcon:level" /> </constraints> </property> <property name="devcon:abstract"> <title>Abstract</title> <description>Short abstract describing the session</description> <type>d:text</type> </property> </properties>

<associations> <association name="devcon:presenter"> <title>Presenter</title> <source> <mandatory>false</mandatory> <many>true</many> </source> <target> <class>cm:person</class> <mandatory>true</mandatory> <many>false</many> </target> </association> <association name="devcon:prerequisites"> <title>Prerequisites</title> <source> <mandatory>false</mandatory> <many>true</many> </source> <target> <class>devcon:session</class> <mandatory>false</mandatory> <many>true</many> </target> </association> </associations> <mandatory-aspects> <aspect>devcon:approvable</aspect> </mandatory-aspects></type>

Page 21: Using Forms in Share

21

Appendix – Demo Config – Custom Type<config evaluator="node-type" condition="devcon:session"> <forms> <form> <field-visibility> <show id="devcon:code" /> <show id="cm:name" /> <show id="devcon:abstract" /> <show id="devcon:presenter" /> <show id="devcon:when" /> <show id="devcon:duration" /> <show id="devcon:level" /> <show id="devcon:prerequisites" /> <show id="devcon:approved" /> <show id="devcon:rating" /> </field-visibility> <appearance> <field id="devcon:abstract"> <control template="/org/alfresco/components/form/controls/richtext.ftl" /> </field> <field id="devcon:prerequisites"> <control> <control-param name="startLocation">{doclib}</control-param> </control> </field> </appearance> </form> <form id="doclib-simple-metadata"> <field-visibility> <show id="devcon:code" /> <show id="cm:name" /> <show id="devcon:abstract" /> <show id="devcon:when" /> </field-visibility> <edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl" /> </form> </forms></config>

Page 22: Using Forms in Share

22

Appendix – Demo Config - Search<config evaluator="model-type" condition="cm:content"> <forms> <form id="search"> <field-visibility> <hide id=“mimetype” /> <show id="cm:creator" /> </field-visibility> <appearance> <field id="cm:creator"> <control> <control-param name="forceEditable">true</control-param> </control> </field> </appearance> </form> </forms></config>

Page 23: Using Forms in Share

23

Appendix – Demo Config – Search cont…<config evaluator="string-compare" condition="AdvancedSearch"> <advanced-search> <forms> <form labelId="search.form.label.devcon" descriptionId="search.form.desc.devcon">devcon:session</form> </forms> </advanced-search></config>

<config evaluator="model-type" condition="devcon:session"> <forms> <form id="search"> <field-visibility> <show id="cm:name" /> <show id="devcon:code" /> <show id="devcon:when" /> <show id="devcon:duration" /> <show id="devcon:level" /> </field-visibility> <appearance> <field id="devcon:when"> <control template="/org/alfresco/components/form/controls/daterange.ftl" /> </field> <field id="devcon:duration"> <control template="/org/alfresco/components/form/controls/numberrange.ftl" /> </field> <field id="devcon:level"> <control template="/org/alfresco/components/form/controls/selectmany.ftl" /> </field> </appearance> </form> </forms></config>

Page 24: Using Forms in Share

24

Appendix – Demo Config – Model<types> <type name="dw:submitDevconReviewTask"> <parent>wf:submitReviewTask</parent> <properties> <property name="dw:venue"> <type>d:text</type> <default>Both</default> <constraints> <constraint type="LIST"> <parameter name="allowedValues"> <list> <value>Both</value> <value>Paris</value> <value>New York</value> </list> </parameter> </constraint> </constraints> </property> </properties> </type></types>

Page 25: Using Forms in Share

25

Appendix – Demo Config – Start Workflow<config evaluator="string-compare" condition="jbpm$dw:devconapproval"> <forms> <form> <field-visibility> <show id="bpm:workflowDescription" /> <show id="bpm:workflowDueDate" /> <show id="bpm:workflowPriority" /> <show id="dw:venue" /> <show id="bpm:assignee" /> <show id="packageItems" /> </field-visibility> <appearance> <set id="" appearance="title" label-id="workflow.set.general" /> <set id="info" appearance="" template="/org/alfresco/components/form/2-column-set.ftl" /> <set id="assignee" appearance="title" label-id="workflow.set.assignee" /> <set id="items" appearance="title" label-id="workflow.set.items" /> <field id="bpm:workflowDescription" label-id="workflow.field.message"> <control template="/org/alfresco/components/form/controls/textarea.ftl"> <control-param name="style">width: 95%</control-param> </control> </field> <field id="dw:venue" set="info" /> <field id="bpm:workflowDueDate" label-id="workflow.field.due" set="info" /> <field id="bpm:workflowPriority" label-id="workflow.field.priority" set="info"> <control template="/org/alfresco/components/form/controls/workflow/priority.ftl" /> </field> <field id="bpm:assignee" label-id="workflow.field.reviewer" set="assignee" /> <field id="packageItems" set="items" /> </appearance> </form> </forms></config>

Page 26: Using Forms in Share

26

Appendix – Demo Config – Workflow<config evaluator="task-type" condition="dw:submitDevconReviewTask"> <forms> <form id="workflow-details"> <field-visibility> <show id="dw:venue" /> <show id="packageItems" /> </field-visibility> <appearance> <set id="" appearance="title" label-id="workflow.set.workflow.more_info" /> <set id="items" appearance="title" label-id="workflow.set.items" /> <field id="packageItems" set="items" /> </appearance> </form> <form> <field-visibility> <show id="message" /> <show id="taskOwner" /> <show id="bpm:workflowPriority" /> <show id="bpm:workflowDueDate" /> <show id="bpm:taskId" /> <show id="dw:venue" /> <show id="bpm:status" /> <show id="packageItems" /> </field-visibility> <appearance> <set id="" appearance="title" label-id="workflow.set.task.info" /> <set id="info" appearance="" template="/org/alfresco/components/form/3-column-set.ftl" /> <set id="progress" appearance="title" label-id="workflow.set.task.progress" /> <set id="items" appearance="title" label-id="workflow.set.items" /> <field id="message"> <control template="/org/alfresco/components/form/controls/info.ftl" /> </field> <field id="taskOwner" set="info" /> <field id="dw:venue" set="info" /> <field id="bpm:taskId" set="info"> <control template="/org/alfresco/components/form/controls/info.ftl" /> </field> <field id="bpm:workflowPriority" label-id="workflow.field.priority" set="info" read-only="true"> <control template="/org/alfresco/components/form/controls/workflow/priority.ftl" /> </field> <field id="bpm:workflowDueDate" set="info" label-id="workflow.field.due"> <control template="/org/alfresco/components/form/controls/info.ftl" /> </field> <field id="bpm:status" set="progress" /> <field id="packageItems" set="items" /> </appearance> </form> </forms></config>

Page 27: Using Forms in Share

27

Appendix – Demo Config – Datalist - Model<type name="devcon:sessionFeedbackList"> <title>Devcon Session Feedback</title> <description>A list of feedback from attendees on the quality of the sessions.</description> <parent>dl:dataListItem</parent> <properties> <property name="devcon:attendeeFirstName"> <title>Attendee First Name</title> <type>d:text</type> <mandatory>true</mandatory> </property> <property name="devcon:attendeeLastName"> <title>Attendee Last Name</title> <type>d:text</type> <mandatory>false</mandatory> </property> <property name="devcon:feedback"> <title>Feedback</title> <type>d:text</type> <mandatory>true</mandatory> </property> <property name="devcon:score"> <title>Score</title> <type>d:int</type> <constraints> <constraint ref="devcon:score" /> </constraints> </property> </properties></type>

Page 28: Using Forms in Share

28

Appendix – Demo Config – Datalist - Create<config evaluator="model-type" condition="devcon:sessionFeedbackList"> <forms> <form> <field-visibility> <show id="devcon:attendeeFirstName" /> <show id="devcon:attendeeLastName" /> <show id="devcon:feedback" /> <show id="devcon:score" /> </field-visibility> <create-form template="../data-lists/forms/dataitem.ftl" /> <appearance> <field id="devcon:feedback"> <control template="/org/alfresco/components/form/controls/textarea.ftl"> <control-param name="rows">6</control-param> </control> </field> </appearance> </form> </forms></config>

Page 29: Using Forms in Share

29

Appendix – Demo Config – Datalist - Edit<config evaluator="node-type" condition="devcon:sessionFeedbackList"> <forms> <form> <field-visibility> <show id="devcon:attendeeFirstName" /> <show id="devcon:attendeeLastName" /> <show id="devcon:feedback" /> <show id="devcon:score" /> </field-visibility> <edit-form template="../data-lists/forms/dataitem.ftl" /> <appearance> <field id="devcon:feedback"> <control template="/org/alfresco/components/form/controls/textarea.ftl"> <control-param name="rows">6</control-param> </control> </field> </appearance> </form> </forms></config>

Page 30: Using Forms in Share

30

Working Example

• The working example will be made available in the next few weeks on my blog at http://blogs.alfresco.com/wp/gavinc

• In the meantime have a look at the FDK for more examples