<?xml version="1.0" encoding="UTF-8"?>
|
<!-- Copyright (c) 1995-2005 Macromedia, Inc. All rights reserved. -->
|
<xsl:stylesheet version="1.0"
|
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
xmlns:cf="http://www.macromedia.com/2004/cfform"
|
xmlns:xf="http://www.w3.org/2002/xforms"
|
xmlns:html="http://www.w3.org/1999/xhtml"
|
exclude-result-prefixes="xsi cf xsl xf html">
|
|
|
<!-- <CFFORMITEM type="text"..> -->
|
<xsl:template match="xf:output">
|
<xsl:element name="div">
|
<xsl:attribute name="class">cfText</xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:for-each>
|
<xsl:value-of select="text()" disable-output-escaping="yes"/>
|
</xsl:element>
|
</xsl:template>
|
|
<!-- used by other rules to output <label> </label> tags for element -->
|
<xsl:template name="label">
|
<xsl:variable name="id" select="@id"/>
|
|
<xsl:element name="label">
|
<xsl:attribute name="for"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:choose>
|
<xsl:when test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">
|
<xsl:attribute name="class">cfRequiredLabel</xsl:attribute>
|
<span class="cfRequiredLabelIndicator">* </span>
|
<xsl:value-of select="xf:label/text()"/>
|
</xsl:when>
|
<xsl:otherwise>
|
<xsl:value-of select="xf:label/text()"/>
|
</xsl:otherwise>
|
</xsl:choose>
|
</xsl:element>
|
</xsl:template>
|
|
<!-- <cfformitem type="hrule" or type="hr"..> -->
|
<xsl:template match="xf:group[@appearance='hrule'] | xf:group[@appearance='hr']">
|
<xsl:element name="hr">
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:for-each>
|
</xsl:element>
|
</xsl:template>
|
|
|
|
|
<!-- <cfinput type="text|hidden|password|file" > -->
|
<xsl:template match="xf:input | xf:secret | xf:upload | xf:submit | xf:trigger">
|
|
<xsl:variable name="bind" select="@bind"/>
|
<xsl:variable name="id" select="@id"/>
|
|
<xsl:element name="input">
|
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfInput <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
<xsl:attribute name="value"><xsl:value-of select="//form/xf:model/xf:instance/cf:data/*[name() = $bind]/text()"/></xsl:attribute>
|
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' ">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
<xsl:for-each select="//form/xf:model/xf:bind[@id = $bind]">
|
<xsl:call-template name="onBlurValidation"/>
|
</xsl:for-each>
|
</xsl:element>
|
</xsl:template>
|
|
|
<!-- <cfinput type="submit|button|image|reset" > -->
|
<xsl:template match="xf:submit | xf:trigger">
|
<xsl:variable name="id" select="@id"/>
|
|
<xsl:element name="input">
|
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfButton <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
|
<xsl:choose>
|
<xsl:when test="xf:label/html:img">
|
<xsl:attribute name="src"><xsl:value-of select="xf:label/html:img/@src" /></xsl:attribute>
|
<xsl:attribute name="type">image</xsl:attribute>
|
</xsl:when>
|
<xsl:when test="reset">
|
<xsl:attribute name="type">reset</xsl:attribute>
|
<xsl:attribute name="value"><xsl:value-of select="xf:label/text()" /></xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
</xsl:when>
|
<xsl:when test="name() = 'xf:trigger'">
|
<xsl:attribute name="type">button</xsl:attribute>
|
<xsl:attribute name="value"><xsl:value-of select="xf:label"/></xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
</xsl:when>
|
<xsl:otherwise>
|
<xsl:attribute name="value"><xsl:value-of select="xf:label/text()" /></xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' ">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
</xsl:otherwise>
|
</xsl:choose>
|
</xsl:element>
|
|
</xsl:template>
|
|
|
|
|
<!-- <cfinput type="radio" > -->
|
<xsl:template match="xf:select1[@appearance='full']">
|
<xsl:for-each select="xf:choices/xf:item">
|
<xsl:call-template name="radio"></xsl:call-template>
|
</xsl:for-each>
|
</xsl:template>
|
|
<xsl:template name="radio">
|
|
<xsl:variable name="id" select="parent::*/parent::*/@id"/>
|
<xsl:element name="input">
|
<xsl:attribute name="type">radio</xsl:attribute>
|
<xsl:attribute name="id"><xsl:value-of select="concat(parent::*/parent::*/@id, position())"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="parent::*/parent::*/@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfRadio <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
<xsl:attribute name="value"><xsl:value-of select="xf:value/text()" /></xsl:attribute>
|
|
<!-- checked? -->
|
<xsl:if test="//form/xf:model/xf:instance/cf:data/*[name() = $id]/text() = xf:value/text()">
|
<xsl:attribute name="checked">checked</xsl:attribute>
|
</xsl:if>
|
</xsl:element>
|
|
<xsl:element name="label">
|
<xsl:attribute name="for"><xsl:value-of select="concat(parent::*/parent::*/@id, position())"/></xsl:attribute>
|
<xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">
|
<xsl:attribute name="class">cfRequiredLabel</xsl:attribute>
|
</xsl:if>
|
<xsl:value-of select="xf:label/text()"/>
|
</xsl:element>
|
</xsl:template>
|
|
|
<!-- <cfinput type="checkbox" > -->
|
<xsl:template match="xf:select[@appearance='full']">
|
<xsl:for-each select="xf:choices/xf:item">
|
<xsl:call-template name="checkbox"></xsl:call-template>
|
</xsl:for-each>
|
</xsl:template>
|
|
<xsl:template name="checkbox">
|
<xsl:variable name="id" select="parent::*/parent::*/@id"/>
|
<xsl:element name="input">
|
<xsl:attribute name="type">checkbox</xsl:attribute>
|
<xsl:attribute name="id"><xsl:value-of select="parent::*/parent::*/@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="parent::*/parent::*/@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfCheckbox <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
|
<xsl:attribute name="value"><xsl:value-of select="xf:value/text()" /></xsl:attribute>
|
</xsl:element>
|
|
<!-- label -->
|
<xsl:element name="label">
|
<xsl:attribute name="for"><xsl:value-of select="parent::*/parent::*/@id"/></xsl:attribute>
|
<xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">
|
<xsl:attribute name="class">cfRequiredLabel</xsl:attribute>
|
</xsl:if>
|
<xsl:value-of select="xf:label/text()"/>
|
</xsl:element>
|
</xsl:template>
|
|
|
|
<!-- <cfselect size="1"> </cfselect> -->
|
<xsl:template match="xf:select1[@appearance='minimal'] | xf:select1[@appearance='compact']">
|
|
<xsl:variable name="id" select="@id"/>
|
<xsl:element name="select">
|
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfSelect <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
<xsl:for-each select="xf:choices">
|
<xsl:choose>
|
<xsl:when test="xf:label">
|
<xsl:element name="optgroup">
|
<xsl:attribute name="label"><xsl:value-of select="xf:label"/></xsl:attribute>
|
<xsl:apply-templates select="xf:item" mode="select"/>
|
</xsl:element>
|
</xsl:when>
|
<xsl:otherwise>
|
<xsl:apply-templates select="xf:item" mode="select"/>
|
</xsl:otherwise>
|
</xsl:choose>
|
</xsl:for-each>
|
</xsl:element>
|
</xsl:template>
|
|
<!-- <cfselect size="2+" > </cfselect> -->
|
<xsl:template match="xf:select[@appearance='compact'] | xf:select[@appearance='minimal']">
|
<xsl:variable name="id" select="@id"/>
|
<xsl:element name="select">
|
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfSelect <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
|
<xsl:if test="@appearance = 'compact'">
|
<xsl:attribute name="multiple">multiple</xsl:attribute>
|
</xsl:if>
|
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
<xsl:for-each select="xf:choices">
|
<xsl:choose>
|
<xsl:when test="xf:label">
|
<xsl:element name="optgroup">
|
<xsl:attribute name="label"><xsl:value-of select="xf:label"/></xsl:attribute>
|
<xsl:apply-templates select="xf:item" mode="select"/>
|
</xsl:element>
|
</xsl:when>
|
<xsl:otherwise>
|
<xsl:apply-templates select="xf:item" mode="select"/>
|
</xsl:otherwise>
|
</xsl:choose>
|
</xsl:for-each>
|
</xsl:element>
|
</xsl:template>
|
|
<!-- utility rule used by both xf:select and xf:select1 elements -->
|
<xsl:template match="xf:item" mode="select">
|
<xsl:variable name="id" select="parent::*/parent::*/@id"/>
|
<!-- lowercase selected values and value, so it's a case insensitive check for selected -->
|
<xsl:variable name="selectedValues" select="translate(//form/xf:model/xf:instance/cf:data/*[name() = $id], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>
|
<xsl:variable name="lowervalue" select="translate(xf:value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>
|
<xsl:variable name="value" select="xf:value"/>
|
|
<xsl:element name="option">
|
<xsl:attribute name="value"><xsl:value-of select="$value"/> </xsl:attribute>
|
|
<xsl:if test="string-length($selectedValues) != 0 and contains(concat(',',$selectedValues,','),concat(',',$lowervalue,','))">
|
<xsl:attribute name="selected">selected</xsl:attribute>
|
</xsl:if>
|
|
<xsl:value-of select="xf:label"/>
|
</xsl:element>
|
|
|
</xsl:template>
|
|
|
|
|
|
|
<!-- <cftextarea></cftextarea> -->
|
<xsl:template match="xf:textarea">
|
<xsl:variable name="id" select="@id"/>
|
<xsl:variable name="bind" select="@bind"/>
|
<xsl:element name="textarea">
|
<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="class">cfTextarea <xsl:if test="//form/xf:model/xf:bind[@id = $id]/@required = 'true()'">cfRequiredElement</xsl:if></xsl:attribute>
|
|
<xsl:for-each select="xf:extension/cf:attribute">
|
<xsl:if test="@name != 'width' and @name != 'validate' and @name != 'validation' and @name != 'type'">
|
<xsl:attribute name="{@name}"><xsl:value-of select="text()"/></xsl:attribute>
|
</xsl:if>
|
</xsl:for-each>
|
|
<xsl:for-each select="//form/xf:model/xf:bind[@id = $bind]">
|
<xsl:call-template name="onBlurValidation"/>
|
</xsl:for-each>
|
|
<xsl:value-of select="//form/xf:model/xf:instance/cf:data/*[name() = $id]"/>
|
<xsl:text> </xsl:text><!-- extra space at end, in case no value is defined -->
|
</xsl:element>
|
</xsl:template>
|
|
|
|
|
<!-- <cfslider></cfslider> -->
|
<xsl:template match="xf:range">
|
|
<xsl:choose>
|
<xsl:when test="contains($HTTP_USER_AGENT, 'MSIE')">
|
|
<xsl:text disable-output-escaping="yes"><object classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93'
|
codebase='http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0'</xsl:text>
|
<xsl:text>width="</xsl:text><xsl:value-of select="xf:extension/cf:attribute[@name='width']/text()"/><xsl:text>"</xsl:text>
|
<xsl:text>height="</xsl:text><xsl:value-of select="xf:extension/cf:attribute[@name='height']/text()"/><xsl:text>"</xsl:text>
|
<xsl:text disable-output-escaping="yes">>
|
<param name='code' value='coldfusion.applets.CFSliderApplet.class' />
|
<param name='archive' value='</xsl:text><xsl:value-of select="$CONTEXTPATH"/><xsl:text disable-output-escaping="yes">/CFIDE/classes/cfapplets.jar' />
|
<param name='mayscript' value='true' />
|
</xsl:text>
|
|
<xsl:for-each select="xf:extension/cf:attributes/*">
|
<xsl:text disable-output-escaping="yes"> <param name="</xsl:text><xsl:value-of select="@name"/><xsl:text>" value="t</xsl:text><xsl:value-of select="text()"/><xsl:text disable-output-escaping="yes">" /></xsl:text>
|
</xsl:for-each>
|
|
<xsl:text disable-output-escaping="yes"> <param name="cf_form_name" value="</xsl:text><xsl:value-of select="//form/@cf:name"/><xsl:text disable-output-escaping="yes">" />
|
</xsl:text>
|
<xsl:text disable-output-escaping="yes"> <param name="cf_param_name" value="__CFSLIDER__</xsl:text><xsl:value-of select="//form/@cf:name"/><xsl:text>__</xsl:text> <xsl:value-of select="@bind"/> <xsl:text disable-output-escaping="yes">" /></xsl:text>
|
|
<xsl:text disable-output-escaping="yes">
|
</object>
|
</xsl:text>
|
|
</xsl:when>
|
<xsl:otherwise>
|
|
<xsl:text disable-output-escaping="yes">
|
<embed type="application/x-java-applet;version=1.3" pluginspage="http://java.sun.com/j2se/1.3/jre/index.html" code="coldfusion.applets.CFSliderApplet.class" archive="</xsl:text> <xsl:value-of select="$CONTEXTPATH"/><xsl:text>/CFIDE/classes/cfapplets.jar" mayscript="true"
|
</xsl:text>
|
<xsl:for-each select="xf:extension/cf:attributes/*">
|
<xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="text()"/><xsl:text>"</xsl:text>
|
</xsl:for-each>
|
|
<xsl:text> width="</xsl:text><xsl:value-of select="xf:extension/cf:attribute[@name='width']/text()"/><xsl:text>"</xsl:text>
|
<xsl:text> height="</xsl:text><xsl:value-of select="xf:extension/cf:attribute[@name='height']/text()"/><xsl:text>"</xsl:text>
|
|
<xsl:text> cf_form_name="</xsl:text><xsl:value-of select="//form/@cf:name"/><xsl:text>"</xsl:text>
|
<xsl:text> cf_param_name="__CFSLIDER__</xsl:text><xsl:value-of select="//form/@cf:name"/><xsl:text>__</xsl:text><xsl:value-of select="@bind"/><xsl:text disable-output-escaping="yes">"></xsl:text>
|
|
<xsl:text disable-output-escaping="yes"><noembed></xsl:text>
|
<xsl:value-of select="xf:extension/cf:attribute[@name='notsupported']"/>
|
<xsl:text disable-output-escaping="yes"></noembed></xsl:text>
|
|
<xsl:text disable-output-escaping="yes">
|
</embed>
|
</xsl:text>
|
|
</xsl:otherwise>
|
</xsl:choose>
|
|
|
</xsl:template>
|
|
|
<!-- <CFTREE></CFTREE> -->
|
<xsl:template match="cf:tree">
|
<xsl:value-of select="text()" disable-output-escaping="yes"/>
|
</xsl:template>
|
|
<!-- <CFGRID></CFGRID> -->
|
<xsl:template match="cf:grid">
|
<xsl:value-of select="text()" disable-output-escaping="yes"/>
|
</xsl:template>
|
|
<!-- <CFCALENDAR></CFCALENDAR> -->
|
<xsl:template match="cf:calendar">
|
<xsl:value-of select="text()" disable-output-escaping="yes"/>
|
<xsl:element name="input">
|
<xsl:attribute name="type">hidden</xsl:attribute>
|
<xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
|
<xsl:attribute name="value"></xsl:attribute>
|
</xsl:element>
|
|
</xsl:template>
|
|
|
</xsl:stylesheet>
|