view gnv/src/main/webapp/WEB-INF/config/templates/describe-ui.xsl @ 413:0ce07c6e132c

Refactored xsl sheet for ui's dynamic part: Removed local-name() method, put 'group' items into a table to be well aligned and set the size of multi select boxes to max 5 items or less. gnv/trunk@621 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 25 Jan 2010 14:53:38 +0000
parents d812c5b62eb4
children 59c6c7b62e43
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns="http://www.w3.org/2002/xforms" 
                xmlns:xform="http://www.w3.org/2002/xforms" 
                xmlns:art="http://www.intevation.de/2009/artifacts"
                exclude-result-prefixes="xform art">

    <xsl:output
        method="html" version="1.0" encoding="UTF-8" omit-xml-declaration="no" />

    <!-- single select -->
    <xsl:template match="xform:select1">
        <xsl:variable name="selectName" select="@ref"/>
        <legend><xsl:value-of select="xform:label"/></legend>
        <select name="{$selectName}">
            <xsl:apply-templates />
        </select>
    </xsl:template>


    <!-- multi select -->
    <xsl:template match="xform:select">
        <xsl:variable name="selectName" select="@ref"/>
        <xsl:variable name="items" select="count(//xform:item)"/>

        <legend><xsl:value-of select="xform:label"/></legend>
        <xsl:choose>
            <xsl:when test="$items &lt; 5">
                <select name="{$selectName}" multiple="multiple" size="{$items}">
                    <xsl:apply-templates/>
                </select>
            </xsl:when>
            <xsl:otherwise>
                <select name="{$selectName}" multiple="multiple" size="5">
                    <xsl:apply-templates />
                </select>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <!-- options for select -->
    <xsl:template match="xform:item">
        <xsl:variable name="optionValue" select="xform:value"/>
        <xsl:choose>
            <xsl:when test="@selected = 'true'">
                <option value="{$optionValue}" selected="selected">
                    <xsl:value-of select="xform:label"/>
                </option>
            </xsl:when>
            <xsl:otherwise>
                <option value="{$optionValue}">
                    <xsl:value-of select="xform:label"/>
                </option>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>


    <xsl:template match="xform:group">
        <legend>
            <xsl:value-of select="xform:label"/>
        </legend>
        <table class="dynamic">
            <xsl:apply-templates/>
        </table>
    </xsl:template>


    <xsl:template match="xform:input">
        <xsl:variable name="inputValue" select="xform:value"/>
        <xsl:variable name="inputName" select="@ref"/>
        <xsl:variable name="label" select="xform:label"/>
        
        <!-- TODO: Remove this when we have the GIS interface. (slt) --> 
        <xsl:choose>
            <xsl:when test="$inputName = 'mesh_linestring'">
                <a href="javascript:copy_demo_wkt_line();"><xsl:text>Beispiel WKT-Linestring einf&#252;gen:</xsl:text></a><br/>
            </xsl:when>
            <xsl:when test="$inputName = 'mesh_polygon'">
                <a href="javascript:copy_demo_wkt_polygon();"><xsl:text>Beispiel WKT-Polygon einf&#252;gen:</xsl:text></a><br/>
            </xsl:when>
        </xsl:choose>

        <tr>
            <xsl:choose>
                <xsl:when test="$label != ''">
                    <td><xsl:value-of select="$label"/>:</td>
               </xsl:when>
            </xsl:choose>

            <td>
                <input type="text" id="{$inputName}" name="{$inputName}" value="{$inputValue}" /><br/>
            </td>
        </tr>
    </xsl:template>


    <xsl:template match="xform:label">
        <!-- do nothing here -->
    </xsl:template>

</xsl:stylesheet>

http://dive4elements.wald.intevation.org