...
Code Block | ||
---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> <data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData"> <documentTypes xmlns="ns:workflow/DocumentType" xsi:schemaLocation="ns:workflow/DocumentType resource:DocumentType"> <documentType> <name>eDoc.RequestFirewallChange</name> <parent>eDoc.RequestFirewallChange.Parent</parent> <description>eDoc.RequestFirewallChange Child Document Type</description> <label>eDoc.RequestFirewallChange Child Document Type</label> <postProcessorName>edu.iu.uis.eden.edl.EDocLitePostProcessor</postProcessorName> <superUserWorkgroupName>eDoc.FirewallPolicyGroup.Workgroup</superUserWorkgroupName> <blanketApprovePolicy>NONE</blanketApprovePolicy> <defaultExceptionWorkgroupName>eDoc.FirewallPolicyGroup.Workgroup</defaultExceptionWorkgroupName> <docHandler>${workflow.url}/EDocLite</docHandler> <active>true</active> <routingVersion>2</routingVersion> <routePaths> <routePath> <start name="Initiated" nextNode="eDoc.RequestFirewallChange.Node1" /> <requests name="eDoc.RequestFirewallChange.Node1" /> </routePath> </routePaths> <routeNodes> <start name="Initiated"> <activationType>P</activationType> <mandatoryRoute>false</mandatoryRoute> <finalApproval>false</finalApproval> </start> <requests name="eDoc.RequestFirewallChange.Node1"> <activationType>P</activationType> <ruleTemplate>eDoc.RequestFirewallChange.Node1</ruleTemplate> <mandatoryRoute>false</mandatoryRoute> <finalApproval>false</finalApproval> </requests> </routeNodes> </documentType> </documentTypes> </data> |
Create the eDocLite Form
- Set up the The eDocLite skeleton Skeleton
Code Block title EDLForm.xml <?xml version="1.0" encoding="UTF-8"?> <data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData"> <edoclite <users xmlns="ns:workflow/UserEDocLite" xsi:schemaLocation="ns:workflow/UserEDocLite resource:UserEDocLite"> <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall <user> <workflowId>FPG1</workflowId>Change"> ... ... </edl> <style name="eDoc.RequestFirewallChange.Style"> ... ... </style> <association> <docType>eDoc.RequestFirewallChange</docType> <definition>eDoc.RequestFirewallChange.Form</definition> <style>eDoc.RequestFirewallChange.Style</style> <active>true</active> </association> </edoclite> </data> <emplId>FPG1</emplId>
- Define fields
<?xml version="1.0" encoding="UTF-8"?>Code Block <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change"> <security <authenticationId>FPG1</authenticationId>> <createInstructions>** Fields with an asterisk <uuId>FPG1</uuId>are required.</createInstructions> <instructions>** Questions with an asterisk are <emailAddress>FPG1@ucdavisrequired.edu<</emailAddress>instructions> <validations /> <displayName>Firewall Group Policy User One</displayName><attributes /> <fieldDef name="dateOfChange" title="Date and Time for Change"> <givenName>Firewall Group Policy User</givenName> <display> <lastName>One<<type>text</lastName> type> </user>display> </fieldDef> <user> <fieldDef name="descriptionOfChange" title="Description of the Port Change"> <workflowId>FPG2</workflowId> <display> <emplId>FPG2<<type>textarea</emplId>type> </display> <authenticationId>FPG2<</authenticationId>fieldDef> <fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress Characteristic"> <uuId>FPG2</uuId> <display> <emailAddress>FPG2@ucdavis.edu</emailAddress><type>textarea</type> </display> </fieldDef> <displayName>Firewall Group Policy User Two</displayName> <fieldDef name="destinationSourceSpecification" title="Destination/Source Specification"> <display> <givenName>Firewall Group Policy User</givenName> <type>textarea</type> </display> <lastName>Two</lastName> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <display> <<type>text</user>type> </users>display> </data>
<data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData">
<edoclite xmlns="ns:workflow/EDocLite" xsi:schemaLocation="ns:workflow/EDocLite resource:EDocLite">
<edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
<security />
<createInstructions>** Fields with an asterisk are required.</createInstructions>
<instructions>** Questions with an asterisk are required.</instructions>
<validations />
<attributes />
</edl>
<style name="eDoc.RequestFirewallChange.Style">
</style>
<association>
<docType>eDoc.RequestFirewallChange</docType>
<definition>eDoc.RequestFirewallChange.Form</definition>
<style>eDoc.RequestFirewallChange.Style</style>
<active>true</active>
</association>
</edoclite>
</data>
Code Block |
---|
\\
# Define fields
|
<edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
<security />
<createInstructions>** Fields with an asterisk are required.</createInstructions>
<instructions>** Questions with an asterisk are required.</instructions>
<validations />
<attributes />
<fieldDef name="dateOfChange" title="Date and Time for Change">
<display>
<type>text</type>
</display>
</fieldDef>
<fieldDef name="descriptionOfChange" title="Description of the Port Change">
<display>
<type>textarea</type>
</display>
</fieldDef>
<fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress Characteristic">
<display>
<type>textarea</type>
</display>
</fieldDef>
<fieldDef name="destinationSourceSpecification" title="Destination/Source Specification">
<display>
<type>textarea</type>
</display>
</fieldDef>
<fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)">
<display>
<type>text</type>
</display>
</fieldDef>
<fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change">
<display>
<type>text</type>
</display>
</fieldDef>
</edl>
Code Block |
---|
\\
# Add field details
|
...
fieldDef> <fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change"> <display> <type>text</type> </display> </fieldDef> </edl>
- Add field details
Code Block <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
...
<security />
...
<createInstructions>** Fields with an asterisk are required.</createInstructions>
...
<instructions>** Questions with an asterisk are required.</instructions>
...
<validations />
...
<attributes />
...
<fieldDef name="dateOfChange" title="Date and Time for Change">
...
<display> <type>text</type>
...
</display>
...
</fieldDef>
...
<fieldDef name="descriptionOfChange" title="Description of the Port Change">
...
<display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> </fieldDef> <fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress
...
Characteristic"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> </fieldDef> <fieldDef name="destinationSourceSpecification" title="Destination/Source Specification">
...
<display> <type>textarea</type>
...
<fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)">
<display>
<type>text</type>
<meta>
<name>size</name>
<value>50</value>
</meta>
</display>
</fieldDef>
<fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change">
<display>
<type>text</type>
<meta>
<name>size</name>
<value>50</value>
</meta>
</display>
</fieldDef>
</edl>
Code Block |
---|
\\
# Add field validation
|
...
<meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> </fieldDef> <fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> </fieldDef> </edl>
- Add field validation
Code Block <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
...
<security />
...
<createInstructions>** Fields with an asterisk are required.</createInstructions>
...
<instructions>** Questions with an asterisk are required.</instructions>
...
<validations />
...
<attributes />
...
<fieldDef name="dateOfChange" title="Date and Time for Change">
...
<display> <type>text</type>
...
</display>
...
<validation required="true">
...
<regex>^[0-1]?[0-9](/|-)[0-3]?[0-9](/|-)[1-2][0-9][0-9][0-9]$</regex>
...
<message>Enter a valid date in the format mm/dd/yyyy.</message>
...
</validation>
...
</fieldDef>
...
<fieldDef name="descriptionOfChange" title="Description of the Port Change">
...
<display> <type>textarea</type>
...
<meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter a description of the port change.</message> </validation> </fieldDef> <fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress Characteristic">
...
<display> <type>textarea</type>
...
<meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter the ingress/egress characteristic.</message> </validation> </fieldDef> <fieldDef name="destinationSourceSpecification" title="Destination/Source Specification">
...
<fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)">
<display>
<type>text</type>
<meta>
<name>size</name>
<value>50</value>
</meta>
</display>
<validation required="true">
<message>Enter term of the rule change.</message>
</validation>
</fieldDef>
<fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change">
<display>
<type>text</type>
<meta>
<name>size</name>
<value>50</value>
</meta>
</display>
<validation required="true">
<message>Enter a related project to the requested rule change.</message>
</validation>
</fieldDef>
</edl>
Code Block |
---|
\\
h3. Defining the Style Sheet to Render the Form
# Setup the Styelsheet Skeleton
|
...
<display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter the destination/source specification.</message> </validation> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> <validation required="true"> <message>Enter term of the rule change.</message> </validation> </fieldDef> <fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> <validation required="true"> <message>Enter a related project to the requested rule change.</message> </validation> </fieldDef> </edl>
Defining the Style Sheet to Render the Form
- Setup the Styelsheet Skeleton
Code Block <style name="eDoc.RequestFirewallChange.Style">
...
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my-class="xalan://edu.iu.uis.eden.edl.WorkflowFunctions" version="1.0">
...
<xsl:include href="widgets" />
...
<xsl:output indent="yes" method="html" omit-xml-declaration="yes" version="4.01" />
...
<xsl:variable name="actionable" select="/documentContent/documentState/actionable" />
...
<xsl:variable name="docHeaderId" select="/documentContent/documentState/docId" />
...
<xsl:variable name="editable" select="/documentContent/documentState/editable" />
...
<xsl:variable name="globalReadOnly" select="/documentContent/documentState/editable != 'true'" />
...
<xsl:variable name="docStatus" select="//documentState/workflowDocumentState/status" />
...
<xsl:variable name="isAtNodeInitiated" select="my-class:isAtNode($docHeaderId, 'Initiated')" />
...
<xsl:variable name="isPastInitiated" select="my-class:isNodeInPreviousNodeList('Initiated', $docHeaderId)" />
...
<xsl:variable name="isUserInitiator" select="my-class:isUserInitiator($docHeaderId)" />
...
<xsl:param name="overrideMain" select="'true'" />
...
<xsl:template name="mainForm">
...
<html xmlns="">
...
<head> <script language="javascript"
...
/> <xsl:call-template name="htmlHead" />
...
</head>
...
<body onload="onPageLoad()">
...
<xsl:call-template name="errors" />
...
<xsl:call-template name="header" />
...
<xsl:call-template name="instructions" />
...
<xsl:variable name="formTarget" select="'EDocLite'" />
...
<form action="{$formTarget}" enctype="multipart/form-data" id="edoclite" method="post" onsubmit="return validateOnSubmit(this)">
...
<xsl:call-template name="hidden-params" />
...
<xsl:call-template name="mainBody" />
...
<xsl:call-template name="notes" />
...
<br /> <xsl:call-template name="buttons" />
...
<br /> </form> <xsl:call-template name="footer" />
...
</body>
...
</html>
...
</xsl:template>
...
<xsl:template name="mainBody">
...
</xsl:template>
...
<xsl:template name="nbsp">
...
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
...
</xsl:template>
...
</xsl:stylesheet>
...
</style>
- Define the mainBody
Code Block
...
...
...
...
<xsl:template name="mainBody">
...
$docStatus=<xsl:value-of select="$docStatus" /> -->
...
<table xmlns="" align="center" border="0" cellpadding="0" cellspacing="0" class="bord-r-t" width="80%">
...
<tr> <td align="left" border="3" class="thnormal" colspan="1">
...
<br /> <h3> University of California, Davis <br /> eDoclite Tutorial </h3> <br /> </td> <td align="center" border="3" class="thnormal" colspan="2"
...
> <br /> <h2>Request Firewall Change Form</h2> </td> </tr> <tr> <td class="headercell5" colspan="100%">
...
<b>Request Details</b>
...
</td>
...
</tr> <tr> <td class="thnormal">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'dateOfChange'" />
...
<xsl:with-param name="renderCmd" select="'title'" />
...
</xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td>
...
<td class="datacell">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'dateOfChange'" />
...
<xsl:with-param name="renderCmd" select="'input'
...
" /> <xsl:with-param name="readOnly" select="$isPastInitiated" />
...
</xsl:call-template>
...
</td>
...
</tr>
...
<tr> <td class="thnormal">
...
<xsl:call-template name="widget_
...
render"> <xsl:with-param name="fieldName" select="'descriptionOfChange'" />
...
<xsl:with-param name="renderCmd" select="'title'" />
...
</xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td>
...
<td class="datacell"> <xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'descriptionOfChange'" />
...
<xsl:with-param name="renderCmd" select="'input'" />
...
<xsl:with-param name="readOnly" select="$isPastInitiated" />
...
</xsl:call-template>
...
</td>
...
</tr>
...
<tr> <td class="thnormal">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'ingressEgressCharacteristic'" />
...
<xsl:with-param name="renderCmd" select="'title'
...
" /> </xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td>
...
<td class="datacell">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'ingressEgressCharacteristic'"
...
/> <xsl:with-param name="renderCmd" select="'input'" />
...
<xsl:with-param name="readOnly" select="$isPastInitiated" />
...
</xsl:call-template>
...
</td>
...
</tr>
...
<tr> <td class="thnormal"> <xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'destinationSourceSpecification'" />
...
<xsl:with-param name="renderCmd" select="'title'" />
...
</xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td> <td class="datacell">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'destinationSourceSpecification'" />
...
<xsl:with-param name="renderCmd" select="'input'" />
...
<xsl:with-param name="readOnly" select="$isPastInitiated"
...
/> </xsl:call-template>
...
</td>
...
</tr>
...
<tr> <td class="thnormal">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'termOfRuleChange
...
'" /> <xsl:with-param name="renderCmd" select="'title'" />
...
</xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td>
...
<td class="datacell">
...
<xsl:call-template name="
...
widget_render"> <xsl:with-param name="fieldName" select="'termOfRuleChange'" />
...
<xsl:with-param name="renderCmd" select="'input'" />
...
<xsl:with-param name="readOnly" select="$isPastInitiated" />
...
</xsl:call-template>
...
</td>
...
</tr> <tr> <td class="thnormal">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'relatedProject'" />
...
<xsl:with-param name="renderCmd" select="'title'" />
...
</xsl:call-template>
...
<font color="#ff0000">*</font>
...
</td>
...
<td class="datacell">
...
<xsl:call-template name="widget_render">
...
<xsl:with-param name="fieldName" select="'relatedProject'" />
...
<xsl:with-param name="renderCmd" select="'input'"
...
/> <xsl:with-param name="readOnly" select="$isPastInitiated" />
...
</xsl:call-template>
...
</td>
...
</tr>
...
</table>
...
<br xmlns="" />
...
</xsl:template>
...
Code Block |
---|
\\
h3. Defining the Workgroups
|
Defining the Workgroups
Code Block |
---|
<?xml version="1.0" encoding="UTF-8"?> |
...
<data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData"> |
...
<workgroups xmlns="ns:workflow/Workgroup" xsi:schemaLocation="ns:workflow/Workgroup resource:Workgroup"> |
...
<workgroup> <workgroupName>eDoc.FirewallPolicyGroup.Workgroup</workgroupName> |
...
</data>
<description>Firewall Policy Group for Firewall Change Requests</description>
<members>
<authenticationId>FPG1</authenticationId>
<authenticationId>FPG2</authenticationId>
</members>
</workgroup>
</workgroups>
</data>
|
Ingest XML Files
- Ingest widgets.xml
- Ingest Workgroups
- Ingest Document Type
- Ingest EDL Definition
Reference
https://test.kuali.org/confluence/display/KULRICE/EDocLite+Documentation+Guide
https://test.kuali.org/confluence/display/KULRICE/eDocLite+Components+Detail#eDocLiteComponentsDetail-xsltdetail
https://test.kuali.org/confluence/display/KULRICE092/Workgroup+Guide