Ignore:
Timestamp:
2009-06-24T12:39:37+12:00 (15 years ago)
Author:
kjdon
Message:

indented this nicely. no other changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • greenstone3/trunk/web/interfaces/default/transform/util.xsl

    r18595 r19895  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<xsl:stylesheet version="1.0"
    3     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    4     xmlns:gslib="http://www.greenstone.org/XSL/Library"
    5     xmlns:util="http://org.greenstone.gsdl3.util.XSLTUtil"
    6     exclude-result-prefixes="util gslib gsf xslt">
    7 
    8     <!-- some global parameters - these are set by whoever is invoking the transformation -->
     3  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     4  xmlns:gslib="http://www.greenstone.org/XSL/Library"
     5  xmlns:util="http://org.greenstone.gsdl3.util.XSLTUtil"
     6  exclude-result-prefixes="util gslib gsf xslt">
     7 
     8  <!-- some global parameters - these are set by whoever is invoking the transformation -->
    99  <xsl:param name="interface_name"/>
    1010  <xsl:param name="library_name"/>
    1111 
    12   <!-- every pages ....................................................................... -->
    13  
    14     <xsl:variable name="a"><xsl:value-of select="/page/pageRequest/paramList/param[@name='a']/@value"/>     </xsl:variable>
    15     <xsl:variable name="collections" select="/page/pageResponse/collectionList/collection"/>
    16    
    17    
    18 <xsl:template name="textDirectionAttribute">
    19     <xsl:attribute name="dir">
    20         <xsl:choose>
    21             <xsl:when test="/page/@lang='ar' or /page/@lang='fa' or /page/@lang='he' or /page/@lang='ur' or /page/@lang='ps' or /page/@lang='prs'">rtl</xsl:when>
    22             <xsl:otherwise>ltr</xsl:otherwise>
    23         </xsl:choose>
    24     </xsl:attribute>
    25 </xsl:template>
    26  
    27  
    28 <xsl:template name="defaultDividerBar">
    29    <xsl:param name='text'/>
     12  <!-- every pages ................................................. -->
     13 
     14  <xsl:variable name="a"><xsl:value-of select="/page/pageRequest/paramList/param[@name='a']/@value"/></xsl:variable>
     15  <xsl:variable name="collections" select="/page/pageResponse/collectionList/collection"/>
     16 
     17 
     18  <xsl:template name="textDirectionAttribute">
     19    <xsl:attribute name="dir">
    3020      <xsl:choose>
     21    <xsl:when test="/page/@lang='ar' or /page/@lang='fa' or /page/@lang='he' or /page/@lang='ur' or /page/@lang='ps' or /page/@lang='prs'">rtl</xsl:when>
     22    <xsl:otherwise>ltr</xsl:otherwise>
     23      </xsl:choose>
     24    </xsl:attribute>
     25  </xsl:template>
     26 
     27 
     28  <xsl:template name="defaultDividerBar">
     29    <xsl:param name='text'/>
     30    <xsl:choose>
    3131      <xsl:when test="$text">
    32      <div class="divbar"><xsl:value-of select="$text"/></div>
    33       </xsl:when>
    34       <xsl:otherwise>
    35      <div class="divbar"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></div>
     32    <div class="divbar"><xsl:value-of select="$text"/></div>
     33      </xsl:when>
     34      <xsl:otherwise>
     35    <div class="divbar"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></div>
    3636      </xsl:otherwise>
    3737    </xsl:choose>
    38 </xsl:template>
    39  
    40  
    41 <xsl:template match="error">
     38  </xsl:template>
     39 
     40 
     41  <xsl:template match="error">
    4242    Error: <xsl:value-of select="."/>
    43 </xsl:template>
    44  
    45  
    46 <xsl:template name="displayErrorsIfAny">
    47       <xsl:if test="descendant::error">
     43  </xsl:template>
     44 
     45 
     46  <xsl:template name="displayErrorsIfAny">
     47    <xsl:if test="descendant::error">
    4848      <script language="Javascript">
    4949    <xsl:text disable-output-escaping="yes">
    5050      function removeAllChildren(node) {
    51         while (node.hasChildNodes()) {
    52           node.removeChild(node.firstChild);
    53         }
     51      while (node.hasChildNodes()) {
     52      node.removeChild(node.firstChild);
    5453      }
     54      }
    5555
    5656      function toggleHideError(obj) {
    57         if (obj.style.display == "none") {
    58           obj.style.display = "";
    59           hide_link = document.getElementById("hide");
    60           removeAllChildren(hide_link);
    61           hide_link.appendChild(document.createTextNode("</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'hide_error')"/><xsl:text disable-output-escaping="yes">"));
    62         } else {
    63           obj.style.display = "none";
    64           hide_link = document.getElementById("hide");
    65           removeAllChildren(hide_link);
    66           hide_link.appendChild(document.createTextNode("</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'show_error')"/><xsl:text disable-output-escaping="yes">"));
    67         }
     57      if (obj.style.display == "none") {
     58      obj.style.display = "";
     59      hide_link = document.getElementById("hide");
     60      removeAllChildren(hide_link);
     61      hide_link.appendChild(document.createTextNode("</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'hide_error')"/><xsl:text disable-output-escaping="yes">"));
     62      } else {
     63      obj.style.display = "none";
     64      hide_link = document.getElementById("hide");
     65      removeAllChildren(hide_link);
     66      hide_link.appendChild(document.createTextNode("</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'show_error')"/><xsl:text disable-output-escaping="yes">"));
     67      }
    6868      }
    6969    </xsl:text>
     
    7474      </div>
    7575    </xsl:if>
    76 </xsl:template>
    77 
    78 
    79     <xsl:template name="noTextBar">
    80         <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
    81     </xsl:template>
    82    
    83    
    84     <xsl:template name="poweredByGS3TextBar">
    85             <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gs3power')"/>
    86   </xsl:template>
    87  
    88  
    89     <!-- site home ....................................................................... -->
    90 
    91 <xsl:template name="siteHomePageTitle">
    92  <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
    93 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gsdl')"/><xsl:text> </xsl:text>
    94 </xsl:template>
    95 
    96 
    97     <xsl:template name="selectACollectionTextBar">
    98     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.select_a_collection')"/>
    99   </xsl:template>
    100  
    101  
    102     <xsl:template name="crossCollectionQuickSearchForm">
    103         <xsl:apply-templates select="serviceList/service[@name='TextQuery']"/>
    104     </xsl:template>
    105    
     76  </xsl:template>
     77
     78
     79  <xsl:template name="noTextBar">
     80    <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
     81  </xsl:template>
     82 
     83 
     84  <xsl:template name="poweredByGS3TextBar">
     85    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gs3power')"/>
     86  </xsl:template>
     87 
     88 
     89  <!-- site home ...................................................... -->
     90
     91  <xsl:template name="siteHomePageTitle">
     92    <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
     93    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gsdl')"/><xsl:text> </xsl:text>
     94  </xsl:template>
     95
     96
     97  <xsl:template name="selectACollectionTextBar">
     98    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.select_a_collection')"/>
     99  </xsl:template>
     100 
     101 
     102  <xsl:template name="crossCollectionQuickSearchForm">
     103    <xsl:apply-templates select="serviceList/service[@name='TextQuery']"/>
     104  </xsl:template>
     105 
    106106  <xsl:template match="service[@name='TextQuery']">
    107       <form name="QuickSearch" method="get" action="{$library_name}">
    108         <input type="hidden" name="a" value="q"/>
    109         <input type="hidden" name="rt" value="rd"/>
    110         <input type="hidden" name="s" value="{@name}"/>
    111         <input type="hidden" name="s1.collection" value="all"/>
    112         <input type="text" name="s1.query" size="20"/>
    113         <input type="submit"><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.quick_search')"/></xsl:attribute></input>
    114       </form>
    115   </xsl:template>
    116  
    117  
    118 <xsl:template name="collectionLinkWithImage">
    119       <xsl:choose>
    120         <xsl:when test="displayItem[@name='icon']">
    121               <a href="{$library_name}?a=p&amp;sa=about&amp;c={@name}">
    122                 <img>
    123           <xsl:attribute name="src">
    124             <xsl:value-of select="metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="displayItem[@name='icon']"/>
    125           </xsl:attribute>
    126           <xsl:attribute name="alt">
    127             <xsl:value-of select="displayItem[@name='name']"/>
    128           </xsl:attribute>
    129         </img>
    130           </a> 
    131         </xsl:when>
    132         <xsl:otherwise>
    133           <a class="noimage" href="{$library_name}?a=p&amp;sa=about&amp;c={@name}"> 
    134         <xsl:value-of select="displayItem[@name='name']"/>
    135           </a>
    136         </xsl:otherwise>
    137       </xsl:choose>
    138 </xsl:template>
    139  
    140  
    141     <xsl:template name="serviceClusterList">
    142         <xsl:apply-templates select="serviceClusterList"/>
    143     </xsl:template>
    144    
    145       <xsl:template match="serviceClusterList">
    146         <xsl:for-each select="serviceCluster">
    147           <a href="{$library_name}?a=p&amp;sa=about&amp;c={@name}"><xsl:value-of select='@name'/><xsl:value-of select="displayItem[@name='name']"/></a>
    148         </xsl:for-each>
    149       </xsl:template>
    150 
    151      
    152       <xsl:template name="serviceLink">
    153       <a href="{$library_name}?a=q&amp;rt=d&amp;s={@name}"><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/>
    154       </xsl:template>
    155 
    156      
    157    <xsl:template name="authenticationLink">
    158    <xsl:for-each select="serviceList/service[@type='authen']">
     107    <form name="QuickSearch" method="get" action="{$library_name}">
     108      <input type="hidden" name="a" value="q"/>
     109      <input type="hidden" name="rt" value="rd"/>
     110      <input type="hidden" name="s" value="{@name}"/>
     111      <input type="hidden" name="s1.collection" value="all"/>
     112      <input type="text" name="s1.query" size="20"/>
     113      <input type="submit"><xsl:attribute name="value"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.quick_search')"/></xsl:attribute></input>
     114    </form>
     115  </xsl:template>
     116 
     117 
     118  <xsl:template name="collectionLinkWithImage">
     119    <xsl:choose>
     120      <xsl:when test="displayItem[@name='icon']">
     121    <a href="{$library_name}?a=p&amp;sa=about&amp;c={@name}">
     122      <img>
     123        <xsl:attribute name="src">
     124          <xsl:value-of select="metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="displayItem[@name='icon']"/>
     125        </xsl:attribute>
     126        <xsl:attribute name="alt">
     127          <xsl:value-of select="displayItem[@name='name']"/>
     128        </xsl:attribute>
     129      </img>
     130    </a> 
     131      </xsl:when>
     132      <xsl:otherwise>
     133    <a class="noimage" href="{$library_name}?a=p&amp;sa=about&amp;c={@name}"> 
     134      <xsl:value-of select="displayItem[@name='name']"/>
     135    </a>
     136      </xsl:otherwise>
     137    </xsl:choose>
     138  </xsl:template>
     139 
     140 
     141  <xsl:template name="serviceClusterList">
     142    <xsl:apply-templates select="serviceClusterList"/>
     143  </xsl:template>
     144 
     145  <xsl:template match="serviceClusterList">
     146    <xsl:for-each select="serviceCluster">
     147      <a href="{$library_name}?a=p&amp;sa=about&amp;c={@name}"><xsl:value-of select='@name'/><xsl:value-of select="displayItem[@name='name']"/></a>
     148    </xsl:for-each>
     149  </xsl:template>
     150
     151 
     152  <xsl:template name="serviceLink">
     153    <a href="{$library_name}?a=q&amp;rt=d&amp;s={@name}"><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/>
     154  </xsl:template>
     155
     156 
     157  <xsl:template name="authenticationLink">
     158    <xsl:for-each select="serviceList/service[@type='authen']">
    159159      <li><a href="{$library_name}?a=g&amp;rt=r&amp;sa=authen&amp;s={@name}&amp;s1.aup=Login&amp;s1.un=&amp;s1.asn="><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/></li></xsl:for-each>
    160160  </xsl:template>
    161161 
    162162 
    163    <xsl:template name="libraryInterfaceLink">
    164    <li><a href="{$library_name}?a=p&amp;sa=gli4gs3"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.librarian_interface')"/></a></li>
     163  <xsl:template name="libraryInterfaceLink">
     164    <li><a href="{$library_name}?a=p&amp;sa=gli4gs3"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home.librarian_interface')"/></a></li>
    165165  </xsl:template>
    166166 
    167167 
    168 <xsl:template name="greenstoneLogoAlternateText">
    169 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gsdl')"/>
    170 </xsl:template>
    171 
    172 <!-- about page - collection home ....................................................................... -->
    173 <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
    174 <xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
    175 <xsl:param name="pageType"/>
    176 <xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
    177 <xsl:variable name="this-service" select="/page/pageResponse/service/@name"/>
    178 
    179 
    180 <xsl:template name="aboutCollectionPageTitle">
    181  <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
    182 <xsl:value-of select="/page/pageResponse/*/displayItem[@name='name']"/><xsl:text> </xsl:text>
    183 </xsl:template>
    184 
    185    
    186 <xsl:template name="collectionHomeLinkWithLogoIfAvailable">
    187 <a href="{$library_name}?a=p&amp;sa=about&amp;c={$collName}">
    188       <xsl:choose>
    189         <xsl:when test="$this-element/displayItem[@name='icon']">
    190           <img border="0">
    191         <xsl:attribute name="src">
    192           <xsl:value-of select="$this-element/metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="$this-element/displayItem[@name='icon']"/>
    193         </xsl:attribute>   
    194         <xsl:attribute name="alt">
    195           <xsl:value-of select="$this-element/displayItem[@name='name']"/>
    196         </xsl:attribute>
    197         <xsl:attribute name="title">
    198           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'aboutpage')"/>
    199         </xsl:attribute>
    200           </img>
    201         </xsl:when>
    202         <xsl:otherwise>
     168  <xsl:template name="greenstoneLogoAlternateText">
     169    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'gsdl')"/>
     170  </xsl:template>
     171
     172  <!-- about page - collection home ......................... -->
     173  <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     174  <xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     175  <xsl:param name="pageType"/>
     176  <xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
     177  <xsl:variable name="this-service" select="/page/pageResponse/service/@name"/>
     178
     179
     180  <xsl:template name="aboutCollectionPageTitle">
     181    <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
     182    <xsl:value-of select="/page/pageResponse/*/displayItem[@name='name']"/><xsl:text> </xsl:text>
     183  </xsl:template>
     184
     185 
     186  <xsl:template name="collectionHomeLinkWithLogoIfAvailable">
     187    <a href="{$library_name}?a=p&amp;sa=about&amp;c={$collName}">
     188      <xsl:choose>
     189    <xsl:when test="$this-element/displayItem[@name='icon']">
     190      <img border="0">
     191        <xsl:attribute name="src">
     192          <xsl:value-of select="$this-element/metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="$this-element/displayItem[@name='icon']"/>
     193        </xsl:attribute>   
     194        <xsl:attribute name="alt">
    203195          <xsl:value-of select="$this-element/displayItem[@name='name']"/>
    204         </xsl:otherwise>
    205       </xsl:choose>
    206     </a>
    207 </xsl:template>
    208 
    209 
    210 <xsl:template name="homeButtonTop">
    211 <a href="{$library_name}?a=p&amp;sa=home"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_tip')"/></xsl:attribute>
    212 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/></a>
    213 </xsl:template>
    214 
    215 
    216 <xsl:template name="helpButtonTop">
     196        </xsl:attribute>
     197        <xsl:attribute name="title">
     198          <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'aboutpage')"/>
     199        </xsl:attribute>
     200      </img>
     201    </xsl:when>
     202    <xsl:otherwise>
     203      <xsl:value-of select="$this-element/displayItem[@name='name']"/>
     204    </xsl:otherwise>
     205      </xsl:choose>
     206    </a>
     207  </xsl:template>
     208
     209
     210  <xsl:template name="homeButtonTop">
     211    <a href="{$library_name}?a=p&amp;sa=home"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_tip')"/></xsl:attribute>
     212      <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/></a>
     213  </xsl:template>
     214
     215
     216  <xsl:template name="helpButtonTop">
    217217    <xsl:choose>
    218218      <xsl:when test="$pageType='help'">
     
    225225      </xsl:otherwise>
    226226    </xsl:choose>
    227 </xsl:template>
    228 
    229 
    230 <xsl:template name="preferencesButtonTop">
     227  </xsl:template>
     228
     229
     230  <xsl:template name="preferencesButtonTop">
    231231    <xsl:choose>
    232232      <xsl:when test="$pageType='pref'">
     
    239239      </xsl:otherwise>
    240240    </xsl:choose>
    241 </xsl:template>
    242 
    243 <xsl:template name="servicesNavigationBar">
    244         <xsl:for-each select="$this-element/serviceList/service">
    245           <xsl:variable name="action"><xsl:choose>
    246           <xsl:when test="@name=$this-service">CURRENT</xsl:when>
    247           <xsl:when test="@type='query'">q</xsl:when>
    248           <xsl:when test="@type='browse'">b</xsl:when>
    249           <xsl:when test="@type='process'">pr</xsl:when>
    250           <xsl:when test="@type='applet'">a</xsl:when>
    251           <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
    252         </xsl:choose></xsl:variable>
    253           <xsl:choose>
    254         <xsl:when test="$action='CURRENT'">
    255           <li><a><xsl:value-of select="displayItem[@name='name']"/></a></li>
    256         </xsl:when>
    257         <xsl:when test="$action !='DO_NOT_DISPLAY'">
    258           <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:if test="displayItem[@name='description']"><xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></a></li>
    259         </xsl:when>
    260           </xsl:choose>
    261         </xsl:for-each>
    262 </xsl:template>
    263 
    264 
    265 <xsl:template name="collectionDescriptionTextAndServicesLinks">
    266         <xsl:apply-templates select="pageResponse/collection|serviceCluster"/>
    267 </xsl:template>
    268 
    269 <xsl:template match="collection|serviceCluster">
    270       <xsl:value-of select="displayItem[@name='description']" disable-output-escaping="yes"/>
    271      
    272       <xsl:apply-templates select="serviceList">
    273     <xsl:with-param name="collName" select="$collName"/>
    274       </xsl:apply-templates>
    275 </xsl:template>
    276 
    277 
    278  <xsl:template match="serviceList">
     241  </xsl:template>
     242
     243  <xsl:template name="servicesNavigationBar">
     244    <xsl:for-each select="$this-element/serviceList/service">
     245      <xsl:variable name="action"><xsl:choose>
     246      <xsl:when test="@name=$this-service">CURRENT</xsl:when>
     247      <xsl:when test="@type='query'">q</xsl:when>
     248      <xsl:when test="@type='browse'">b</xsl:when>
     249      <xsl:when test="@type='process'">pr</xsl:when>
     250      <xsl:when test="@type='applet'">a</xsl:when>
     251      <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
     252    </xsl:choose></xsl:variable>
     253      <xsl:choose>
     254    <xsl:when test="$action='CURRENT'">
     255      <li><a><xsl:value-of select="displayItem[@name='name']"/></a></li>
     256    </xsl:when>
     257    <xsl:when test="$action !='DO_NOT_DISPLAY'">
     258      <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:if test="displayItem[@name='description']"><xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute></xsl:if><xsl:value-of select="displayItem[@name='name']"/></a></li>
     259    </xsl:when>
     260      </xsl:choose>
     261    </xsl:for-each>
     262  </xsl:template>
     263
     264
     265  <xsl:template name="collectionDescriptionTextAndServicesLinks">
     266    <xsl:apply-templates select="pageResponse/collection|serviceCluster"/>
     267  </xsl:template>
     268
     269  <xsl:template match="collection|serviceCluster">
     270    <xsl:value-of select="displayItem[@name='description']" disable-output-escaping="yes"/>
     271   
     272    <xsl:apply-templates select="serviceList">
     273      <xsl:with-param name="collName" select="$collName"/>
     274    </xsl:apply-templates>
     275  </xsl:template>
     276
     277
     278  <xsl:template match="serviceList">
    279279    <xsl:param name="collName"/>
    280280    <h3><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'about.services')"/></h3>
     
    288288    </xsl:choose>
    289289   
    290    
     290   
    291291    <xsl:if test="service">
    292292      <ul id="servicelist">     
     
    307307  </xsl:template>
    308308
    309 
    310 
    311309</xsl:stylesheet>
Note: See TracChangeset for help on using the changeset viewer.