Ignore:
Timestamp:
2012-10-23T13:58:22+13:00 (12 years ago)
Author:
kjdon
Message:

moved all param templates here so they can be used by preferences page too. new param-display template which calculates the default value, outputs the description and then the form element. can just call this to output a param

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/transform/query-common.xsl

    r26278 r26366  
    77    exclude-result-prefixes="java util">
    88   
    9     <xsl:template match="param" mode="calculate-default">
     9  <xsl:template name="param-display">
     10    <xsl:param name="ns">s1.</xsl:param>
     11    <xsl:variable name="pvalue"><xsl:call-template name="param-calculate-default"><xsl:with-param name="ns" select="$ns"/></xsl:call-template></xsl:variable>
     12    <div class="paramLabel"><xsl:value-of select="displayItem[@name='name']"/></div>
     13    <div class="paramValue">
     14      <xsl:apply-templates select=".">
     15    <xsl:with-param name="default" select="$pvalue"/>
     16    <xsl:with-param name="ns" select="$ns"/>
     17      </xsl:apply-templates>
     18    </div>
     19    <br class="clear"/>
     20  </xsl:template>
     21
     22  <xsl:template name="param-calculate-default"  match="param" mode="calculate-default">
    1023        <xsl:param name="ns">s1.</xsl:param>
    1124        <xsl:variable name="pname"><xsl:value-of select="$ns"/><xsl:value-of select="@name"/></xsl:variable>
     
    2942    </xsl:template>
    3043   
     44    <!-- invisible params - used by other stuff. in the query form, we set to the default -->
     45    <xsl:template match="param[@type='invisible']">
     46        <xsl:param name="ns">s1.</xsl:param>
     47        <input type='hidden' name='{$ns}{@name}' value='{@default}'/>
     48    </xsl:template>
     49
     50    <!-- boolean params -->
     51    <xsl:template match="param[@type='boolean']">
     52        <xsl:param name="ns">s1.</xsl:param>
     53        <xsl:param name="default"/>
     54        <select name='{$ns}{@name}'>
     55            <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>
     56            <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>
     57        </select>
     58    </xsl:template>
     59
     60    <!-- integer params -->
     61    <xsl:template match="param[@type='integer']">
     62        <xsl:param name="ns">s1.</xsl:param>
     63        <xsl:param name="default"/>
     64        <input type="text" name="{$ns}{@name}" size="3" value="{$default}"/>
     65    </xsl:template>
     66
    3167    <!-- single selection enum params -->
    3268    <xsl:template match="param[@type='enum_single']">
     
    5086        </xsl:choose>
    5187    </xsl:template>
     88    <!-- multiple selection enum params -->
     89    <!-- how to do defaults for this?? -->
     90    <xsl:template match="param[@type='enum_multi']">
     91        <xsl:param name="ns">s1.</xsl:param>
     92        <xsl:param name="default"/>
     93        <select name="{$ns}{@name}" size="2">
     94            <xsl:attribute name="multiple"></xsl:attribute>
     95            <xsl:for-each select="option">
     96                <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>
     97            </xsl:for-each>
     98        </select>
     99    </xsl:template>
    52100   
    53101    <xsl:template match="param[@type='string']">
     
    56104        <input type="text" name="{$ns}{@name}" size="30" value="{$default}"/>
    57105    </xsl:template>
     106
     107
     108    <!-- large string  params -->
     109    <xsl:template match="param[@type='text']">
     110        <xsl:param name="ns">s1.</xsl:param>
     111        <xsl:param name="default"/>
     112        <textarea name="{$ns}{@name}" cols="50" rows="3"><xsl:value-of select='$default'/></textarea>
     113    </xsl:template>
     114
     115    <!-- multi params - params that are combinations of other params -->
     116    <xsl:template match="param[@type='multi']">
     117        <xsl:param name="ns">s1.</xsl:param>
     118        <xsl:variable name="parent" select="@name"/>
     119
     120        <table>
     121            <tr class="queryfieldheading">
     122                <xsl:value-of select="displayItem[@name='name']"/>
     123                <xsl:for-each select="param">
     124                    <td class="queryfieldname"><xsl:value-of select="displayItem[@name='name']"/></td>
     125                </xsl:for-each>
     126            </tr>
     127            <xsl:apply-templates select="." mode="contents">
     128                <xsl:with-param name="occurs" select="@occurs"/>
     129                <xsl:with-param name="ns" select="$ns"/>
     130            </xsl:apply-templates>
     131        </table>
     132
     133    </xsl:template>
     134   
     135    <xsl:template match="param[@type = 'checkbox_list']">
     136        <xsl:param name="ns">s1.</xsl:param>
     137        <ul class="checkboxList">
     138            <xsl:for-each select="option">
     139                <li><input type="checkbox" name="{$ns}{../@name}" value="{@name}"/><xsl:value-of select="displayItem"/></li>
     140            </xsl:for-each>
     141        </ul>
     142    </xsl:template>
     143
     144    <xsl:template match="param[@type='multi']" mode="contents">
     145        <xsl:param name="ns">s1.</xsl:param>
     146        <xsl:param name="occurs">1</xsl:param>
     147        <xsl:variable name="pos" select="@occurs - $occurs"/>   
     148        <tr class="queryfieldrow">
     149            <xsl:for-each select="param">
     150                <xsl:variable name="pname"><xsl:value-of select="$ns"/><xsl:value-of select="@name"/></xsl:variable>
     151                <xsl:variable name="values" select="/page/pageRequest/paramList/param[@name=$pname]/@value"/>
     152                <td class="queryfieldcell">
     153                    <xsl:choose>
     154                        <xsl:when test="not(@ignore) or  @ignore != $pos">     
     155                            <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>
     156                        </xsl:when>
     157                        <xsl:otherwise><!-- put in a hidden placeholder -->
     158                            <input type="hidden" name='{$ns}{@name}' value=''/>
     159                        </xsl:otherwise>
     160                    </xsl:choose>
     161                </td>
     162            </xsl:for-each>
     163        </tr>
     164
     165        <!-- recursively call this template to get multiple entries -->
     166        <xsl:if test="$occurs &gt; 1">
     167            <xsl:apply-templates select="." mode="contents"><xsl:with-param name="occurs" select="$occurs - 1"/><xsl:with-param name="ns" select="$ns"/></xsl:apply-templates>
     168        </xsl:if>
     169    </xsl:template>
     170
    58171</xsl:stylesheet>
Note: See TracChangeset for help on using the changeset viewer.