...
Create the eDocLite Form
- The eDocLite Form Skeleton
Define fieldsCode 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 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>** Fields 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>
Add field detailsCode 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> </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>
Add field validationCode 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> <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>
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><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'" /> <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"> <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'" /> <display> <form <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value>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> </meta> <meta> <xsl:call-template name="footer" <name>wrap</name>> </body> <value>hard</value> </html> </meta>xsl:template> <xsl:template name="mainBody"> ... ... </display> xsl:template> <validation required <xsl:template name="truenbsp"> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> </xsl:template> </xsl:stylesheet> </style> <association> <message>Enter the ingress/egress characteristic.</message> <docType>eDoc.RequestFirewallChange</docType> <definition>eDoc.RequestFirewallChange.Form</definition> <style>eDoc.RequestFirewallChange.Style</style> <active>true</active> </validation>association> </edoclite> </fieldDef> data>
- Field Definitions
Code Block title EDLForm.xml <fieldDef name="destinationSourceSpecificationdateOfChange" title="Destination/Source SpecificationDate and Time for Change"> <display> <type>textarea<<type>text</type> <meta> <name>rows</name></display> <value>5</value> </meta> <validation required="true"> <meta> <regex>^[0-1]?[0-9](/|-)[0-3]?[0-9](/|-)[1-2][0-9][0-9][0-9]$</regex> <message>Enter <name>cols</name>a valid date in the format mm/dd/yyyy.</message> <value>60</value> </validation> </meta>fieldDef> <fieldDef name="descriptionOfChange" title="Description of <meta>the Port Change"> <display> <name>wrap</name> <type>textarea</type> <value>hard</value> <meta> </meta> <<name>rows</display>name> <validation required="true"> <value>5</value> <message>Enter the destination/source specification.</message>meta> </validation> <meta> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <name>cols</name> <display><value>60</value> <type>text<</type>meta> <meta> <name>size<<name>wrap</name> <value>50<<value>hard</value> </meta> </display> <validation required="true"> <message>Enter a termdescription of the ruleport change.</message> </validation> </fieldDef> <fieldDef name="relatedProjectingressEgressCharacteristic" title="Project Related to Requested Rule(s) ChangeIngress/Egress Characteristic"> <display> <type>text<<type>textarea</type> <meta> <name>size<<name>rows</name> <value>50<<value>5</value> </meta> </display> <meta> <name>cols</name> <value>60</value> </meta> <validation required="true"> <meta> <message>Enter a related project to the requested rule change.</message><name>wrap</name> <<value>hard</validation>value> </fieldDef> </edl>
Defining the Style Sheet to Render the Form
- Setup the Styelsheet Skeleton
Define the mainBodyCode Block <style name="eDoc.RequestFirewallChange.Style">meta> <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'" /> </display> <validation required="true"> <message>Enter the ingress/egress characteristic.</message> </validation> </fieldDef> <fieldDef name="destinationSourceSpecification" title="Destination/Source Specification"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <xsl:template name="mainForm"> <html xmlns=""> <name>cols</name> <head> <script language="javascript" <value>60</>value> <xsl:call-template name="htmlHead" /> </meta> </head> <meta> <body onload="onPageLoad()"> <xsl:call-template name="errors" <name>wrap</>name> <xsl:call-template name="header" <value>hard</>value> <xsl:call-template name="instructions" </>meta> <xsl:variable name="formTarget" select="'EDocLite'" /></display> <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" /> <validation required="true"> <message>Enter the destination/source specification.</message> </validation> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <display> <br <type>text</>type> <xsl:call-template name="buttons" /><meta> <br <name>size</>name> </form> <value>50</value> <xsl:call-template name="footer" /> </body>meta> </html>display> </xsl:template> <xsl:template<validation namerequired="mainBody"> </xsl:template>true"> <xsl:template name="nbsp"> <message>Enter <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> </xsl:template>term of the rule change.</message> </validation> </xsl:stylesheet> </style>
Code Block fieldDef> <xsl:template<fieldDef name="mainBodyrelatedProject"> title="Project Related to $docStatus=<xsl:value-of select="$docStatus" /> -->Requested Rule(s) Change"> <display> <table xmlns="" align="center" border="0" cellpadding="0" cellspacing="0" class="bord-r-t" width="80%"> <type>text</type> <tr> <meta> <td align="left" border="3" class="thnormal" colspan="1"> <name>size</name> <br <value>50</>value> </meta> <h3> </display> University of California, Davis<validation required="true"> <message>Enter a related project to the requested <brrule change.</>message> </validation> eDoclite Tutorial </h3> <br /</fieldDef>
- Stylesheet mainBody Definition
Code Block title RFC-EDLForm.xml <xsl:template name="mainBody"> <table xmlns="" align="center" border="0" cellpadding="0" cellspacing="0" class="bord-r-t" width="80%"> </td><tr> <td align="centerleft" border="3" class="thnormal" colspan="21"> <br /> <h2>Request Firewall Change Form</h2> <h3> University of California, Davis </td> <br </tr>> <tr> eDoclite Tutorial <td class="headercell5" colspan="100%"> </h3> <b>Request<br Details</b>> </td> </tr> <td align="center" border="3" class="thnormal" colspan="2"> <tr> <td class="thnormal"<br /> <xsl:call-template name="widget_render"><h2>Request Firewall Change Form</h2> </td> <xsl:with-param name="fieldName" select="'dateOfChange'" /> </tr> <tr> <xsl:with-param name<td class="renderCmdheadercell5" selectcolspan="'title'100%" /> <b>Request </xsl:call-template> Details</b> <font color="#ff0000">*</font> td> </td>tr> <td class="datacell"><tr> <xsl:call-template name="widget_render<td class="thnormal"> <xsl:withcall-paramtemplate name="fieldName" select="'dateOfChange'" /widget_render"> <xsl:with-param name="renderCmdfieldName" select="'inputdateOfChange'" /> <xsl:with-param name="readOnlyrenderCmd" select="$isPastInitiated'title'" /> </xsl:call-template> </td> <font color="#ff0000">*</font> </tr> </td> <tr> <td class="thnormaldatacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'descriptionOfChangedateOfChange'" /> <xsl:with-param name="renderCmd" select="'titleinput'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> <font color="#ff0000">*</font>tr> <tr> </td> <td class="datacellthnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'descriptionOfChange'" /> <xsl:with-param name="renderCmd" select="'inputtitle'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /></xsl:call-template> </xsl:call-template><font color="#ff0000">*</font> </td> </tr> <td class="datacell"> <tr> <td class="thnormal"><xsl:call-template name="widget_render"> <xsl:callwith-templateparam name="widget_render"fieldName" select="'descriptionOfChange'" /> <xsl:with-param name="fieldNamerenderCmd" select="'ingressEgressCharacteristicinput'" /> <xsl:with-param name="renderCmdreadOnly" select="'title'$isPastInitiated" /> </xsl:call-template> </td> <font color="#ff0000">*</font>tr> <tr> </td> <td class="datacellthnormal"> <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="$isPastInitiatedtitle'" /> </xsl:call-template> </td> <font color="#ff0000">*</font> </tr> <tr></td> <td class="thnormaldatacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'destinationSourceSpecificationingressEgressCharacteristic'" /> <xsl:with-param name="renderCmd" select="'titleinput'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> <font color="#ff0000">* </font>tr> <tr> </td> <td class="datacellthnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'destinationSourceSpecification'" /> <xsl:with-param name="renderCmd" select="'inputtitle'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /></xsl:call-template> <font color="#ff0000">*</xsl:call-template>font> </td> </tr> <td class="datacell"> <tr> <td class="thnormal<xsl:call-template name="widget_render"> <xsl:callwith-templateparam name="widget_render"fieldName" select="'destinationSourceSpecification'" /> <xsl:with-param name="fieldNamerenderCmd" select="'termOfRuleChangeinput'" /> <xsl:with-param name="renderCmdreadOnly" select="'title'$isPastInitiated" /> </xsl:call-template> </td> <font color="#ff0000">* </font>tr> </td><tr> <td class="datacellthnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'termOfRuleChange'" /> <xsl:with-param name="renderCmd" select="'inputtitle'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr><font color="#ff0000">*</font> <tr></td> <td class="thnormaldatacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'relatedProjecttermOfRuleChange'" /> <xsl:with-param name="renderCmd" select="'titleinput'" /> </xsl<xsl:call-template> with-param name="readOnly" select="$isPastInitiated" /> <font color="#ff0000">*</font>xsl:call-template> </td> </tr> <td class="datacell"> <tr> <xsl:call-template name<td class="widget_renderthnormal"> <xsl:with-param name="fieldName" select="'relatedProject'" /call-template name="widget_render"> <xsl:with-param name="renderCmdfieldName" select="'inputrelatedProject'" /> <xsl:with-param name="readOnlyrenderCmd" select="$isPastInitiated'title'" /> </xsl:call-template> <font color="#ff0000">*</td>font> </tr>td> </table> <td <br xmlnsclass="datacell" /> </xsl:template>
Defining the Workgroups
...
...
...
<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="" />
Defining the Workgroups
Code Block
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