Ignore:
Timestamp:
2003-07-18T15:53:23+12:00 (21 years ago)
Author:
kjdon
Message:

moved some paramlist handling stuff to here from other xsl files. changed params to use ns.name instead of shortname. ns is usually s1, unless there are more than one service, in which case the namespaces will be s1, s2 etc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/web/interfaces/default/transform/service-params.xsl

    r4900 r4977  
    1010  <!-- the default param list handling -->
    1111  <xsl:template match="paramList">
    12     <p/><table width="100%">
     12    <xsl:param name="ns">s1.</xsl:param>
     13    <table width="100%">
    1314      <xsl:for-each select="param">
    1415    <xsl:choose>
    1516      <xsl:when test="@type='multi'">
    1617        <tr><td colspan='2'>
    17         <xsl:apply-templates select='.'/></td></tr>
     18        <xsl:apply-templates select='.'><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates></td></tr>
    1819      </xsl:when>
    1920      <xsl:otherwise>
    20         <xsl:variable name="pname" select="@name"/>
    21         <xsl:variable name="pvalue"><xsl:apply-templates select="." mode="calculate-default"/></xsl:variable>
    22         <tr><td><xsl:value-of select="displayItem[@name='name']"/></td><td align="right"><xsl:apply-templates select="."><xsl:with-param name="default" select="$pvalue"/></xsl:apply-templates></td></tr>
     21        <xsl:variable name="pvalue"><xsl:apply-templates select="." mode="calculate-default"><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates></xsl:variable>
     22        <tr><td><xsl:value-of select="displayItem[@name='name']"/></td><td align="right"><xsl:apply-templates select="."><xsl:with-param name="default" select="$pvalue"/><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates></td></tr>
    2323      </xsl:otherwise>
    2424    </xsl:choose>
     
    2727  </xsl:template>
    2828 
     29  <!-- puts all the params into a=p&p=h type form - need to change this if use
     30  multi params  -->
     31  <xsl:template match="paramList" mode="cgi">
     32    <xsl:param name="ns">s1.</xsl:param>
     33    <xsl:for-each select="param">
     34      <xsl:variable name='pname' select="@name"/>
     35      <xsl:text>&amp;</xsl:text><xsl:value-of select="$ns"/><xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default"><xsl:with-param name='ns' select='$ns'/></xsl:apply-templates>
     36    </xsl:for-each>
     37  </xsl:template>
     38
    2939  <xsl:template match="param" mode="calculate-default">
    30     <xsl:variable name="pname" select="@name"/>
    31     <xsl:choose><xsl:when test="/page/pageRequest/paramList/param[@name=$pname]"><xsl:value-of select="/page/pageRequest/paramList/param[@name=$pname]/@value"/></xsl:when><xsl:otherwise><xsl:value-of select="@default"/></xsl:otherwise></xsl:choose>
     40    <xsl:param name="ns">s1.</xsl:param>
     41    <xsl:variable name="pname"><xsl:value-of select="$ns"/><xsl:value-of select="@name"/></xsl:variable>
     42    <xsl:choose>
     43      <xsl:when test="/page/pageRequest/paramList/param[@name=$pname]">
     44    <xsl:choose>
     45      <xsl:when test="@type='enum_multi'"><xsl:text>,</xsl:text>
     46        <xsl:for-each select="/page/pageRequest/paramList/param[@name=$pname]">
     47          <xsl:value-of select="@value"/>,
     48        </xsl:for-each>
     49      </xsl:when>
     50      <xsl:otherwise>
     51        <xsl:value-of select="/page/pageRequest/paramList/param[@name=$pname]/@value"/>
     52      </xsl:otherwise>
     53    </xsl:choose>
     54      </xsl:when>
     55      <xsl:otherwise>
     56    <xsl:value-of select="@default"/>
     57      </xsl:otherwise>
     58    </xsl:choose>
    3259  </xsl:template>
    3360
    3461  <!-- boolean params -->
    3562  <xsl:template match="param[@type='boolean']">
     63    <xsl:param name="ns">s1.</xsl:param>
    3664    <xsl:param name="default"/>
    37     <xsl:variable name="pname" select='@name'/>
    38     <select name='{@shortname}'>
     65    <select name='{$ns}{@name}'>
    3966      <option value="0"><xsl:if test="$default='0'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="option[@name='0']/displayItem[@name='name']"/></option>
    4067      <option value="1"><xsl:if test="$default='1'"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="option[@name='1']/displayItem[@name='name']"/></option>
     
    4471  <!-- integer params -->
    4572  <xsl:template match="param[@type='integer']">
     73    <xsl:param name="ns">s1.</xsl:param>
    4674    <xsl:param name="default"/>
    47     <input type="text" name="{@shortname}" size="3" value="{$default}"/>
     75    <input type="text" name="{$ns}{@name}" size="3" value="{$default}"/>
    4876  </xsl:template>
    4977
    5078  <!-- single selection enum params -->
    5179  <xsl:template match="param[@type='enum_single']">
     80    <xsl:param name="ns">s1.</xsl:param>
    5281    <xsl:param name="default"/>
    53     <xsl:variable name="pname"><xsl:value-of select='@name'/></xsl:variable>
    5482    <xsl:choose>
    5583      <xsl:when test="count(option) = 1">
    5684    <xsl:value-of select="option/displayItem[@name='name']"/>
    57     <input type='hidden' name='{@shortname}'><xsl:attribute name='value'><xsl:value-of  select='option/@name'/></xsl:attribute></input>
     85    <input type='hidden' name='{$ns}{@name}'><xsl:attribute name='value'><xsl:value-of  select='option/@name'/></xsl:attribute></input>
    5886      </xsl:when>
    5987      <xsl:otherwise>
    60     <select name="{@shortname}">
     88    <select name="{$ns}{@name}">
    6189      <xsl:for-each select="option">
    6290        <option value="{@name}"><xsl:if test="@name=$default"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></option>
     
    7199  <!-- how to do defaults for this?? -->
    72100  <xsl:template match="param[@type='enum_multi']">
    73     <xsl:variable name="pname" select='@name'/>
    74     <select name="{@shortname}" size='2'><xsl:attribute name="multiple"></xsl:attribute>
     101    <xsl:param name="ns">s1.</xsl:param>
     102    <xsl:param name="default"/>
     103    default = <xsl:value-of select="$default"/>
     104    <select name="{$ns}{@name}" size='2'><xsl:attribute name="multiple"></xsl:attribute>
    75105      <xsl:for-each select="option">
    76     <option value="{@name}"><xsl:value-of select="displayItem[@name='name']"/></option>
     106    <option value="{@name}"><xsl:if test="contains($default, concat(',', @name, ','))"><xsl:attribute name="selected"></xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></option>
    77107      </xsl:for-each>
    78108    </select>
     
    81111  <!-- string params -->
    82112  <xsl:template match="param[@type='string']">
     113    <xsl:param name="ns">s1.</xsl:param>
    83114    <xsl:param name="default"/>
    84     <input type="text" name="{@shortname}" size="50" value="{$default}"/>
     115    <input type="text" name="{$ns}{@name}" size="50" value="{$default}"/>
    85116  </xsl:template>
    86117 
    87118  <!-- large string  params -->
    88119  <xsl:template match="param[@type='text']">
     120    <xsl:param name="ns">s1.</xsl:param>
    89121    <xsl:param name="default"/>
    90     <textarea name="{@shortname}" cols="50" rows="3"><xsl:value-of select='$default'/></textarea>
     122    <textarea name="{$ns}{@name}" cols="50" rows="3"><xsl:value-of select='$default'/></textarea>
    91123  </xsl:template>
    92124
    93125  <!-- multi params - params that are combinations of other params -->
    94126  <xsl:template match="param[@type='multi']">
     127    <xsl:param name="ns">s1.</xsl:param>
    95128    <xsl:variable name="parent" select="@name"/>
    96129    <table>
     
    101134    </xsl:for-each>
    102135      </tr>
    103       <xsl:apply-templates select="." mode="contents"><xsl:with-param name="occurs" select="@occurs"/></xsl:apply-templates>
     136      <xsl:apply-templates select="." mode="contents"><xsl:with-param name="occurs" select="@occurs"/><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates>
    104137    </table>
    105138  </xsl:template>
    106139
    107140  <xsl:template match="param[@type='multi']" mode="contents">
     141    <xsl:param name="ns">s1.</xsl:param>
    108142    <xsl:param name="occurs">1</xsl:param>
    109143    <xsl:variable name="pos" select="@occurs - $occurs"/>   
     
    113147    <td><xsl:choose>
    114148        <xsl:when test="not(@ignore) or  @ignore != $pos">     
    115           <xsl:apply-templates select='.'><xsl:with-param name="default" select="java:org.greenstone.gsdl3.util.XSLTUtil.getNumberedItem($values, $pos)"/></xsl:apply-templates>
     149          <xsl:apply-templates select='.'><xsl:with-param name="default" select="java:org.greenstone.gsdl3.util.XSLTUtil.getNumberedItem($values, $pos)"/><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates>
    116150        </xsl:when>
    117151        <xsl:otherwise><!-- put in a hidden placeholder -->
    118           <input type="hidden" name='{@shortname}' value=''/>
     152          <input type="hidden" name='{$ns}{@name}' value=''/>
    119153        </xsl:otherwise>
    120154      </xsl:choose></td>
     
    122156    <!-- recursively call this template to get multiple entries -->
    123157    <xsl:if test="$occurs &gt; 1">
    124       <xsl:apply-templates select="." mode="contents"><xsl:with-param name="occurs" select="$occurs - 1"/></xsl:apply-templates>
     158      <xsl:apply-templates select="." mode="contents"><xsl:with-param name="occurs" select="$occurs - 1"/><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates>
    125159    </xsl:if>
    126160  </xsl:template>
Note: See TracChangeset for help on using the changeset viewer.