root/main/trunk/greenstone3/web/interfaces/oran/transform/layouts/header.xsl @ 24907

Revision 24907, 11.5 KB (checked in by sjb48, 8 years ago)

Tidied up format functionality.

  • Property svn:executable set to *
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 browser.