Ignore:
Timestamp:
2011-03-15T16:13:12+13:00 (13 years ago)
Author:
davidb
Message:

Two new interfaces - 'default' now tries to use the client's XSLT capabilities of the web browser, falling back to the 'traditional' interface if this fails.

File:
1 edited

Legend:

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

    r21282 r23779  
    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   extension-element-prefixes="java util"
    7   exclude-result-prefixes="java util">
     3  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    84
    95  <xsl:include href="icons.xsl"/>
     
    2319      <script language="Javascript">
    2420    <xsl:text disable-output-escaping="yes">
    25       function removeAllChildren(node) {
    26         while (node.hasChildNodes()) {
    27           node.removeChild(node.firstChild);
    28         }
     21          function removeAllChildren(node) {
     22      while (node.hasChildNodes()) {
     23      node.removeChild(node.firstChild);
    2924      }
     25      }
    3026
    3127      function toggleHideError(obj) {
    32         if (obj.style.display == "none") {
    33           obj.style.display = "";
    34           hide_link = document.getElementById("hide");
    35           removeAllChildren(hide_link);
    36           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">"));
    37         } else {
    38           obj.style.display = "none";
    39           hide_link = document.getElementById("hide");
    40           removeAllChildren(hide_link);
    41           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">"));
    42         }
     28      if (obj.style.display == "none") {
     29      obj.style.display = "";
     30      hide_link = document.getElementById("hide");
     31      removeAllChildren(hide_link);
     32      var theText = getText('hide_error', null);
     33      alert(theText);
     34      var hide_text = document.createTextNode(theText);
     35      hide_link.appendChild(hide_text));
     36      } else {
     37      obj.style.display = "none";
     38      hide_link = document.getElementById("hide");
     39      removeAllChildren(hide_link);
     40      var theText = getText('show_error', null);
     41      alert(theText);
     42      var show_text = document.createTextNode(theText);
     43      hide_link.appendChild(show_text);
     44      }
    4345      }
    4446    </xsl:text>
    4547      </script>
    46       <p align='right'><a id="hide" href="javascript:toggleHideError(error);"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'show_error')"/></a></p>
     48      <p align='right'><a id="hide" href="javascript:toggleHideError($('#error'));"><xsl:call-template name="getTextFor"><xsl:with-param name="key" select="'show_error'" /><xsl:with-param name="affect" select="''" /></xsl:call-template></a></p>
    4749      <div id="error" style="display: none;">
    4850    <xsl:apply-templates select="descendant::error"/>
     
    5456    <div id="footer">
    5557      <xsl:call-template name="dividerBar">
    56     <xsl:with-param name="text" select="util:getInterfaceText($interface_name, /page/@lang, 'gs3power')"/>
     58        <xsl:with-param name="text"><xsl:text>powered-by</xsl:text></xsl:with-param>
    5759      </xsl:call-template>
     60        <script type="text/javascript">var placeholder = false;</script>
     61    <script type="text/javascript" src="jquery.js">
     62        <xsl:comment>Filler for browser</xsl:comment>
     63    </script>
     64    <script type="text/javascript" src="test.js">
     65        <xsl:comment>Filler for browser</xsl:comment>
     66    </script>
    5867    </div>
    5968  </xsl:template>
    6069 
    6170  <xsl:template match="error">
    62     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'error')"/> <xsl:value-of select="."/>
     71    <span class="getTextFor error"></span> <xsl:value-of select="."/>
    6372  </xsl:template>
    6473
     
    6776    <xsl:param name="pageType"/>
    6877    <xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
    69     <div  id="banner">   
     78    <div id="loading" style="display: none; position: fixed; top: 0; right: 0; padding: 10px;"><img src="interfaces/default/images/loading.gif" alt="Loading interface..." /></div>
     79    <span id="language" style="display: none;"><xsl:value-of select="/page/@lang" /></span>
     80    <span id="interface" style="display: none;"><xsl:value-of select="$interface_name" /></span>   
     81    <div id="banner">   
    7082      <p>
    7183    <a href="{$library_name}?a=p&amp;sa=about&amp;c={$collName}">
     
    7890        <xsl:attribute name="alt">
    7991          <xsl:value-of select="$this-element/displayItem[@name='name']"/>
    80         </xsl:attribute>
    81         <xsl:attribute name="title">
    82           <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'aboutpage')"/>
    83         </xsl:attribute>
    84           </img>
     92        </xsl:attribute></img>
    8593        </xsl:when>
    8694        <xsl:otherwise>
     
    9098    </a>
    9199      </p>
     100        <xsl:call-template name="getTextFor">
     101            <xsl:with-param name="key" select="'null'" />
     102            <xsl:with-param name="affect" select="'parent.title.aboutpage'" />
     103            <xsl:with-param name="display" select="'none'" />
     104        </xsl:call-template>
    92105      <ul id="bannerlist">
    93106    <xsl:call-template name="top-buttons">
     
    102115    <xsl:param name="collName"/>
    103116    <xsl:param name="pageType"/>
    104     <li><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>
    105     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'home_b')"/>
     117    <li><a href="{$library_name}?a=p&amp;sa=home">
     118        <xsl:call-template name="getTextFor">
     119            <xsl:with-param name="key" select="'home_b'" />
     120            <xsl:with-param name="parentTip" select="'home_tip'" />
     121        </xsl:call-template>
    106122      </a></li>
    107123    <xsl:choose>
    108124      <xsl:when test="$pageType='help'">
    109     <li><a><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_b')"/></a></li>
    110       </xsl:when>
    111       <xsl:otherwise>
    112     <li><a href="{$library_name}?a=p&amp;sa=help&amp;c={$collName}"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_tip')"/></xsl:attribute>
    113         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'help_b')"/>
     125    <li><a>
     126          <xsl:call-template name="getTextFor">
     127              <xsl:with-param name="key" select="'help_b'" />
     128              <xsl:with-param name="affect" select="'parent.title.help_tip'" />
     129          </xsl:call-template> 
     130    </a></li>
     131      </xsl:when>
     132      <xsl:otherwise>
     133    <li><a href="{$library_name}?a=p&amp;sa=help&amp;c={$collName}">
     134          <xsl:call-template name="getTextFor">
     135                <xsl:with-param name="key" select="'help_b'" />
     136                <xsl:with-param name="affect" select="'parent.title.help_tip'" />
     137            </xsl:call-template>
    114138      </a></li>
    115139      </xsl:otherwise>
     
    117141    <xsl:choose>
    118142      <xsl:when test="$pageType='pref'">
    119     <li><a><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/></a></li>
    120       </xsl:when>
    121       <xsl:otherwise>
    122     <li><a href="{$library_name}?a=p&amp;sa=pref&amp;c={$collName}"><xsl:attribute name="title"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_tip')"/></xsl:attribute>
    123         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'pref_b')"/>
     143    <li><a><xsl:call-template name="getTextFor"><xsl:with-param name="key" select="'pref_b'" /><xsl:with-param name="affect" select="''" /></xsl:call-template></a></li>
     144      </xsl:when>
     145      <xsl:otherwise>
     146    <li><a href="{$library_name}?a=p&amp;sa=pref&amp;c={$collName}">
     147          <xsl:call-template name="getTextFor"><xsl:with-param name="key" select="'pref_b'" /><xsl:with-param name="affect" select="'parent.title.pref_tip'" /></xsl:call-template>
    124148      </a></li>
    125149      </xsl:otherwise>
    126150    </xsl:choose>
     151  </xsl:template>
     152 
     153  <xsl:template name="getTextFor">
     154    <xsl:param name="key" />
     155    <xsl:param name="affect" />
     156    <xsl:param name="display" select="'yes'" />
     157
     158    <xsl:variable name="extra">
     159    <xsl:choose>
     160    <xsl:when test="$affect!=''">
     161        <xsl:text> </xsl:text>
     162        <xsl:value-of select="$affect" />   
     163    </xsl:when>     
     164    <xsl:otherwise>
     165        <xsl:value-of select="' '" />   
     166    </xsl:otherwise>
     167    </xsl:choose>
     168    </xsl:variable>
     169
     170    <span class="getTextFor {$key}{$extra}"><xsl:if test="$display='none'"><xsl:attribute name="style"><xsl:text>display: </xsl:text><xsl:value-of select="$display" /><xsl:text>;</xsl:text></xsl:attribute></xsl:if><xsl:value-of select="$key" /></span>
    127171  </xsl:template>
    128172
     
    170214    <xsl:choose>
    171215      <xsl:when test="$text">
    172     <div class="divbar"><xsl:value-of select="$text"/></div>
    173       </xsl:when>
    174       <xsl:otherwise>
    175     <div class="divbar"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></div>
     216        <div class="divbar"><xsl:choose><xsl:when test="$text='powered-by'"><span class="getTextFor gs3power">&amp;nbsp;</span></xsl:when><xsl:when test="$text='query.results'"><span class="getTextFor query.results">&amp;nbsp;</span></xsl:when><xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise></xsl:choose></div>
     217      </xsl:when>
     218      <xsl:otherwise>
     219    <div class="divbar"><xsl:text disable-output-escaping="yes">&#160;</xsl:text></div>
    176220      </xsl:otherwise>
    177221    </xsl:choose>
    178222  </xsl:template>
    179 
    180 
     223   
    181224  <xsl:template name="direction">
    182225    <xsl:if 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:if>
Note: See TracChangeset for help on using the changeset viewer.