root/main/branches/64_bit_Greenstone/greenstone3/web/interfaces/default/transform/util.xsl @ 24007

Revision 24007, 11.1 KB (checked in by sjm84, 8 years ago)

Updating this branch to match the latest Greenstone3 changes

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<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:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
6  exclude-result-prefixes="gslib gsf">
7 
8  <!-- some global parameters - these are set by whoever is invoking the transformation -->
9  <xsl:param name="interface_name"/>
10  <xsl:param name="library_name"/>
11
12  <!-- Get rid of XSLT parameters from view -->
13  <xsl:template match="xsltparams/param">
14    <xsl:text></xsl:text>
15  </xsl:template>
16 
17  <!-- every pages ................................................. -->
18 
19  <xsl:variable name="a"><xsl:value-of select="/page/pageRequest/paramList/param[@name='a']/@value"/></xsl:variable>
20  <xsl:variable name="collections" select="/page/pageResponse/collectionList/collection"/>
21 
22 
23  <xsl:template name="textDirectionAttribute">
24    <xsl:attribute name="dir">
25      <xsl:choose>
26    <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>
27    <xsl:otherwise>ltr</xsl:otherwise>
28      </xsl:choose>
29    </xsl:attribute>
30  </xsl:template>
31 
32 
33  <xsl:template name="defaultDividerBar">
34    <xsl:param name='text'/>
35    <xsl:choose>
36      <xsl:when test="$text">
37    <div class="divbar"><xsl:value-of select="$text"/></div>
38      </xsl:when>
39      <xsl:otherwise>
40    <div class="divbar"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></div>
41      </xsl:otherwise>
42    </xsl:choose>
43  </xsl:template>
44 
45 
46  <xsl:template match="error">
47    Error: <xsl:value-of select="."/>
48  </xsl:template>
49 
50 
51  <xsl:template name="displayErrorsIfAny">
52    <xsl:if test="descendant::error">
53      <script language="Javascript">
54    <xsl:text disable-output-escaping="yes">
55      function removeAllChildren(node) {
56      while (node.hasChildNodes()) {
57      node.removeChild(node.firstChild);
58      }
59      }
60
61      function toggleHideError(obj) {
62      if (obj.style.display == "none") {
63      obj.style.display = "";
64      hide_link = document.getElementById("hide");
65      removeAllChildren(hide_link);
66      var theText = getText('hide_error', null);
67      var hide_text = document.createTextNode(theText);
68      hide_link.appendChild(hide_text));
69      } else {
70      obj.style.display = "none";
71      hide_link = document.getElementById("hide");
72      removeAllChildren(hide_link);
73      var theText = getText('show_error', null);
74      var show_text = document.createTextNode(theText);
75      hide_link.appendChild(show_text);
76      }
77      }
78    </xsl:text>
79      </script>
80      <p align='right'><a id="hide" href="javascript:toggleHideError(error);"></a></p>
81      <div id="error" style="display: none;">
82    <xsl:apply-templates select="descendant::error"/>
83      </div>
84    </xsl:if>
85  </xsl:template>
86
87
88  <xsl:template name="noTextBar">
89    <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
90  </xsl:template>
91 
92 
93  <xsl:template name="poweredByGS3TextBar">
94    <span class="getTextFor gs3power">&amp;nbsp;</span>
95  </xsl:template>
96 
97 
98  <!-- site home ...................................................... -->
99
100  <xsl:template name="siteHomePageTitle">
101    <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
102    <span class="getTextFor gsdl">&amp;nbsp;</span><xsl:text> </xsl:text>
103  </xsl:template>
104
105
106  <xsl:template name="selectACollectionTextBar">
107    <span class="getTextFor home.select_a_collection">&amp;nbsp;</span>
108  </xsl:template>
109 
110 
111  <xsl:template name="crossCollectionQuickSearchForm">
112    <xsl:apply-templates select="serviceList/service[@name='TextQuery']" mode="quicksearch"/>
113  </xsl:template>
114 
115  <xsl:template match="service[@name='TextQuery']" mode="quicksearch">
116    <form name="QuickSearch" method="get" action="{$library_name}">
117      <input type="hidden" name="a" value="q"/>
118      <input type="hidden" name="rt" value="rd"/>
119      <input type="hidden" name="s" value="{@name}"/>
120      <input type="hidden" name="s1.collection" value="all"/>
121      <input type="text" name="s1.query" size="20"/>
122      <input type="submit" class="getTextFor null this.value.home.quick_search" />
123    </form>
124  </xsl:template>
125 
126 
127  <xsl:template name="collectionLinkWithImage">
128    <xsl:choose>
129      <xsl:when test="displayItem[@name='icon']">
130    <a href="{$library_name}?a=p&amp;sa=about&amp;c={@name}">
131      <img>
132        <xsl:attribute name="src">
133          <xsl:value-of select="metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="displayItem[@name='icon']"/>
134        </xsl:attribute>
135        <xsl:attribute name="alt">
136          <xsl:value-of select="displayItem[@name='name']"/>
137        </xsl:attribute>
138      </img>
139    </a> 
140      </xsl:when>
141      <xsl:otherwise>
142    <a class="noimage" href="{$library_name}?a=p&amp;sa=about&amp;c={@name}"> 
143      <xsl:value-of select="displayItem[@name='name']"/>
144    </a>
145      </xsl:otherwise>
146    </xsl:choose>
147  </xsl:template>
148 
149 
150  <xsl:template name="serviceClusterList">
151    <xsl:apply-templates select="serviceClusterList"/>
152  </xsl:template>
153 
154  <xsl:template match="serviceClusterList">
155    <xsl:for-each select="serviceCluster">
156      <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>
157    </xsl:for-each>
158  </xsl:template>
159
160 
161  <xsl:template name="serviceLink">
162    <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']"/>
163  </xsl:template>
164
165 
166  <xsl:template name="authenticationLink">
167    <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']"/>
168  </xsl:template>
169 
170 
171  <xsl:template name="libraryInterfaceLink">
172    <li><a href="{$library_name}?a=p&amp;sa=gli4gs3"><span class="getTextFor home.librarian_interface">&amp;nbsp;</span></a></li>
173  </xsl:template>
174
175  <!-- about page - collection home ......................... -->
176  <xsl:variable name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
177  <xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
178  <xsl:param name="pageType"/>
179  <xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
180  <xsl:variable name="this-service" select="/page/pageResponse/service/@name"/>
181
182  <xsl:template name="aboutCollectionPageTitle">
183    <!-- put a space in the title in case the actual value is missing - mozilla will not display a page with no title-->
184    <xsl:value-of select="/page/pageResponse/*/displayItem[@name='name']"/><xsl:text> </xsl:text>
185  </xsl:template>
186
187 
188  <xsl:template name="collectionHomeLinkWithLogoIfAvailable">
189    <a href="{$library_name}?a=p&amp;sa=about&amp;c={$collName}">
190      <xsl:choose>
191    <xsl:when test="$this-element/displayItem[@name='icon']">
192      <img border="0" class="getTextFor null this.title.aboutpage">
193        <xsl:attribute name="src">
194          <xsl:value-of select="$this-element/metadataList/metadata[@name='httpPath']"/>/images/<xsl:value-of select="$this-element/displayItem[@name='icon']"/>
195        </xsl:attribute>   
196        <xsl:attribute name="alt">
197          <xsl:value-of select="$this-element/displayItem[@name='name']"/>
198        </xsl:attribute>
199      </img>
200    </xsl:when>
201    <xsl:otherwise>
202      <xsl:value-of select="$this-element/displayItem[@name='name']"/>
203    </xsl:otherwise>
204      </xsl:choose>
205    </a>
206  </xsl:template>
207
208
209  <xsl:template name="homeButtonTop">
210    <a href="{$library_name}?a=p&amp;sa=home" class="getTextFor home_b this.title.home_tip">&amp;nbsp;</a>
211  </xsl:template>
212
213
214  <xsl:template name="helpButtonTop">
215    <xsl:choose>
216      <xsl:when test="$pageType='help'">
217    <li><a class="getTextFor help_b"></a></li>
218      </xsl:when>
219      <xsl:otherwise>
220    <li><a href="{$library_name}?a=p&amp;sa=help&amp;c={$collName}" class="getTextFor help_b this.title.help_tip">&amp;nbsp;</a></li>
221      </xsl:otherwise>
222    </xsl:choose>
223  </xsl:template>
224
225
226  <xsl:template name="preferencesButtonTop">
227    <xsl:choose>
228      <xsl:when test="$pageType='pref'">
229    <li><a class="getTextFor pref_b">&amp;nbsp;</a></li>
230      </xsl:when>
231      <xsl:otherwise>
232    <li><a href="{$library_name}?a=p&amp;sa=pref&amp;c={$collName}" class="getTextFor pref_b this.title.pref_tip">&amp;nbsp;</a></li>
233      </xsl:otherwise>
234    </xsl:choose>
235  </xsl:template>
236
237  <xsl:template name="servicesNavigationBar">
238    <xsl:for-each select="$this-element/serviceList/service">
239      <xsl:variable name="action"><xsl:choose>
240      <xsl:when test="@hidden='true'">DO_NOT_DISPLAY</xsl:when>
241      <xsl:when test="@name=$this-service">CURRENT</xsl:when>
242      <xsl:when test="@type='query'">q</xsl:when>
243      <xsl:when test="@type='browse'">b</xsl:when>
244      <xsl:when test="@type='process'">pr</xsl:when>
245      <xsl:when test="@type='applet'">a</xsl:when>
246      <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
247    </xsl:choose></xsl:variable>
248      <xsl:choose>
249    <xsl:when test="$action='CURRENT'">
250      <li><a><xsl:value-of select="displayItem[@name='name']"/></a></li>
251    </xsl:when>
252    <xsl:when test="$action !='DO_NOT_DISPLAY'">
253      <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>
254    </xsl:when>
255      </xsl:choose>
256    </xsl:for-each>
257  </xsl:template>
258
259
260  <xsl:template name="collectionDescriptionTextAndServicesLinks">
261    <xsl:apply-templates select="pageResponse/collection|serviceCluster"/>
262  </xsl:template>
263
264  <xsl:template match="collection|serviceCluster">
265    <xsl:value-of select="displayItem[@name='description']" disable-output-escaping="yes"/>
266   
267    <xsl:apply-templates select="serviceList">
268      <xsl:with-param name="collName" select="$collName"/>
269    </xsl:apply-templates>
270  </xsl:template>
271
272
273  <xsl:template match="serviceList">
274    <xsl:param name="collName"/>
275    <h3 class="getTextFor about.services">&amp;nbsp;</h3>
276    <xsl:choose>
277      <xsl:when test="service">
278        <span class="getTextFor about.servicehelp">&amp;nbsp;</span>
279      </xsl:when>
280      <xsl:otherwise>
281        <span class="getTextFor about.noservices">&amp;nbsp;</span>
282      </xsl:otherwise>
283    </xsl:choose>
284   
285   
286    <xsl:if test="service">
287      <ul id="servicelist">     
288    <xsl:for-each select="service">
289      <xsl:variable name="action"><xsl:choose>
290          <xsl:when test="@hidden='true'">DO_NOT_DISPLAY</xsl:when>
291          <xsl:when test="@type='query'">q</xsl:when>
292          <xsl:when test="@type='browse'">b</xsl:when>
293          <xsl:when test="@type='process'">pr</xsl:when>
294          <xsl:when test="@type='applet'">a</xsl:when>
295          <xsl:otherwise>DO_NOT_DISPLAY</xsl:otherwise>
296        </xsl:choose></xsl:variable>
297      <xsl:if test="$action !='DO_NOT_DISPLAY'">
298        <li><a href="{$library_name}?a={$action}&amp;rt=d&amp;s={@name}&amp;c={$collName}"><xsl:value-of select="displayItem[@name='name']"/></a><xsl:value-of select="displayItem[@name='description']"/></li>
299      </xsl:if>
300    </xsl:for-each>
301      </ul>
302    </xsl:if>
303  </xsl:template>
304
305</xsl:stylesheet>
Note: See TracBrowser for help on using the browser.