Ignore:
Timestamp:
2019-10-22T13:51:02+13:00 (5 years ago)
Author:
kjdon
Message:

reindented the file

File:
1 edited

Legend:

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

    r33492 r33592  
    11<?xml version="1.0" encoding="ISO-8859-1"?>
    22<xsl:stylesheet version="1.0"
    3     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    4     xmlns:java="http://xml.apache.org/xslt/java"
    5     xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
    6     xmlns:gslib="http://www.greenstone.org/skinning"
    7     xmlns:gsvar="http://www.greenstone.org/skinning-var"
    8     xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
    9     extension-element-prefixes="java util"
    10     exclude-result-prefixes="java util gsf">
    11 
    12     <!-- use the 'main' layout -->
    13     <xsl:import href="layouts/main.xsl"/>
    14     <xsl:import href="map-tools.xsl"/>
    15     <xsl:import href="panorama-viewer-tools.xsl"/>
    16 
    17     <!-- set page title -->
    18     <xsl:template name="pageTitle">
    19         <gslib:serviceName/>
    20     </xsl:template>
    21 
    22     <!-- set page breadcrumbs -->
    23     <xsl:template name="breadcrumbs">
    24         <gslib:siteLink/>
    25         <gslib:rightArrow/>
    26         <xsl:if test="/page/pageResponse/collection">
    27             <gslib:collectionNameLinked/>
    28             <gslib:rightArrow/>
    29         </xsl:if>
    30     </xsl:template>
    31 
    32     <!-- do we display the line 'displaying 0 to 20 of 40 documents'-->
    33     <!-- on by default. To turn off, add the following in <search> element in collectionConfig.xml:
    34          <gsf:option name="hideStatus" value="true"/> -->
    35     <xsl:variable name="display_status_bar">
    36       <xsl:if test="/page/pageResponse/format[@type='search']/gsf:option[@name='hideStatus']/@value='true'">false</xsl:if></xsl:variable>
    37     <!-- the page content -->
    38     <xsl:template match="/page">
    39         <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''">
    40             <xsl:call-template name="queryPage"/>
    41         </xsl:if>
     3        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     4        xmlns:java="http://xml.apache.org/xslt/java"
     5        xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
     6        xmlns:gslib="http://www.greenstone.org/skinning"
     7        xmlns:gsvar="http://www.greenstone.org/skinning-var"
     8        xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
     9        extension-element-prefixes="java util"
     10        exclude-result-prefixes="java util gsf">
     11
     12  <!-- use the 'main' layout -->
     13  <xsl:import href="layouts/main.xsl"/>
     14  <xsl:import href="map-tools.xsl"/>
     15  <xsl:import href="panorama-viewer-tools.xsl"/>
     16
     17  <!-- set page title -->
     18  <xsl:template name="pageTitle">
     19    <gslib:serviceName/>
     20  </xsl:template>
     21
     22  <!-- set page breadcrumbs -->
     23  <xsl:template name="breadcrumbs">
     24    <gslib:siteLink/>
     25    <gslib:rightArrow/>
     26    <xsl:if test="/page/pageResponse/collection">
     27      <gslib:collectionNameLinked/>
     28      <gslib:rightArrow/>
     29    </xsl:if>
     30  </xsl:template>
     31
     32  <!-- do we display the line 'displaying 0 to 20 of 40 documents'-->
     33  <!-- on by default. To turn off, add the following in <search> element in collectionConfig.xml:
     34       <gsf:option name="hideStatus" value="true"/> -->
     35  <xsl:variable name="display_status_bar">
     36  <xsl:if test="/page/pageResponse/format[@type='search']/gsf:option[@name='hideStatus']/@value='true'">false</xsl:if></xsl:variable>
     37  <!-- the page content -->
     38  <xsl:template match="/page">
     39    <xsl:if test="not(/page/pageRequest/paramList/param[@name = 'qs']) or /page/pageRequest/paramList/param[@name = 'qs']/@value = ''">
     40      <xsl:call-template name="queryPage"/>
     41    </xsl:if>
    4242    <xsl:if test="contains(/page/pageRequest/paramList/param[@name='rt']/@value, 'r')">
    43         <xsl:call-template name="resultsPage"/>
    44    </xsl:if>
    45     </xsl:template>
    46 
    47     <xsl:template name="resultsPage">
    48         <xsl:call-template name="resultsPagePre"/>
    49         <xsl:call-template name="displayMatchDocs"/>
    50         <xsl:call-template name="displayTermInfo"/>
    51         <xsl:call-template name="displayBaskets"/>
    52         <xsl:call-template name="displayResults"/>
    53         <xsl:call-template name="resultsPagePost"/>
    54     </xsl:template>
    55 
    56     <!-- optional cgi-params for links to document pages -->
    57     <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&amp;ck=TextQuery</xsl:if>
    58     </xsl:variable>
    59 
    60     <xsl:template name="displayBaskets">
    61       <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))">
    62         <div id="rightSidebar">
    63           <xsl:if test="$berryBasketOn">
    64         <!-- show the berry basket if it's turned on -->
    65         <gslib:berryBasket/>
    66         <xsl:text> </xsl:text>
     43      <xsl:call-template name="resultsPage"/>
     44    </xsl:if>
     45  </xsl:template>
     46
     47  <xsl:template name="resultsPage">
     48    <xsl:call-template name="resultsPagePre"/>
     49    <xsl:call-template name="displayMatchDocs"/>
     50    <xsl:call-template name="displayTermInfo"/>
     51    <xsl:call-template name="displayBaskets"/>
     52    <xsl:call-template name="displayResults"/>
     53    <xsl:call-template name="resultsPagePost"/>
     54  </xsl:template>
     55
     56  <!-- optional cgi-params for links to document pages -->
     57  <xsl:variable name="opt-doc-link-args">p.s=<gsvar:this-service/><xsl:if test="/page/pageRequest/paramList/param[@name ='s1.collection']">&amp;ck=TextQuery</xsl:if>
     58  </xsl:variable>
     59
     60  <xsl:template name="displayBaskets">
     61    <xsl:if test="$berryBasketOn or $favouriteBasketOn or ($documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor)))">
     62      <div id="rightSidebar">
     63    <xsl:if test="$berryBasketOn">
     64      <!-- show the berry basket if it's turned on -->
     65      <gslib:berryBasket/>
     66      <xsl:text> </xsl:text>
     67    </xsl:if>
     68
     69    <xsl:if test="$favouriteBasketOn">
     70      <!-- show the favourites 'basket' if it's turned on -->
     71      <gslib:gotoFavourites/>
     72      <xsl:text> </xsl:text>
     73    </xsl:if>
     74
     75    <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))">
     76      <gslib:documentBasket/>
     77      <xsl:text> </xsl:text>
     78    </xsl:if>
     79      </div>
     80    </xsl:if>
     81  </xsl:template>
     82
     83  <xsl:template name="displayResults">
     84    <xsl:if test="/page/pageResponse/facetList/facet">
     85      <xsl:call-template name="displayFacets"/>
     86    </xsl:if>
     87    <div id="resultsArea">
     88      <xsl:attribute name="class">
     89    <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if>
     90      </xsl:attribute>
     91      <table id="resultsTable">
     92    <xsl:for-each select="pageResponse/documentNodeList/documentNode">
     93      <tr id="div{@nodeID}" class="document">
     94        <xsl:apply-templates select="."/>
     95        <!-- The berry/favourite (optional) -->
     96        <td valign="top">
     97          <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'">
     98        <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
    6799          </xsl:if>
    68 
    69           <xsl:if test="$favouriteBasketOn">
    70         <!-- show the favourites 'basket' if it's turned on -->
    71         <gslib:gotoFavourites/>
    72         <xsl:text> </xsl:text>
     100          <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'">
     101        <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/>
    73102          </xsl:if>
    74 
    75           <xsl:if test="$documentBasketOn and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))">
    76         <gslib:documentBasket/>
    77         <xsl:text> </xsl:text>
    78           </xsl:if>
     103        </td>
     104        <xsl:call-template name="highlightSnippet">
     105          <xsl:with-param name="nodeHASH">
     106        <xsl:value-of select="@nodeID"/>
     107          </xsl:with-param>
     108          <xsl:with-param name="collection" select="@collection"/>
     109          <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>-->
     110        </xsl:call-template>
     111        <xsl:call-template name="documentNodePost"/>
     112      </tr>
     113    </xsl:for-each>
     114    <br/>
     115      </table>
     116
     117      <!-- Previous/Next buttons-->
     118      <xsl:call-template name="prevNextButtons"/>
     119    </div>
     120    <xsl:if test="/page/pageResponse/facetList/facet">
     121      <div style="clear:both;">
     122    <xsl:text> </xsl:text>
     123      </div>
     124    </xsl:if>
     125  </xsl:template>
     126
     127  <xsl:template name="displayFacets">
     128    <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script>
     129    <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js">
     130      <xsl:text> </xsl:text>
     131    </script>
     132    <div id="facetSelector">
     133      <xsl:for-each select="/page/pageResponse/facetList/facet">
     134    <xsl:if test="count(count) > 0">
     135      <ul class="facetTable ui-widget-content" indexName="{@name}">
     136        <xsl:variable name="serviceName">
     137          <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/>
     138        </xsl:variable>
     139        <xsl:variable name="indexShortName">
     140          <xsl:value-of select="@name"/>
     141        </xsl:variable>
     142        <xsl:variable name="countSize">
     143          <xsl:choose>
     144        <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']">
     145          <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/>
     146        </xsl:when>
     147        <xsl:otherwise>8</xsl:otherwise>
     148          </xsl:choose>
     149        </xsl:variable>
     150
     151        <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;">
     152          <xsl:value-of select="displayItem[@name='name']"/>
     153        </li>
     154        <xsl:for-each select="count">
     155          <li>
     156        <xsl:attribute name="style">
     157          <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/>
     158          </xsl:if>
     159        </xsl:attribute>
     160        <input type="checkbox" onclick="performRefinedSearch();"/>
     161        <span>
     162          <xsl:value-of select="@name"/>
     163          </span>(<xsl:value-of select="."/>)
     164          </li>
     165        </xsl:for-each>
     166        <xsl:if test="count(count) > $countSize">
     167          <li class="expandFacetList{$indexShortName}">
     168        <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a>
     169          </li>
     170          <li class="collapseFacetList{$indexShortName}" style="display: none;">
     171        <a  class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a>
     172          </li>
     173        </xsl:if>
     174      </ul>
     175    </xsl:if>
     176      </xsl:for-each>
     177    </div>
     178
     179  </xsl:template>
     180  <!-- this usually gets overriden in collectionConfig.xml -->
     181  <gsf:template match="documentNode">
     182    <td valign="top">
     183      <gsf:link type="document">
     184    <gsf:icon type="document"/>
     185      </gsf:link>
     186    </td>
     187    <td>
     188      <gsf:link type="document">
     189    <xsl:call-template name="choose-title"/>
     190      </gsf:link>
     191    </td>
     192  </gsf:template>
     193
     194  <xsl:template name="highlightSnippet">
     195    <xsl:param name="nodeHASH"/>
     196    <xsl:param name="collection"/>
     197    <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]">
     198      <xsl:if test="not($collection) or $collection = @collection">
     199        <tr>
     200          <td>
     201          </td>
     202          <td>
     203            <div class="HighlightSnippet">
     204              <xsl:value-of select="." disable-output-escaping="yes"/>
    79205        </div>
     206          </td>
     207        </tr>
     208      </xsl:if>
     209    </xsl:for-each>
     210  </xsl:template>
     211 
     212  <xsl:template name="queryPage">
     213    <xsl:for-each select="pageResponse/service">
     214      <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable>
     215      <form name="QueryForm" method="get" action="{$form_action}">
     216    <div>
     217      <input type="hidden" name="a" value="q"/>
     218      <input type="hidden" name="sa">
     219        <xsl:attribute name="value">
     220          <xsl:value-of select="/page/pageRequest/@subaction"/>
     221        </xsl:attribute>
     222      </input>
     223      <input type="hidden" name="rt" value="rd"/>
     224     
     225      <xsl:variable name="ns">s1.</xsl:variable>
     226      <xsl:choose>
     227        <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']">
     228          <xsl:call-template name="CCSParams"> <!-- cross coll search -->
     229        <xsl:with-param name="ns" select="$ns" />
     230          </xsl:call-template>
     231        </xsl:when>
     232        <xsl:otherwise>
     233          <xsl:for-each select="paramList/param">
     234        <xsl:choose>
     235          <xsl:when test="@type='multi'">
     236            <xsl:apply-templates select=".">
     237              <xsl:with-param name="ns" select="$ns"/>
     238            </xsl:apply-templates>
     239          </xsl:when>
     240          <xsl:otherwise>
     241            <xsl:call-template name="param-display">
     242              <xsl:with-param name="ns" select="$ns"/>
     243            </xsl:call-template>
     244          </xsl:otherwise>
     245        </xsl:choose>
     246          </xsl:for-each>
     247        </xsl:otherwise>
     248      </xsl:choose>
     249      <br/>
     250      <input type="submit">
     251        <xsl:attribute name="value">
     252          <xsl:value-of select="displayItem[@name='submit']"/>
     253        </xsl:attribute>
     254      </input>
     255    </div>
     256      </form>
     257    </xsl:for-each>
     258  </xsl:template>
     259
     260  <xsl:template name="CCSParams">
     261    <xsl:param name="ns" />
     262    <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable>
     263    <!-- display the collection param -->
     264    <div class="paramLabel">
     265      <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" />
     266    </div>
     267    <div class="paramValue">
     268      <select multiple="" size='10'>
     269    <xsl:attribute name="name">
     270      <xsl:value-of select="$ns"></xsl:value-of>
     271      <xsl:text>collection</xsl:text>
     272    </xsl:attribute>
     273    <xsl:for-each select="/page/pageResponse/hierarchy/*">
     274      <xsl:call-template name="hierarchy-display">
     275        <xsl:with-param name="padding">0</xsl:with-param>
     276        <xsl:with-param name="currentSelection" select="$currentSelection"/>
     277      </xsl:call-template>
     278    </xsl:for-each>
     279      </select>
     280    </div>
     281    <br class="clear" />
     282    <!-- display all the other params -->
     283    <xsl:for-each select="paramList/param[@name !='collection']">
     284      <xsl:choose>
     285    <xsl:when test="@type='multi'">
     286      <xsl:apply-templates select=".">
     287        <xsl:with-param name="ns" select="$ns"/>
     288      </xsl:apply-templates>
     289    </xsl:when>
     290    <xsl:otherwise>
     291      <xsl:call-template name="param-display">
     292        <xsl:with-param name="ns" select="$ns"/>
     293      </xsl:call-template>
     294    </xsl:otherwise>
     295      </xsl:choose>
     296    </xsl:for-each>
     297  </xsl:template>
     298
     299  <xsl:template name="hierarchy-display">
     300    <xsl:param name="padding" />
     301    <xsl:param name="path" />
     302    <xsl:param name="currentSelection"/>
     303    <xsl:choose>
     304      <xsl:when test="name(.) = 'group'">
     305    <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable>
     306    <option>
     307      <xsl:attribute name="style">
     308        <xsl:text>padding-left: </xsl:text>
     309        <xsl:value-of select="concat($padding,'px')" />
     310      </xsl:attribute>
     311      <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute>
     312      <xsl:if test="util:csvContains($currentSelection, $group-name)">
     313        <xsl:attribute name="selected">selected</xsl:attribute>
    80314      </xsl:if>
    81     </xsl:template>
    82 
    83     <xsl:template name="displayResults">
    84       <xsl:if test="/page/pageResponse/facetList/facet">
    85         <xsl:call-template name="displayFacets"/>
     315      <xsl:value-of select="@title"></xsl:value-of>
     316      <xsl:for-each select="./*">
     317        <xsl:call-template name="hierarchy-display">
     318          <xsl:with-param name="padding">
     319        <xsl:value-of select="$padding + 20" />
     320          </xsl:with-param>
     321          <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param>
     322          <xsl:with-param name="currentSelection" select="$currentSelection"/>
     323        </xsl:call-template>
     324      </xsl:for-each>
     325    </option>
     326      </xsl:when>
     327      <xsl:otherwise>
     328    <option>
     329      <xsl:attribute name="style">
     330        <xsl:text>padding-left: </xsl:text>
     331        <xsl:value-of select="$padding" />
     332        <xsl:text>px</xsl:text>
     333      </xsl:attribute>
     334      <xsl:if   test="util:csvContains($currentSelection, @name)">
     335        <xsl:attribute name="selected">selected</xsl:attribute>
    86336      </xsl:if>
    87         <div id="resultsArea">
    88             <xsl:attribute name="class">
    89                 <xsl:if test="/page/pageResponse/facetList/facet">facetedResults</xsl:if>
    90             </xsl:attribute>
    91             <table id="resultsTable">
    92                 <xsl:for-each select="pageResponse/documentNodeList/documentNode">
    93                     <tr id="div{@nodeID}" class="document">
    94                         <xsl:apply-templates select="."/>
    95                         <!-- The berry/favourite (optional) -->
    96                         <td valign="top">
    97                           <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'berryBasket']/@value = 'true'">
    98                             <xsl:call-template name="documentBerryForClassifierOrSearchPage"/>
    99                           </xsl:if>
    100                           <xsl:if test="/page/pageResponse/interfaceOptions/option[@name = 'favouriteBasket']/@value = 'true'">
    101                             <xsl:call-template name="documentFavouriteForClassifierOrSearchPage"/>
    102                           </xsl:if>
    103                         </td>
    104                         <xsl:call-template name="highlightSnippet">
    105                             <xsl:with-param name="nodeHASH">
    106                                 <xsl:value-of select="@nodeID"/>
    107                             </xsl:with-param>
    108                             <xsl:with-param name="collection" select="@collection"/>
    109                               <!--<xsl:choose> <xsl:when test="@collection"><xsl:value-of select="@collection"/></xsl:with-param>-->
    110                         </xsl:call-template>
    111                         <xsl:call-template name="documentNodePost"/>
    112                     </tr>
    113                 </xsl:for-each>
    114                 <br/>
    115             </table>
    116 
    117             <!-- Previous/Next buttons-->
    118             <xsl:call-template name="prevNextButtons"/>
    119         </div>
    120         <xsl:if test="/page/pageResponse/facetList/facet">
    121             <div style="clear:both;">
    122                 <xsl:text> </xsl:text>
    123             </div>
    124         </xsl:if>
    125     </xsl:template>
    126 
    127     <xsl:template name="displayFacets">
    128             <script type="text/javascript" src="interfaces/{$interface_name}/js/utility_scripts.js"><xsl:text> </xsl:text></script>
    129             <script type="text/javascript" src="interfaces/{$interface_name}/js/facet-scripts.js">
    130                 <xsl:text> </xsl:text>
    131             </script>
    132             <div id="facetSelector">
    133                 <xsl:for-each select="/page/pageResponse/facetList/facet">
    134                     <xsl:if test="count(count) > 0">
    135                         <ul class="facetTable ui-widget-content" indexName="{@name}">
    136                             <xsl:variable name="serviceName">
    137                                 <xsl:value-of select="/page/pageRequest/paramList/param[@name = 's']/@value"/>
    138                             </xsl:variable>
    139                             <xsl:variable name="indexShortName">
    140                                 <xsl:value-of select="@name"/>
    141                             </xsl:variable>
    142                             <xsl:variable name="countSize">
    143                                 <xsl:choose>
    144                                     <xsl:when test="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']">
    145                                         <xsl:value-of select="/page/pageResponse/format[@type='search']/gsf:option[@name='facetTableRows']/@value"/>
    146                                     </xsl:when>
    147                                     <xsl:otherwise>8</xsl:otherwise>
    148                                 </xsl:choose>
    149                             </xsl:variable>
    150 
    151                             <li class="ui-widget-header" style="text-transform:capitalize; text-align:center;">
    152                               <xsl:value-of select="displayItem[@name='name']"/>
    153                             </li>
    154                             <xsl:for-each select="count">
    155                                 <li>
    156                                     <xsl:attribute name="style">
    157                                         <xsl:if test="position() > $countSize">display:none;<xsl:value-of select="$indexShortName"/>
    158                                         </xsl:if>
    159                                     </xsl:attribute>
    160                                     <input type="checkbox" onclick="performRefinedSearch();"/>
    161                                     <span>
    162                                         <xsl:value-of select="@name"/>
    163                                     </span>(<xsl:value-of select="."/>)
    164                                 </li>
    165                             </xsl:for-each>
    166                             <xsl:if test="count(count) > $countSize">
    167                                 <li class="expandFacetList{$indexShortName}">
    168                                     <a class="expandFacetListLink{$indexShortName}" href="javascript:expandFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.more')"/></a>
    169                                 </li>
    170                                 <li class="collapseFacetList{$indexShortName}" style="display: none;">
    171                                     <a  class="collapseFacetListLink{$indexShortName}" href="javascript:collapseFacetList('{$indexShortName}', {$countSize});"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.facet.less')"/></a>
    172                                 </li>
    173                             </xsl:if>
    174                         </ul>
    175                     </xsl:if>
    176                 </xsl:for-each>
    177             </div>
    178 
    179     </xsl:template>
    180     <!-- this usually gets overriden in collectionConfig.xml -->
    181     <gsf:template match="documentNode">
    182       <td valign="top">
    183         <gsf:link type="document">
    184           <gsf:icon type="document"/>
    185         </gsf:link>
     337      <xsl:attribute name="value">
     338        <xsl:value-of select="current()/@name"></xsl:value-of>
     339      </xsl:attribute>
     340      <xsl:value-of
     341          select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of>
     342    </option>
     343      </xsl:otherwise>
     344    </xsl:choose>
     345  </xsl:template>
     346
     347  <xsl:template name="displayMatchDocs">
     348    <div id="matchdocs">
     349      <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/>
     350      <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>
     351      <xsl:variable name="docLevel">
     352    <xsl:call-template name="documentLevel"/>
     353      </xsl:variable>
     354      <xsl:variable name="docLevelText">
     355    <xsl:call-template name="documentLevelText">
     356      <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/>
     357      <xsl:with-param name="level" select="$docLevel"/>
     358    </xsl:call-template>
     359      </xsl:variable>
     360      <xsl:choose>
     361    <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'">
     362      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/>
     363    </xsl:when>
     364    <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'">
     365      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/>
     366    </xsl:when>
     367    <xsl:when test="$numDocsMatched">
     368      <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/>
     369      <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/>
     370     
     371      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/>
     372      <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if>
     373    </xsl:when>
     374    <xsl:when test="$numDocsReturned">
     375      <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/>
     376      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/>
     377    </xsl:when>
     378      </xsl:choose>
     379    </div>
     380
     381  </xsl:template>
     382
     383  <xsl:template name="documentLevel">
     384    <xsl:choose>
     385      <xsl:when test="/page/pageRequest/paramList/param[@name='level']">
     386    <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" />
     387      </xsl:when>
     388      <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']">
     389    <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" />
     390      </xsl:when>
     391      <xsl:otherwise>Doc</xsl:otherwise>
     392    </xsl:choose>
     393  </xsl:template>
     394
     395  <xsl:template name="documentLevelText">
     396    <xsl:param name="numDocsMatched">0</xsl:param>
     397    <xsl:param name="level">Doc</xsl:param>
     398    <xsl:choose>   
     399      <xsl:when test="$numDocsMatched = 1">
     400    <xsl:choose>
     401      <xsl:when test="$level = 'Doc'">
     402        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
     403      </xsl:when>
     404      <xsl:otherwise>
     405        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/>
     406      </xsl:otherwise>
     407    </xsl:choose>
     408      </xsl:when>
     409      <!-- 0 or more than one use plural. is that the case for all langs??-->
     410      <xsl:otherwise>
     411    <xsl:choose>
     412      <xsl:when test="$level = 'Doc'">
     413        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
     414      </xsl:when>
     415      <xsl:otherwise>
     416        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
     417      </xsl:otherwise>
     418    </xsl:choose>
     419      </xsl:otherwise>
     420    </xsl:choose>
     421  </xsl:template>
     422
     423  <xsl:template name="displayTermInfo">
     424
     425    <!-- Find the number of documents displayed per page -->
     426    <xsl:variable name="level">
     427      <xsl:call-template name="documentLevel"/>
     428    </xsl:variable>
     429
     430    <!-- The list of search terms with their frequency and document count -->
     431    <p class="termList">
     432      <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0">
     433    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/>
     434    <xsl:text> </xsl:text>
     435    <xsl:for-each select="/page/pageResponse/termList/stopword">
     436      <span style="font-style:italic;">
     437        <xsl:value-of select="@name"/>
     438      </span>
     439      <xsl:text> </xsl:text>
     440    </xsl:for-each>
     441    <br />
     442    <br />
     443      </xsl:if>
     444
     445      <!-- If there is only one or two search terms then show the expanded information -->
     446      <xsl:choose>
     447    <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
     448     
     449      <xsl:for-each select="/page/pageResponse/termList/term">
     450        <xsl:variable name="levelText">
     451          <!-- this gets document, section, documents, sections, depending on level and number -->
     452          <xsl:call-template name="documentLevelText">
     453        <xsl:with-param name="level" select="$level"/>
     454        <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/>
     455          </xsl:call-template>
     456        </xsl:variable>
     457        <span class="termInfo">
     458         
     459          <!-- For solr and mg collections, display:
     460           term x occured y times
     461           term a occured b times
     462           For collections using all other indexers, display:
     463           term x occurred y times in n sections/documents
     464           term a occurred b times in m sections/docs
     465          -->
     466          <!-- not all these args are used in every case -->
     467          <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';',  $levelText)"/>
     468          <xsl:choose>
     469        <xsl:when test="@freq = 0">
     470          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/>
     471        </xsl:when>
     472        <xsl:when test="@freq = 1">
     473          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/>
     474        </xsl:when>
     475        <xsl:otherwise> <!-- more than one occurrance -->
     476          <xsl:choose>
     477            <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']">
     478              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/>
     479            </xsl:when>
     480            <xsl:when test="@numDocsMatch = 1">
     481              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/>
     482            </xsl:when>
     483            <xsl:otherwise>
     484              <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/>
     485            </xsl:otherwise>
     486          </xsl:choose>
     487        </xsl:otherwise>
     488          </xsl:choose>
     489         
     490        </span>
     491        <br/>
     492      </xsl:for-each>
     493    </xsl:when>
     494    <xsl:otherwise>
     495      <xsl:for-each select="/page/pageResponse/termList/term">
     496        <span style="font-style:italic;">
     497          <xsl:value-of select="@name"/>
     498          </span> (<xsl:value-of select="@freq"/>)
     499      </xsl:for-each>
     500    </xsl:otherwise>
     501      </xsl:choose>
     502    </p>
     503  </xsl:template>
     504
     505  <xsl:template name="prevNextButtons">
     506    <!-- Current page -->
     507    <xsl:variable name="currentPage">
     508      <xsl:choose>
     509    <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value">
     510      <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" />
     511    </xsl:when>
     512    <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value">
     513      <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" />
     514    </xsl:when>
     515    <xsl:otherwise>1</xsl:otherwise>
     516      </xsl:choose>
     517    </xsl:variable>
     518    <xsl:variable name="usesS1">
     519      <xsl:choose>
     520    <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when>
     521    <xsl:otherwise>false</xsl:otherwise>
     522      </xsl:choose>
     523    </xsl:variable>
     524    <!-- Find the total number of documents returned/matched -->
     525    <xsl:variable name="docMax">
     526      <xsl:choose>
     527    <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
     528      <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
     529    </xsl:when>
     530    <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']">
     531      <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/>
     532    </xsl:when>
     533    <xsl:otherwise>
     534      <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/>
     535    </xsl:otherwise>
     536      </xsl:choose>
     537    </xsl:variable>
     538    <!-- Find the number of documents displayed per page -->
     539    <xsl:variable name="docsPerPage">
     540      <xsl:choose>
     541    <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
     542      <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" />
     543    </xsl:when>
     544    <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']">
     545      <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" />
     546    </xsl:when>
     547    <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise>
     548      </xsl:choose>
     549    </xsl:variable>
     550    <!-- Find the level -->
     551    <xsl:variable name="level">
     552      <xsl:call-template name="documentLevel"/>
     553    </xsl:variable>
     554    <!-- we only need this if number of docs > docsperpage -->
     555    <xsl:if test="$docMax &gt; $docsPerPage">
     556      <table id="searchResultNavTable">
     557    <tr>
     558      <xsl:variable name="startPageName">
     559      <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable>
     560
     561      <!-- Previous button -->
     562      <td id="prevArrowTD">
     563        <xsl:if test="$currentPage != 1">
     564          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
     565        <xsl:call-template name="previousArrowImage"/>
     566          </a>
     567        </xsl:if>
    186568      </td>
    187       <td>
    188         <gsf:link type="document">
    189           <xsl:call-template name="choose-title"/>
    190         </gsf:link>
     569      <td id="prevTD">
     570        <xsl:if test="$currentPage != 1">
     571          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a>
     572        </xsl:if>
    191573      </td>
    192     </gsf:template>
    193 
    194     <xsl:template name="highlightSnippet">
    195       <xsl:param name="nodeHASH"/>
    196         <xsl:param name="collection"/>
    197         <xsl:for-each select="/page/pageResponse/highlightSnippetList/highlightSnippet[@nodeID = $nodeHASH]">
    198           <xsl:if test="not($collection) or $collection = @collection">
    199                         <tr>
    200                             <td>
    201                                 </td>
    202                                 <td>
    203                                     <div class="HighlightSnippet">
    204                                         <xsl:value-of select="." disable-output-escaping="yes"/>
    205                                     </div>
    206                             </td>
    207                     </tr>
    208           </xsl:if>
    209             </xsl:for-each>
    210     </xsl:template>
    211    
    212     <xsl:template name="queryPage">
    213         <xsl:for-each select="pageResponse/service">
    214           <xsl:variable name="form_action"><xsl:value-of select="$library_name"/>/<xsl:if test="$collName">collection/<xsl:value-of select="$collName"/>/</xsl:if>search/<xsl:value-of select="@name"/></xsl:variable>
    215               <form name="QueryForm" method="get" action="{$form_action}">
    216               <div>
    217                     <input type="hidden" name="a" value="q"/>
    218                     <input type="hidden" name="sa">
    219                         <xsl:attribute name="value">
    220                             <xsl:value-of select="/page/pageRequest/@subaction"/>
    221                         </xsl:attribute>
    222                     </input>
    223                     <input type="hidden" name="rt" value="rd"/>
    224                    
    225                     <xsl:variable name="ns">s1.</xsl:variable>
    226                     <xsl:choose>
    227                         <xsl:when test="/page/pageResponse/hierarchy and paramList/param[@name ='collection']">
    228                             <xsl:call-template name="CCSParams"> <!-- cross coll search -->
    229                                 <xsl:with-param name="ns" select="$ns" />
    230                             </xsl:call-template>
    231                         </xsl:when>
    232                         <xsl:otherwise>
    233                     <xsl:for-each select="paramList/param">
    234                         <xsl:choose>
    235                             <xsl:when test="@type='multi'">
    236                                 <xsl:apply-templates select=".">
    237                                     <xsl:with-param name="ns" select="$ns"/>
    238                                 </xsl:apply-templates>
    239                             </xsl:when>
    240                             <xsl:otherwise>
    241                                 <xsl:call-template name="param-display">
    242                                     <xsl:with-param name="ns" select="$ns"/>
    243                                 </xsl:call-template>
    244                             </xsl:otherwise>
    245                         </xsl:choose>
    246                     </xsl:for-each>
    247                         </xsl:otherwise>
    248                     </xsl:choose>
    249                     <br/>
    250                     <input type="submit">
    251                         <xsl:attribute name="value">
    252                             <xsl:value-of select="displayItem[@name='submit']"/>
    253                         </xsl:attribute>
    254                     </input>
    255                 </div>
    256             </form>
    257         </xsl:for-each>
    258     </xsl:template>
    259 
    260     <xsl:template name="CCSParams">
    261       <xsl:param name="ns" />
    262       <xsl:variable name="currentSelection"><xsl:value-of select="util:getFormattedCCSSelection(/page/pageRequest/paramList/param[@name='s1.collection']/@value,/page/pageRequest/paramList/param[@name='s1.group']/@value)"/></xsl:variable>
    263       <!-- display the collection param -->
    264       <div class="paramLabel">
    265             <xsl:value-of select="paramList/param[@name='collection']/displayItem[@name='name']/text()" />
    266         </div>
    267         <div class="paramValue">
    268             <select multiple="" size='10'>
    269                 <xsl:attribute name="name">
    270                         <xsl:value-of select="$ns"></xsl:value-of>
    271                         <xsl:text>collection</xsl:text>
    272                     </xsl:attribute>
    273                 <xsl:for-each select="/page/pageResponse/hierarchy/*">
    274                     <xsl:call-template name="hierarchy-display">
    275                       <xsl:with-param name="padding">0</xsl:with-param>
    276                       <xsl:with-param name="currentSelection" select="$currentSelection"/>
    277                     </xsl:call-template>
    278                 </xsl:for-each>
    279             </select>
    280         </div>
    281         <br class="clear" />
    282         <!-- display all the other params -->
    283         <xsl:for-each select="paramList/param[@name !='collection']">
    284             <xsl:choose>
    285                 <xsl:when test="@type='multi'">
    286                     <xsl:apply-templates select=".">
    287                         <xsl:with-param name="ns" select="$ns"/>
    288                     </xsl:apply-templates>
    289                 </xsl:when>
    290                 <xsl:otherwise>
    291                     <xsl:call-template name="param-display">
    292                         <xsl:with-param name="ns" select="$ns"/>
    293                     </xsl:call-template>
    294                 </xsl:otherwise>
    295             </xsl:choose>
    296         </xsl:for-each>
    297     </xsl:template>
    298 
    299     <xsl:template name="hierarchy-display">
    300         <xsl:param name="padding" />
    301         <xsl:param name="path" />
    302         <xsl:param name="currentSelection"/>
     574
     575      <xsl:if test="$display_status_bar != 'false'">
     576        <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") -->
     577        <xsl:if test="$docsPerPage &gt; 0">
     578          <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/>
     579          <xsl:variable name="enddoc">
    303580        <xsl:choose>
    304           <xsl:when test="name(.) = 'group'">
    305             <xsl:variable name="group-name">group.<xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="@name" /></xsl:variable>
    306                 <option>
    307                     <xsl:attribute name="style">
    308                         <xsl:text>padding-left: </xsl:text>
    309                         <xsl:value-of select="concat($padding,'px')" />
    310                     </xsl:attribute>
    311                     <xsl:attribute name="value"><xsl:value-of select="$group-name"/></xsl:attribute>
    312                     <xsl:if test="util:csvContains($currentSelection, $group-name)">
    313                         <xsl:attribute name="selected">selected</xsl:attribute>
    314                     </xsl:if>
    315                     <xsl:value-of select="@title"></xsl:value-of>
    316                     <xsl:for-each select="./*">
    317                         <xsl:call-template name="hierarchy-display">
    318                             <xsl:with-param name="padding">
    319                                 <xsl:value-of select="$padding + 20" />
    320                             </xsl:with-param>
    321                             <xsl:with-param name="path"><xsl:if test="$path"><xsl:value-of select="$path" />.</xsl:if><xsl:value-of select="../@name" /></xsl:with-param>
    322                             <xsl:with-param name="currentSelection" select="$currentSelection"/>
    323                         </xsl:call-template>
    324                     </xsl:for-each>
    325                 </option>
    326             </xsl:when>
    327             <xsl:otherwise>
    328                 <option>
    329                     <xsl:attribute name="style">
    330                         <xsl:text>padding-left: </xsl:text>
    331                         <xsl:value-of select="$padding" />
    332                         <xsl:text>px</xsl:text>
    333                     </xsl:attribute>
    334                     <xsl:if test="util:csvContains($currentSelection, @name)">
    335                         <xsl:attribute name="selected">selected</xsl:attribute>
    336                     </xsl:if>
    337                     <xsl:attribute name="value">
    338                         <xsl:value-of select="current()/@name"></xsl:value-of>
    339                     </xsl:attribute>
    340                     <xsl:value-of
    341                         select="/page/pageResponse/service[@name = 'TextQuery']/paramList/param[@name = 'collection']/option[@name = current()/@name]/displayItem[@name = 'name']/text()"></xsl:value-of>
    342                 </option>
    343             </xsl:otherwise>
     581          <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax">
     582            <xsl:value-of select="$docMax"/>
     583          </xsl:when>
     584          <xsl:otherwise>
     585            <xsl:value-of select="$currentPage * $docsPerPage"/>
     586          </xsl:otherwise>
    344587        </xsl:choose>
    345     </xsl:template>
    346 
    347     <xsl:template name="displayMatchDocs">
    348         <div id="matchdocs">
    349             <xsl:variable name="numDocsMatched" select="/page/pageResponse/metadataList/metadata[@name='numDocsMatched']"/>
    350             <xsl:variable name="numDocsReturned" select="/page/pageResponse/metadataList/metadata[@name='numDocsReturned']"/>
    351             <xsl:variable name="docLevel">
    352                 <xsl:call-template name="documentLevel"/>
    353             </xsl:variable>
    354             <xsl:variable name="docLevelText">
    355                 <xsl:call-template name="documentLevelText">
    356                     <xsl:with-param name="numDocsMatched" select="$numDocsMatched"/>
    357                     <xsl:with-param name="level" select="$docLevel"/>
    358                 </xsl:call-template>
    359             </xsl:variable>
    360             <xsl:choose>
    361                 <xsl:when test="$numDocsMatched='0' or $numDocsReturned='0'">
    362                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.nodocsmatch', $docLevelText)"/>
    363                 </xsl:when>
    364                 <xsl:when test="$numDocsMatched='1' or $numDocsReturned='1'">
    365                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.onedocsmatch', $docLevelText)"/>
    366                 </xsl:when>
    367                 <xsl:when test="$numDocsMatched">
    368                         <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/>
    369                         <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/>
    370                    
    371                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/>
    372                     <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if>
    373                 </xsl:when>
    374                 <xsl:when test="$numDocsReturned">
    375                         <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/>
    376                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/>
    377                 </xsl:when>
    378             </xsl:choose>
    379         </div>
    380 
    381     </xsl:template>
    382 
    383     <xsl:template name="documentLevel">
     588          </xsl:variable>
     589          <xsl:variable name="levelString">
    384590        <xsl:choose>
    385             <xsl:when test="/page/pageRequest/paramList/param[@name='level']">
    386                 <xsl:value-of select="/page/pageRequest/paramList/param[@name='level']/@value" />
    387             </xsl:when>
    388             <xsl:when test="/page/pageRequest/paramList/param[@name='s1.level']">
    389                 <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.level']/@value" />
    390             </xsl:when>
    391             <xsl:otherwise>Doc</xsl:otherwise>
     591          <xsl:when test="$level = 'Doc'">
     592            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
     593          </xsl:when>
     594          <xsl:otherwise>
     595            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
     596          </xsl:otherwise>
    392597        </xsl:choose>
    393     </xsl:template>
    394 
    395     <xsl:template name="documentLevelText">
    396         <xsl:param name="numDocsMatched">0</xsl:param>
    397         <xsl:param name="level">Doc</xsl:param>
    398         <xsl:choose>   
    399             <xsl:when test="$numDocsMatched = 1">
    400                 <xsl:choose>
    401                     <xsl:when test="$level = 'Doc'">
    402                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document')"/>
    403                     </xsl:when>
    404                     <xsl:otherwise>
    405                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section')"/>
    406                     </xsl:otherwise>
    407                 </xsl:choose>
    408             </xsl:when>
    409             <!-- 0 or more than one use plural. is that the case for all langs??-->
    410             <xsl:otherwise>
    411                 <xsl:choose>
    412                     <xsl:when test="$level = 'Doc'">
    413                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
    414                     </xsl:when>
    415                     <xsl:otherwise>
    416                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
    417                     </xsl:otherwise>
    418                 </xsl:choose>
    419             </xsl:otherwise>
    420         </xsl:choose>
    421     </xsl:template>
    422 
    423     <xsl:template name="displayTermInfo">
    424 
    425         <!-- Find the number of documents displayed per page -->
    426         <xsl:variable name="level">
    427             <xsl:call-template name="documentLevel"/>
    428         </xsl:variable>
    429 
    430         <!-- The list of search terms with their frequency and document count -->
    431         <p class="termList">
    432             <xsl:if test="count(/page/pageResponse/termList/stopword) &gt; 0">
    433                 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.common')"/>
    434                 <xsl:text> </xsl:text>
    435                 <xsl:for-each select="/page/pageResponse/termList/stopword">
    436                     <span style="font-style:italic;">
    437                         <xsl:value-of select="@name"/>
    438                     </span>
    439                     <xsl:text> </xsl:text>
    440                 </xsl:for-each>
    441                 <br />
    442                 <br />
    443             </xsl:if>
    444 
    445             <!-- If there is only one or two search terms then show the expanded information -->
    446             <xsl:choose>
    447               <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
    448                
    449                 <xsl:for-each select="/page/pageResponse/termList/term">
    450                   <xsl:variable name="levelText">
    451                 <!-- this gets document, section, documents, sections, depending on level and number -->
    452                 <xsl:call-template name="documentLevelText">
    453                   <xsl:with-param name="level" select="$level"/>
    454                   <xsl:with-param name="numDocsMatched" select="@numDocsMatch"/>
    455                 </xsl:call-template>
    456                   </xsl:variable>
    457                   <span class="termInfo">
    458                          
    459                 <!-- For solr and mg collections, display:
    460                      term x occured y times
    461                      term a occured b times
    462                      For collections using all other indexers, display:
    463                      term x occurred y times in n sections/documents
    464                      term a occurred b times in m sections/docs
    465                 -->
    466                 <!-- not all these args are used in every case -->
    467                 <xsl:variable name="args" select="concat(@name,';', @freq, ';', @numDocsMatch,';',  $levelText)"/>
    468                 <xsl:choose>
    469                   <xsl:when test="@freq = 0">
    470                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.0',$args)"/>
    471                   </xsl:when>
    472                   <xsl:when test="@freq = 1">
    473                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1',$args)"/>
    474                   </xsl:when>
    475                   <xsl:otherwise> <!-- more than one occurrance -->
    476                     <xsl:choose>
    477                       <xsl:when test="/page/pageResponse/collection[@type = 'solr'] or /page/pageResponse/collection[@type = 'mg']">
    478                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x',$args)"/>
    479                       </xsl:when>
    480                       <xsl:when test="@numDocsMatch = 1">
    481                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$args)"/>
    482                       </xsl:when>
    483                       <xsl:otherwise>
    484                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$args)"/>
    485                       </xsl:otherwise>
    486                     </xsl:choose>
    487                   </xsl:otherwise>
    488                 </xsl:choose>
    489                
    490                   </span>
    491                   <br/>
    492                 </xsl:for-each>
    493               </xsl:when>
    494               <xsl:otherwise>
    495                     <xsl:for-each select="/page/pageResponse/termList/term">
    496                         <span style="font-style:italic;">
    497                             <xsl:value-of select="@name"/>
    498                         </span> (<xsl:value-of select="@freq"/>)
    499                     </xsl:for-each>
    500                 </xsl:otherwise>
    501             </xsl:choose>
    502         </p>
    503     </xsl:template>
    504 
    505     <xsl:template name="prevNextButtons">   
    506         <!-- Current page -->
    507         <xsl:variable name="currentPage">
    508             <xsl:choose>
    509                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.startPage']/@value">
    510                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.startPage']/@value" />
    511                 </xsl:when>
    512                 <xsl:when test="/page/pageRequest/paramList/param[@name='startPage']/@value">
    513                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='startPage']/@value" />
    514                 </xsl:when>
    515                 <xsl:otherwise>1</xsl:otherwise>
    516             </xsl:choose>
    517         </xsl:variable>
    518         <xsl:variable name="usesS1">
    519             <xsl:choose>
    520                 <xsl:when test="/page/pageResponse/service/paramList/param[@name='startPage']">true</xsl:when>
    521                 <xsl:otherwise>false</xsl:otherwise>
    522             </xsl:choose>
    523         </xsl:variable>
    524         <!-- Find the total number of documents returned/matched -->
    525         <xsl:variable name="docMax">
    526             <xsl:choose>
    527                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']">
    528                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsReturned']"/>
    529                 </xsl:when>
    530                 <xsl:when test="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']">
    531                     <xsl:value-of select="/page/pageResponse/metadataList/metadata[@name = 'numDocsMatched']"/>
    532                 </xsl:when>
    533                 <xsl:otherwise>
    534                     <xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/>
    535                 </xsl:otherwise>
    536             </xsl:choose>
    537         </xsl:variable>
    538         <!-- Find the number of documents displayed per page -->
    539         <xsl:variable name="docsPerPage">
    540             <xsl:choose>
    541                 <xsl:when test="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']">
    542                     <xsl:value-of select="/page/pageRequest/paramList/param[@name='s1.hitsPerPage']/@value" />
    543                 </xsl:when>
    544                 <xsl:when test="/page/pageResponse/service/paramList/param[@name='hitsPerPage']">
    545                   <xsl:value-of select="/page/pageResponse/service/paramList/param[@name='hitsPerPage']/@default" />
    546                   </xsl:when>
    547                 <xsl:otherwise><xsl:value-of select="count(/page/pageResponse/documentNodeList/documentNode)"/></xsl:otherwise>
    548             </xsl:choose>
    549         </xsl:variable>
    550         <!-- Find the level -->
    551         <xsl:variable name="level">
    552           <xsl:call-template name="documentLevel"/>
    553         </xsl:variable>
    554         <!-- we only need this if number of docs > docsperpage -->
    555         <xsl:if test="$docMax &gt; $docsPerPage">
    556         <table id="searchResultNavTable">
    557             <tr>
    558                 <xsl:variable name="startPageName">
    559                     <xsl:if test="$usesS1 = 'true'">s1.</xsl:if>startPage</xsl:variable>
    560 
    561                 <!-- Previous button -->
    562                 <td id="prevArrowTD">
    563                     <xsl:if test="$currentPage != 1">
    564                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
    565                           <xsl:call-template name="previousArrowImage"/>
    566                         </a>
    567                     </xsl:if>
    568                 </td>
    569                 <td id="prevTD">
    570                     <xsl:if test="$currentPage != 1">
    571                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/@subaction}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage - 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.previous')"/></a>
    572                     </xsl:if>
    573                 </td>
    574 
    575                 <xsl:if test="$display_status_bar != 'false'">
    576                 <!-- Search result status bar (in english it reads "Displaying X to Y of Z documents") -->
    577                 <xsl:if test="$docsPerPage &gt; 0">
    578                     <xsl:variable name="startdoc" select="($currentPage - 1) * $docsPerPage + 1"/>
    579                     <xsl:variable name="enddoc">
    580                         <xsl:choose>
    581                             <xsl:when test="($currentPage * $docsPerPage + 1) &gt; $docMax">
    582                                 <xsl:value-of select="$docMax"/>
    583                             </xsl:when>
    584                             <xsl:otherwise>
    585                                 <xsl:value-of select="$currentPage * $docsPerPage"/>
    586                             </xsl:otherwise>
    587                         </xsl:choose>
    588                     </xsl:variable>
    589                     <xsl:variable name="levelString">
    590                       <xsl:choose>
    591                         <xsl:when test="$level = 'Doc'">
    592                           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.document_plural')"/>
    593                         </xsl:when>
    594                         <xsl:otherwise>
    595                           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.section_plural')"/>
    596                         </xsl:otherwise>
    597                       </xsl:choose>
    598                     </xsl:variable>
    599                     <td id="searchResultsStatusBar">
    600                             <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/>
    601                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/>
    602                     </td>
    603                 </xsl:if>
    604                 </xsl:if>
    605                 <!-- Next button -->
    606                 <td id="nextTD">
    607                     <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax">
    608                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a>
    609                     </xsl:if>
    610                 </td>
    611                 <td id="nextArrowTD">
    612                     <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax">
    613                         <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
    614                             <xsl:call-template name="nextArrowImage"/>
    615                         </a>
    616                     </xsl:if>
    617                 </td>
    618             </tr>
    619         </table>
    620         </xsl:if>
    621     </xsl:template>
    622 
    623     <xsl:template name="previousArrowImage">
    624       <img src="interfaces/{$interface_name}/images/previous.png"/>
    625     </xsl:template>
    626     <xsl:template name="nextArrowImage">
    627       <img src="interfaces/{$interface_name}/images/next.png"/>
    628     </xsl:template>
    629     <!-- puts all the params into a=p&p=h type form - need to change this if use
    630     multi params  -->
    631     <xsl:template match="paramList" mode="cgi">
    632         <xsl:param name="ns">s1.</xsl:param>
    633         <xsl:for-each select="param">
    634             <xsl:variable name='pname' select="@name"/>
    635             <xsl:text>&amp;</xsl:text>
    636             <xsl:value-of select="$ns"/>
    637             <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default">
    638                 <xsl:with-param name='ns' select='$ns'/>
    639             </xsl:apply-templates>
    640         </xsl:for-each>
    641     </xsl:template>
    642 
    643     <xsl:template name="resultsPagePre">
    644         <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE -->
    645         <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
    646             <xsl:call-template name="mapFeaturesJSONNodes"/>
    647             <xsl:call-template name="mapFeaturesMap"/>
    648         </xsl:if>
    649     </xsl:template>
    650 
    651     <xsl:template name="resultsPagePost">
    652         <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE -->
    653     </xsl:template>
    654 
    655     <xsl:template name="documentNodePre">
    656         <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE -->
    657     </xsl:template>
    658 
    659     <xsl:template name="documentNodePost">
    660         <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE -->
    661         <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
    662             <xsl:call-template name="mapFeaturesIcon"/>
    663         </xsl:if>
    664 
    665         <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
    666           <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])">
    667                     <xsl:call-template name="panoramaViewerFeaturesIcon"/>
    668                   </xsl:if>
    669         </xsl:if>
    670 
    671     </xsl:template>
     598          </xsl:variable>
     599          <td id="searchResultsStatusBar">
     600        <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/>
     601        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/>
     602          </td>
     603        </xsl:if>
     604      </xsl:if>
     605      <!-- Next button -->
     606      <td id="nextTD">
     607        <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax">
     608          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.results.next')"/></a>
     609        </xsl:if>
     610      </td>
     611      <td id="nextArrowTD">
     612        <xsl:if test="$docsPerPage &gt; 0 and ($currentPage * $docsPerPage) &lt; $docMax">
     613          <a href="{$library_name}?a=q&amp;sa={/page/pageRequest/paramList/param[@name = 'sa']/@value}&amp;c={$collName}&amp;s={/page/pageResponse/service/@name}&amp;rt=rd&amp;{$startPageName}={$currentPage + 1}&amp;qs={/page/pageRequest/paramList/param[@name='qs']/@value}">
     614        <xsl:call-template name="nextArrowImage"/>
     615          </a>
     616        </xsl:if>
     617      </td>
     618    </tr>
     619      </table>
     620    </xsl:if>
     621  </xsl:template>
     622
     623  <xsl:template name="previousArrowImage">
     624    <img src="interfaces/{$interface_name}/images/previous.png"/>
     625  </xsl:template>
     626  <xsl:template name="nextArrowImage">
     627    <img src="interfaces/{$interface_name}/images/next.png"/>
     628  </xsl:template>
     629  <!-- puts all the params into a=p&p=h type form - need to change this if use
     630       multi params  -->
     631  <xsl:template match="paramList" mode="cgi">
     632    <xsl:param name="ns">s1.</xsl:param>
     633    <xsl:for-each select="param">
     634      <xsl:variable name='pname' select="@name"/>
     635      <xsl:text>&amp;</xsl:text>
     636      <xsl:value-of select="$ns"/>
     637      <xsl:value-of select="@name"/>=<xsl:apply-templates select="." mode="calculate-default">
     638      <xsl:with-param name='ns' select='$ns'/>
     639    </xsl:apply-templates>
     640    </xsl:for-each>
     641  </xsl:template>
     642
     643  <xsl:template name="resultsPagePre">
     644    <!-- OVERWRITE TO INSERT CONTENT BEFORE THE RESULTS PAGE -->
     645    <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
     646      <xsl:call-template name="mapFeaturesJSONNodes"/>
     647      <xsl:call-template name="mapFeaturesMap"/>
     648    </xsl:if>
     649  </xsl:template>
     650
     651  <xsl:template name="resultsPagePost">
     652    <!-- OVERWRITE TO INSERT CONTENT AFTER THE RESULTS PAGE -->
     653  </xsl:template>
     654
     655  <xsl:template name="documentNodePre">
     656    <!-- OVERWRITE TO INSERT CONTENT BEFORE EVERY DOCUMENT NODE -->
     657  </xsl:template>
     658
     659  <xsl:template name="documentNodePost">
     660    <!-- OVERWRITE TO INSERT CONTENT AFTER EVERY DOCUMENT NODE -->
     661    <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'">
     662      <xsl:call-template name="mapFeaturesIcon"/>
     663    </xsl:if>
     664
     665    <xsl:if test="/page/pageResponse/format/gsf:option[@name='panoramaViewerEnabled']/@value = 'true'">
     666      <xsl:if test=" metadataList/metadata[@name = 'Coordinate'] or ( metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude'])">
     667        <xsl:call-template name="panoramaViewerFeaturesIcon"/>
     668      </xsl:if>
     669    </xsl:if>
     670
     671  </xsl:template>
    672672
    673673
Note: See TracChangeset for help on using the changeset viewer.