source: main/trunk/greenstone3/web/interfaces/oran/transform/layouts/header.xsl@ 24781

Last change on this file since 24781 was 24781, checked in by papitha, 13 years ago

changes to header.xsl

  • Property svn:executable set to *
File size: 11.5 KB
Line 
1<xsl:stylesheet version="1.0"
2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3 xmlns:java="http://xml.apache.org/xslt/java"
4 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
5 xmlns:gslib="http://www.greenstone.org/skinning"
6 extension-element-prefixes="java util"
7 exclude-result-prefixes="java util">
8
9 <xsl:include href="../query-common.xsl"/>
10 <xsl:include href="../javascript-global-setup.xsl"/>
11
12 <!-- If the c parameter is empty then use the p.c parameter for the collection name-->
13 <xsl:variable name="collNameChecked">
14 <xsl:choose>
15 <xsl:when test="$collName = '' and /page/pageRequest/paramList/param[@name='p.c']/@value">
16 <xsl:value-of select="/page/pageRequest/paramList/param[@name='p.c']/@value"/>
17 </xsl:when>
18 <xsl:otherwise>
19 <xsl:value-of select="$collName"/>
20 </xsl:otherwise>
21 </xsl:choose>
22 </xsl:variable>
23
24 <!-- Creates a header for the html page -->
25 <xsl:template name="create-html-header">
26 <title><xsl:call-template name="pageTitle"/> :: <xsl:call-template name="siteName"/></title>
27 <link rel="stylesheet" href="interfaces/{$interface_name}/style/core.css" type="text/css"/>
28 <link rel="shortcut icon" href="favicon.ico"/>
29 <script type="text/javascript" src="interfaces/{$interface_name}/js/direct-edit.js"><xsl:text> </xsl:text></script>
30
31 <xsl:call-template name="init-seaweed"/>
32 <xsl:call-template name="setup-gs-variable"/>
33 <xsl:call-template name="additionalHeaderContent"/>
34 </xsl:template>
35
36 <xsl:template name="additionalHeaderContent">
37 <!-- This template should be overridden in the collectionConfig.xml file if you want to add extra header content -->
38 </xsl:template>
39
40 <xsl:template name="init-seaweed">
41 <script type="text/javascript">
42 <xsl:text disable-output-escaping="yes">
43 de.onready(function() {
44 try {
45 de.init();
46
47 de.doc.declarePropertySets({
48 metadata: {
49 phMarkup: '[Enter metadata value]',
50 name: "metadata"
51 }
52 });
53 }
54 catch (err) {
55 //alert("Seaweed failed to initialise: " + err.message);
56 }
57 });
58 </xsl:text>
59 </script>
60 </xsl:template>
61
62 <!-- ***** HEADER LAYOUT TEMPLATE ***** -->
63 <xsl:template name="create-banner">
64 <div id="breadcrumbs"><xsl:call-template name="breadcrumbs"/><xsl:text> </xsl:text></div>
65 <table id="titlesearchcontainer">
66 <tr>
67 <xsl:call-template name="page-title-area"/>
68 <xsl:call-template name="quick-search-area"/>
69 </tr>
70 </table>
71 <xsl:call-template name="home-help-preferences"/>
72 <xsl:call-template name="browsing-tabs"/>
73 </xsl:template>
74
75 <!-- ***** BROWSING TABS ***** -->
76 <xsl:template name="browsing-tabs">
77 <xsl:if test="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service">
78 <ul id="nav">
79 <!-- If this collection has a ClassifierBrowse service then add a tab for each classifier-->
80 <xsl:if test="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@type='browse' and @name='ClassifierBrowse']">
81 <!-- Loop through each classifier -->
82 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='ClassifierBrowse']/classifierList/classifier">
83 <xsl:element name="li">
84 <!-- If this tab is selected then colour it differently (right part) -->
85 <xsl:if test="@name = /page/pageRequest/paramList/param[@name = 'cl' and /page/pageRequest/@action = 'b']/@value">
86 <xsl:attribute name='style'>background: transparent url('interfaces/oran/images/tab-right-selected.png') scroll no-repeat 100% -100px;</xsl:attribute>
87 </xsl:if>
88
89 <xsl:element name="a">
90 <!-- If this tab is selected then colour it differently (left part) -->
91 <xsl:if test="@name = /page/pageRequest/paramList/param[@name = 'cl' and /page/pageRequest/@action = 'b']/@value">
92 <xsl:attribute name='style'>background: transparent url('interfaces/oran/images/tab-left-selected.png') no-repeat scroll 0 -100px;</xsl:attribute>
93 </xsl:if>
94
95 <!-- Add a title element to the <a> tag if a description exists for this classifier -->
96 <xsl:if test="displayItem[@name='description']">
97 <xsl:attribute name='title'><xsl:value-of select="displayItem[@name='description']"/></xsl:attribute>
98 </xsl:if>
99
100 <!-- Add the href element to the <a> tag -->
101 <xsl:choose>
102 <xsl:when test="@name">
103 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=b&amp;rt=s&amp;s=ClassifierBrowse&amp;c=<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/>&amp;cl=<xsl:value-of select="@name"/></xsl:attribute>
104 </xsl:when>
105 <xsl:otherwise>
106 <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=b&amp;rt=d&amp;s=ClassifierBrowse&amp;c=<xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/@name"/></xsl:attribute>
107 </xsl:otherwise>
108 </xsl:choose>
109
110 <!-- Add the actual text of the <a> tag -->
111 <xsl:value-of select="displayItem[@name='name']"/>
112 </xsl:element>
113 </xsl:element>
114 </xsl:for-each>
115 </xsl:if>
116
117 <!-- all other services -->
118 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[not(@type='query') and not(@type='browse')]">
119 <xsl:call-template name="navigationTab"/>
120 </xsl:for-each>
121 </ul>
122 </xsl:if>
123 </xsl:template>
124
125 <!-- ***** HOME HELP PREFERENCES ***** -->
126 <xsl:template name="home-help-preferences">
127 <xsl:if test="/page/pageResponse/collection">
128 <ul id="bannerLinks">
129
130 <!-- preferences -->
131 <li>
132 <a href="{$library_name}?a=p&amp;amp;sa=pref&amp;amp;c={$collNameChecked}">
133 <xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_tip')"/></xsl:attribute>
134 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/>
135 </a>
136 </li>
137
138 <!-- help -->
139 <li>
140 <a href="{$library_name}?a=p&amp;amp;sa=help&amp;amp;c={$collNameChecked}">
141 <xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_tip')"/></xsl:attribute>
142 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_b')"/>
143 </a>
144 </li>
145
146 <!-- home -->
147 <li>
148 <a href="{$library_name}?a=p&amp;amp;sa=home">
149 <xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_tip')"/></xsl:attribute>
150 <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/>
151 </a>
152 </li>
153 </ul>
154 </xsl:if>
155 </xsl:template>
156
157 <!-- ***** PAGE TITLE ***** -->
158 <xsl:template name="page-title-area">
159 <xsl:variable name="pageTitleVar"><xsl:call-template name="pageTitle"/></xsl:variable>
160 <td id="titlearea">
161 <h2>
162 <!-- Resize the title based on how long it is (There's probably a better way to do this) -->
163 <xsl:attribute name="style">
164 <xsl:choose>
165 <xsl:when test="string-length($pageTitleVar) &lt; 20">
166 <xsl:text>font-size: 1.5em; line-height: 1.5em;</xsl:text>
167 </xsl:when>
168 <xsl:when test="string-length($pageTitleVar) &lt; 30">
169 <xsl:text>font-size: 1.4em; line-height: 1.4em;</xsl:text>
170 </xsl:when>
171 <xsl:when test="string-length($pageTitleVar) &lt; 40">
172 <xsl:text>font-size: 1.3em; line-height: 1.3em;</xsl:text>
173 </xsl:when>
174 <xsl:when test="string-length($pageTitleVar) &lt; 50">
175 <xsl:text>font-size: 1.2em; line-height: 1.2em;</xsl:text>
176 </xsl:when>
177 <xsl:when test="string-length($pageTitleVar) &lt; 60">
178 <xsl:text>font-size: 1.1em; line-height: 1.2em;</xsl:text>
179 </xsl:when>
180 <xsl:when test="string-length($pageTitleVar) &lt; 70">
181 <xsl:text>font-size: 1em; line-height: 1.1em;</xsl:text>
182 </xsl:when>
183 <xsl:when test="string-length($pageTitleVar) &lt; 80">
184 <xsl:text>font-size: 0.9em; line-height: 1em;</xsl:text>
185 </xsl:when>
186 <xsl:when test="string-length($pageTitleVar) &lt; 90">
187 <xsl:text>font-size: 0.8em; line-height: 0.9em;</xsl:text>
188 </xsl:when>
189 <xsl:otherwise>
190 <xsl:text>font-size: 0.7em; line-height: 0.9em;</xsl:text>
191 </xsl:otherwise>
192 </xsl:choose>
193 </xsl:attribute>
194 <!--<xsl:value-of select="string-length($pageTitleVar)" />-->
195 <xsl:value-of select="$pageTitleVar" />
196 </h2>
197 </td>
198 </xsl:template>
199
200
201 <!-- ***** QUICK SEARCH AREA ***** -->
202 <xsl:template name="quick-search-area">
203 <xsl:if test="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']">
204 <xsl:variable name="subaction" select="/page/pageRequest/@subaction"/>
205 <td id="quicksearcharea">
206 <form action="{$library_name}">
207 <input type="hidden" name="a" value="q"/>
208 <input type="hidden" name="sa" value="{$subaction}"/>
209 <input type="hidden" name="rt" value="rd"/>
210 <input type="hidden" name="s" value="TextQuery"/>
211 <input type="hidden" name="c" value="{$collNameChecked}"/>
212 <input type="hidden" name="startPage" value="1"/>
213 <!-- The query text box -->
214 <span class="querybox">
215 <xsl:variable name="qs">
216 <xsl:apply-templates select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='query']" mode="calculate-default"/>
217 </xsl:variable>
218 <nobr>
219 <xsl:apply-templates select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='query']">
220 <xsl:with-param name="default" select="java:org.greenstone.gsdl3.util.XSLTUtil.tidyWhitespace($qs)"/>
221 </xsl:apply-templates>
222 </nobr>
223 </span>
224 <!-- The index selection list -->
225 <xsl:if test="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='index']/@type = 'enum_single'">
226 <span class="textselect">
227 <xsl:apply-templates select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='index']">
228 <xsl:with-param name="default">
229 <xsl:apply-templates select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='index']" mode="calculate-default"/>
230 </xsl:with-param>
231 </xsl:apply-templates>
232 </span>
233 </xsl:if>
234 <!-- The submit button -->
235 <input type="submit">
236 <xsl:attribute name="value">
237 <xsl:value-of select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/displayItem[@name='submit']"/>
238 </xsl:attribute>
239 </input>
240 <br/>
241 <!-- The list of other search types -->
242 <table>
243 <tr>
244 <xsl:for-each select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@type='query']">
245 <td>
246 <a>
247 <xsl:attribute name="href">
248 <xsl:value-of select="$library_name"/>?a=q&amp;rt=d&amp;c=<xsl:value-of select="$collNameChecked"/>&amp;s=<xsl:value-of select="@name"/>
249 </xsl:attribute>
250 <xsl:value-of select="displayItem[@name='name']"/>
251 </a>
252 </td>
253 </xsl:for-each>
254 </tr>
255 </table>
256 </form>
257 </td>
258 </xsl:if>
259 </xsl:template>
260</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.