Changeset 30478 for main


Ignore:
Timestamp:
2016-04-20T22:56:11+12:00 (8 years ago)
Author:
davidb
Message:

Changes in the XSL and JS code to support the new approach taken to client-side XSLT (using Saxon-CE JS library in the browser). Also the reintroduction of the DirectEdit (Seaweed) template. Not on by default but a simple matter to call the re-instated template for projects that would like to make use of it, such as the digital music stand DL collection. Some white-space changes also occured. This was not deliberate, but would have been quite fiddly to tease out from other changes in the file, so consequently left in.

Location:
main/trunk/greenstone3/web/interfaces/default
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/js/document_scripts.js

    r30169 r30478  
    408408}
    409409
     410function retrieveFullTableOfContentsSuccess(newTOCElem)
     411{
     412    var tocStart = newTOCElem.indexOf(">") + 1;
     413    var tocEnd = newTOCElem.lastIndexOf("<");
     414   
     415    var newTOC = newTOCElem.substring(tocStart, tocEnd);
     416   
     417    //Add the "Expand document"/"Collapse document" links
     418    newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC;
     419   
     420    //Collapse the TOC
     421    newTOC = newTOC.replace(/display:block/g, "display:none");
     422    newTOC = newTOC.replace(/display:none/, "display:block");
     423    newTOC = newTOC.replace(/images\/collapse/g, "images/expand");
     424   
     425    var tocElem = $("#tableOfContents");
     426    tocElem.html(newTOC);
     427   
     428    gs.variables.tocLoaded = true;
     429}
     430
     431function retrieveFullTableOfContentsSuccessClientSideXSLT(newTOCElem)
     432{
     433    $('#client-side-xslt-ajax').remove();
     434    retrieveFullTableOfContentsSuccess(newTOCElem)
     435}
     436
    410437function retrieveFullTableOfContents()
    411438{
     
    419446        url += "&a=d&d=&alb=1&rl=1&href=" + gs.cgiParams.href;
    420447    }
    421 
     448   
     449    if (gs.xsltParams.use_client_side_xslt == "true") { // note xsltParams are of type string, so test needs to be in quotes
     450    url += "&callback=retrieveFullTableOfContentsSuccessClientSideXSLT"; // used in client-side-xslt.js, in combination with 'excerptid'
     451        $('<iframe src="'+url+'" id="client-side-xslt-ajax" tabindex="-1" style="position: absolute; width: 0px; height: 0px; border: none;"></iframe>').appendTo('body');
     452    }
     453    else { 
    422454    $.ajax(url)
    423     .success(function(newTOCElem)
    424     {
    425         var tocStart = newTOCElem.indexOf(">") + 1;
    426         var tocEnd = newTOCElem.lastIndexOf("<");
    427        
    428         var newTOC = newTOCElem.substring(tocStart, tocEnd);
    429        
    430         //Add the "Expand document"/"Collapse document" links
    431         newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC;
    432        
    433         //Collapse the TOC
    434         newTOC = newTOC.replace(/display:block/g, "display:none");
    435         newTOC = newTOC.replace(/display:none/, "display:block");
    436         newTOC = newTOC.replace(/images\/collapse/g, "images/expand");
    437        
    438         var tocElem = $("#tableOfContents");
    439         tocElem.html(newTOC);
    440        
    441         gs.variables.tocLoaded = true;
    442     })
    443     .error(function()
    444     {
     455        .success(retrieveFullTableOfContentsSuccess)
     456        .error(function() {
    445457        setTimeout(retrieveFullTableOfContents, 1000);
    446     });
     458        });
     459    }
    447460}
    448461
  • main/trunk/greenstone3/web/interfaces/default/transform/config_format.xsl

    r29936 r30478  
    1111    <xsl:param name="library_name"/>
    1212    <xsl:param name="site_name"/>
     13    <xsl:param name="use_client_side_xslt"/>
    1314    <xsl:param name="collName"/>
    1415
     
    155156    <xsl:template match="gsf:link">
    156157
    157         <xslt:variable name="collName" select="/page/pageResponse/collection/@name"/>
     158        <xslt:variable name="collNameLocal" select="/page/pageResponse/collection/@name"/>
    158159        <xsl:variable name="opt-title">                 
    159160            <xsl:choose>
     
    165166                <xsl:when test="@titlekey">
    166167                    <xslt:attribute name="title">
    167                         <xslt:value-of disable-output-escaping="yes" select="util:getCollectionText($collName, $site_name, /page/@lang, '{@titlekey}')"/>
     168                        <xslt:value-of disable-output-escaping="yes" select="util:getCollectionText($collNameLocal, $site_name, /page/@lang, '{@titlekey}')"/>
    168169                    </xslt:attribute>
    169170                </xsl:when>
  • main/trunk/greenstone3/web/interfaces/default/transform/gslib.xsl

    r28625 r30478  
    1919  <xsl:param name="library_name"/>
    2020  <xsl:param name="site_name"/>
     21  <xsl:param name="use_client_side_xslt"/>
    2122  <!-- every pages ....................................................................... -->
    2223
     
    159160 
    160161  <xsl:template name="noTextBar">
    161     <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
     162    <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text><!-- could also be expressed &#160; -->
    162163  </xsl:template>
    163164 
     
    167168 
    168169  <xsl:template name="rightArrow">
    169     <xsl:text disable-output-escaping="yes"> &amp;raquo; </xsl:text>
     170    <xsl:text disable-output-escaping="yes"> &amp;raquo; </xsl:text> <!-- could also be expressed &#187; -->
    170171  </xsl:template>
    171172 
     
    292293  <xsl:variable name="httpPath" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']"/>
    293294  <xsl:variable name="siteName" select="$site_name"/>
    294   <xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     295  <!--
     296      Already defined above as a variable, not sure why if way being defined here again as a 'param'
     297      <xsl:param name="collName" select="/page/pageRequest/paramList/param[@name='c']/@value"/>
     298      -->
    295299  <xsl:param name="pageType"/>
    296300  <xsl:variable name="this-element" select="/page/pageResponse/collection|/page/pageResponse/serviceCluster"/>
  • main/trunk/greenstone3/web/interfaces/default/transform/javascript-global-setup.xsl

    r28230 r30478  
    4646            <xsl:text disable-output-escaping="yes">gs.xsltParams.interface_name = "</xsl:text><xsl:value-of select="$interface_name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
    4747            <xsl:text disable-output-escaping="yes">gs.xsltParams.site_name = "</xsl:text><xsl:value-of select="$site_name"/><xsl:text disable-output-escaping="yes">";</xsl:text>
     48            <xsl:text disable-output-escaping="yes">gs.xsltParams.use_client_side_xslt = "</xsl:text><xsl:value-of select="$use_client_side_xslt"/><xsl:text disable-output-escaping="yes">";</xsl:text>
    4849        </script>
    4950    </xsl:template>
  • main/trunk/greenstone3/web/interfaces/default/transform/layouts/header.xsl

    r30428 r30478  
    122122
    123123    <xsl:template name="init-direct-edit">
     124             <!-- might be worth moving loading the JS file to earlier, to give time to load  -->
     125         <script type="text/javascript" src="interfaces/{$interface_name}/js/direct-edit.js"><xsl:text> </xsl:text></script>   
    124126        <script type="text/javascript">
    125             <xsl:text disable-output-escaping="yes">
     127          <xsl:text disable-output-escaping="yes">
     128            $(document).ready(function() {         
    126129                de.onready(function()
    127130                {
     
    135138                    }
    136139                });
     140             });                       
    137141            </xsl:text>
    138142        </script>
     
    508512                            <nobr>
    509513                                <xsl:apply-templates select="/page/pageResponse/collection[@name=$collNameChecked]/serviceList/service[@name='TextQuery']/paramList/param[@name='query']">
    510                                     <xsl:with-param name="default" select="java:org.greenstone.gsdl3.util.XSLTUtil.tidyWhitespace($qs, /page/@lang)"/>
     514<!--
     515    <xsl:with-param name="default" select="java:org.greenstone.gsdl3.util.XSLTUtil.tidyWhitespace($qs, /page/@lang)"/>
     516    -->
     517                                  <xsl:with-param name="default" select="normalize-space($qs)"/>
     518                                 
    511519                                </xsl:apply-templates>
    512520                            </nobr>
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/classifier.xsl

    r27876 r30478  
    272272    </xsl:template>
    273273
     274    <xsl:template match="/page/xsltparams">
     275      <!-- suppress xsltparam block in page -->
     276    </xsl:template>
    274277</xsl:stylesheet>
    275278
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/document.xsl

    r30382 r30478  
    117117    <!-- If editing, be aware that the Document Basket looks for specific classes that this template bakes in (key points marked with ***) -->
    118118    <xsl:template name="wrapDocumentNodes">
     119            <xsl:variable name="nodeID" select="@nodeID"/>
    119120        <a name="{@nodeID}"><xsl:text> </xsl:text></a>
    120121       
     
    128129                        <xsl:attribute name="src">
    129130                            <xsl:choose>
    130                                 <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent(@nodeID, /page/pageResponse/document/@selectedNode)">
     131                                <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent($nodeID, /page/pageResponse/document/@selectedNode)">
    131132                                    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/>
    132133                                </xsl:when>
     
    585586                    <xsl:choose>
    586587                        <xsl:when test="not(name())">
    587                             <xsl:value-of select="." disable-output-escaping="yes"/>
     588                          <xsl:value-of select="." disable-output-escaping="yes"/>
    588589                        </xsl:when>
    589590                        <xsl:when test="name() = 'annotation'">
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/home.xsl

    r30346 r30478  
    4343    </xsl:template>
    4444
    45 <xsl:template name="collectionLinks">
     45    <xsl:template name="collectionLinks">
    4646        <div id="collectionLinks">
    4747            <xsl:if test="count(collectionList/collection) = 0">
     
    5454            <br class="clear"/>
    5555        </div>
    56 </xsl:template>
     56    </xsl:template>
     57
     58    <xsl:template match="/page/xsltparams">
     59      <!-- suppress xsltparam block in page -->
     60    </xsl:template>
     61
    5762</xsl:stylesheet>
    5863
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/query.xsl

    r30311 r30478  
    236236                </xsl:when>
    237237                <xsl:when test="$numDocsMatched">
    238                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', concat($numDocsMatched, ';', $docLevelText))"/>
    239                     <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', concat($numDocsReturned, ';', $docLevelText))"/>)</xsl:if>
     238                        <xsl:variable name="gitArgs1" select="concat($numDocsMatched, ';', $docLevelText)"/>
     239                        <xsl:variable name="gitArgs2" select="concat($numDocsReturned, ';', $docLevelText)"/>
     240                   
     241                    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.manydocsmatch', $gitArgs1)"/>
     242                    <xsl:if test="$numDocsReturned and not($numDocsMatched=$numDocsReturned)"> (<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.docsreturned', $gitArgs2)"/>)</xsl:if>
    240243                </xsl:when>
    241244                <xsl:when test="$numDocsReturned">
    242                     <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', concat($numDocsReturned, ';', $docLevelText))"/>
     245                        <xsl:variable name="gitArgs" select="concat($numDocsReturned, ';', $docLevelText)"/>
     246                    <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.atleastdocsmatch', $gitArgs)"/>
    243247                </xsl:when>
    244248            </xsl:choose>
     
    311315            <!-- If there is only one or two search terms then show the expanded information -->
    312316            <xsl:choose>
    313                 <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
     317                          <xsl:when test="count(/page/pageResponse/termList/term) &lt; 3">
     318               
     319                        <xsl:variable name="qtOneToOne"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1.1')"/></xsl:variable>
     320                    <xsl:variable name="qtManyToOne"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1')"/></xsl:variable>
     321                    <xsl:variable name="qtManyToMany"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x')"/></xsl:variable>
     322
    314323                    <xsl:for-each select="/page/pageResponse/termList/term">
    315                         <xsl:variable name="occursTextKey">
     324
     325
     326                            <xsl:variable name="occursTextValue">
    316327                            <xsl:choose>
    317                                 <xsl:when test="@freq = 1">query.termoccurs.1.1</xsl:when>
    318                                 <xsl:when test="@numDocsMatch = 1">query.termoccurs.x.1</xsl:when>
    319                                 <xsl:otherwise>query.termoccurs.x.x</xsl:otherwise>
     328                                <xsl:when test="@freq = 1"><xsl:value-of select="$qtOneToOne"/></xsl:when>
     329                                <xsl:when test="@numDocsMatch = 1"><xsl:value-of select="$qtManyToOne"/></xsl:when>
     330                                <xsl:otherwise><xsl:value-of select="$qtManyToMany"/></xsl:otherwise>
    320331                            </xsl:choose>
    321332                        </xsl:variable>
     
    327338                        </xsl:variable>
    328339                        <span class="termInfo">
    329                           <!--<xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, $occursTextKey, concat(@name,';', @freq,';',  @numDocsMatch,';',  $levelText))"/>-->
    330340                          <!-- For solr collections, display:
    331341                                 term x occured y times
     
    334344                                 term x occurred y times in n sections/documents
    335345                                 term a occurred b times in m sections/docs
    336                             -->
    337                             <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, $occursTextKey, concat(@name,';', @freq))"/>
     346                          -->
     347                          <xsl:variable name="gitArg1" select="concat(@name,';', @freq)"/>
     348
     349                            <xsl:choose>
     350                              <xsl:when test="@freq = 1">
     351                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.1.1',$gitArg1)"/>
     352                              </xsl:when>
     353                              <xsl:when test="@numDocsMatch = 1">
     354                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.1',$gitArg1)"/>
     355                              </xsl:when>
     356                              <xsl:otherwise>
     357                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termoccurs.x.x',$gitArg1)"/>
     358                              </xsl:otherwise>
     359                            </xsl:choose>
     360                           
     361                            <!--
     362                                <xsl:value-of select="java:org.greenstone.gsdl3.util.XSLTUtil.getInterfaceTextSubstituteArgs($gitArgXXX,$gitArg1)"/>
     363-->
     364                             
     365<!--                         
     366    <xsl:value-of select="java:org.greenstone.gsdl3.util.XSLTUtil.getInterfaceTextSubstituteArgs($occursTextValue,$gitArg1)"/>
     367    -->
     368                             
     369                         
    338370                            <xsl:choose>
    339371                              <xsl:when test="/page/pageResponse/collection[@type != 'solr']">
    340                                 <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termSectionFreq', concat(@numDocsMatch,';',  $levelText))"/>
     372                                <xsl:variable name="gitArg2" select="concat(@numDocsMatch,';',  $levelText)"/>
     373                                <xsl:text> </xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.termSectionFreq', $gitArg2)"/>
    341374                              </xsl:when>
    342375                            </xsl:choose>
     
    466499                    </xsl:variable>
    467500                    <td id="searchResultsStatusBar">
    468                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString))"/>
     501                            <xsl:variable name="gitArgs" select="concat($startdoc,';', $enddoc, ';', $docMax, ';', $levelString)"/>
     502                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'query.displayingnumdocs', $gitArgs)"/>
    469503                    </td>
    470504                </xsl:if>
  • main/trunk/greenstone3/web/interfaces/default/transform/text_fragment_format.xsl

    r26386 r30478  
    1010    <xsl:param name="library_name"/>
    1111    <xsl:param name="site_name"/>
     12    <xsl:param name="use_client_side_xslt"/>
    1213    <xsl:param name="collName"/>
    1314    <xsl:param name="lang"/>
Note: See TracChangeset for help on using the changeset viewer.