Changeset 24996

Show
Ignore:
Timestamp:
26.01.2012 14:09:30 (7 years ago)
Author:
sjm84
Message:

Some improvements to the way paged-image collections can be navigated as well as adding in the functionality for the map features

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl

    r24791 r24996  
    8080                    <!-- Get the title from the title sectionTitle template --> 
    8181                    <xsl:choose> 
    82                         <xsl:when test="not(/page/pageRequest/paramList/param[@name = 'db']) or /page/pageRequest/paramList/param[@name = 'db']/@value = 'false'"> 
     82                        <xsl:when test="not(/page/pageRequest/paramList/param[@name = 'dmd']) or /page/pageRequest/paramList/param[@name = 'dmd']/@value = 'false'"> 
    8383                            <xsl:apply-templates select="." mode="sectionTitleFormat"/> 
    8484                        </xsl:when> 
     
    100100             
    101101            <div id="doc{@nodeID}" class="sectionContainer" style="display:block;"><!-- *** --> 
    102                 <xsl:if test="/page/pageRequest/paramList/param[@name = 'db']/@value = 'true'"> 
     102                <xsl:if test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'"> 
    103103                    <table id="meta{@nodeID}"> 
    104104                        <xsl:for-each select="metadataList/metadata"> 
    105105                            <tr> 
    106106                                <td class="metaTableCellName"><xsl:value-of select="@name"/></td> 
    107                                 <td class="metaTableCellValue editable"><xsl:value-of select="."/></td> 
     107                                <td class="metaTableCell editable"><xsl:value-of select="."/></td> 
    108108                            </tr> 
    109109                        </xsl:for-each> 
     
    123123    <!-- the page content --> 
    124124    <xsl:template match="/page/pageResponse/document"> 
    125         <xsl:if test="/page/pageRequest/paramList/param[@name = 'db']/@value = 'true'"> 
     125        <xsl:if test="/page/pageRequest/paramList/param[@name = 'dmd']/@value = 'true'"> 
    126126            <gsf:metadata name="all"/> 
    127127        </xsl:if> 
     
    168168 
    169169                            <!-- the contents (if enabled) --> 
    170                             <div id="tableOfContents"> 
    171                                 <xsl:attribute name="class"> 
    172                                     <xsl:choose> 
    173                                         <xsl:when test="count(//documentNode) > 1 and not(/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']) or /page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">visible</xsl:when> 
    174                                         <xsl:otherwise>hidden</xsl:otherwise> 
    175                                     </xsl:choose> 
    176                                 </xsl:attribute> 
    177                                 <xsl:apply-templates select="documentNode" mode="TOC"/> 
    178                             </div> 
     170                            <xsl:choose> 
     171                                <xsl:when test="/page/pageResponse/document/@docType = 'paged' and not(/page/pageRequest/paramList/param[@name = 'ed']/@value = '1')"> 
     172                                    <!-- Table of contents will be dynamically retrieved when viewing a paged document --> 
     173                                    <script type="text/javascript"> 
     174                                        <xsl:text disable-output-escaping="yes"> 
     175                                            retrieveTableOfContents(); 
     176                                        </xsl:text> 
     177                                    </script> 
     178                                </xsl:when> 
     179                                <xsl:otherwise> 
     180                                    <div id="tableOfContents"> 
     181                                        <xsl:attribute name="class"> 
     182                                            <xsl:choose> 
     183                                                <xsl:when test="count(//documentNode) > 1 and not(/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']) or /page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'">visible</xsl:when> 
     184                                                <xsl:otherwise>hidden</xsl:otherwise> 
     185                                            </xsl:choose> 
     186                                        </xsl:attribute> 
     187                                        <xsl:apply-templates select="documentNode" mode="TOC"/> 
     188                                        <xsl:if test="@docType = 'paged'"> 
     189                                            <table style="width:100%;"><tbody><tr> 
     190                                                <td style="width:10%; text-align:left;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}"><img src="interfaces/{$interface_name}/images/previous.png"/></a></td> 
     191                                                <td style="width:20%; text-align:left;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}">Previous</a></td> 
     192                                                <td style="width:40%; text-align:center;"><xsl:text>Go to page</xsl:text><input type="text" size="3"/></td> 
     193                                                <td style="width:20%; text-align:right;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}">Next</a></td> 
     194                                                <td style="width:10%; text-align:right;"><a href="?a=d&amp;ed=1&amp;book=off&amp;dt=paged&amp;c={/page/pageResponse/collection/@name}&amp;d={/page/pageResponse/document/documentNode/@nodeID}"><img src="interfaces/{$interface_name}/images/next.png"/></a></td> 
     195                                            </tr></tbody></table> 
     196                                        </xsl:if> 
     197                                    </div> 
     198                                </xsl:otherwise> 
     199                            </xsl:choose> 
    179200                        </div> 
    180201                    </td></tr> 
     
    206227            </xsl:when> 
    207228            <xsl:otherwise> 
    208                 <table><tbody><tr><td> 
    209                     <div id="gs-document-image" class="sectionImage"> 
     229                <div id="gs-document"> 
     230                    <div id="gs-document-image"> 
     231                        <xsl:attribute name="class"> 
     232                            <xsl:text>sectionImage</xsl:text> 
     233                            <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"><xsl:text> hidden</xsl:text></xsl:if> 
     234                        </xsl:attribute> 
    210235                        <!-- Get the section content from the document template --> 
    211236                        <xsl:call-template name="documentImage"/> 
     237                        <xsl:text> </xsl:text> 
    212238                    </div> 
    213                 </td> 
    214                 <td> 
    215                     <div id="gs-document-text" class="documenttext" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 
     239                    <div id="gs-document-text" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 
     240                        <xsl:attribute name="class"> 
     241                            <xsl:text>documenttext</xsl:text> 
     242                            <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"><xsl:text> hidden</xsl:text></xsl:if> 
     243                        </xsl:attribute> 
    216244                        <xsl:call-template name="wrapDocumentNodes"/> 
    217245                    </div> 
    218                 </td></tr></tbody></table> 
    219  
     246                </div> 
    220247            </xsl:otherwise> 
    221248        </xsl:choose> 
     
    258285    <!-- The default template for displaying the document content --> 
    259286    <xsl:template match="documentNode" mode="document"> 
     287        <xsl:call-template name="documentNodePre"/> 
    260288        <!-- Section text --> 
    261289        <xsl:for-each select="nodeContent"> 
     
    284312                </gsf:choose-metadata> 
    285313            </h3> 
    286             <gsf:metadata name="screenicon"/> 
     314            <gsf:image type="screen"/> 
    287315        </xsl:if> 
    288316    </xsl:template> 
     
    342370                <td>                 
    343371                    <a> 
    344                         <xsl:attribute name="href">#<xsl:value-of select="@nodeID"/></xsl:attribute> 
     372                        <xsl:choose> 
     373                            <xsl:when test="/page/pageResponse/document/@docType = 'paged'"> 
     374                                <xsl:attribute name="href"><xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="/page/pageResponse/collection/@name"/>&amp;d=<xsl:value-of select="@nodeID"/>&amp;dt=<xsl:value-of select="@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/></xsl:attribute> 
     375                            </xsl:when> 
     376                            <xsl:otherwise> 
     377                                <xsl:attribute name="href">#<xsl:value-of select="@nodeID"/></xsl:attribute> 
     378                            </xsl:otherwise> 
     379                        </xsl:choose> 
    345380                        <xsl:if test="util:hashToSectionId(@nodeID)"> 
    346381                            <xsl:value-of select="util:hashToSectionId(@nodeID)"/> 
     
    403438     
    404439    <xsl:template name="viewOptions"> 
    405         <table class="viewOptions"><tr> 
     440        <table class="viewOptions ui-state-default ui-corner-all"><tr> 
     441         
     442            <!-- Paged-image options --> 
     443            <xsl:if test="/page/pageResponse/document/@docType = 'paged'"> 
     444                <td> 
     445                    <select id="viewSelection" onchange="changeView();"> 
     446                        <xsl:choose> 
     447                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 
     448                                <option>Default view</option> 
     449                                <option selected="true">Image view</option> 
     450                                <option>Text view</option> 
     451                            </xsl:when> 
     452                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 
     453                                <option>Default view</option> 
     454                                <option>Image view</option> 
     455                                <option selected="true">Text view</option> 
     456                            </xsl:when> 
     457                            <xsl:otherwise test="not(/page/pageRequest/paramList/param[@name = 'view']/@value)"> 
     458                                <option selected="true">Default view</option> 
     459                                <option>Image view</option> 
     460                                <option>Text view</option> 
     461                            </xsl:otherwise> 
     462                        </xsl:choose> 
     463                    </select> 
     464                </td> 
     465            </xsl:if> 
     466         
    406467            <!-- Realistic books link --> 
    407468            <xsl:if test="/page/pageResponse/collection[@name = $collName]/metadataList/metadata[@name = 'tidyoption'] = 'tidy'"> 
     
    437498                </td> 
    438499            </xsl:if> 
    439             <td class="tableOfContentsTitle">Table of Contents</td> 
    440             <td style="vertical-align:top;"> 
     500            <td style="vertical-align:top; text-align:right;"> 
     501                <xsl:if test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='TOC']) or /page/pageResponse/format[@type='display']/gsf:option[@name='TOC']/@value='true'"> 
     502                    <span class="tableOfContentsTitle">Table of Contents</span> 
     503                </xsl:if> 
    441504                <a id="sidebarMinimizeButton" href="javascript:minimizeSidebar();" style="float: right; font-size:0.6em;"> 
    442                     <img class="icon"> 
     505                    <img class="icon" style="padding-top:3px;"> 
    443506                        <xsl:attribute name="src"> 
    444507                            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/> 
     
    447510                </a> 
    448511                <a id="sidebarMaximizeButton" href="javascript:maximizeSidebar();" style="float: right; font-size:0.6em; display:none;"> 
    449                     <img class="icon"> 
     512                    <img class="icon" style="padding-top:3px;"> 
    450513                        <xsl:attribute name="src"> 
    451514                            <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/> 
     
    456519        </tr></table>    
    457520    </xsl:template> 
     521     
     522    <xsl:template name="documentNodePre"> 
     523        <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
     524            <xsl:call-template name="mapFeatures"/> 
     525        </xsl:if> 
     526    </xsl:template> 
     527     
     528    <xsl:template name="mapFeatures"> 
     529        <div id="map_canvas" style="margin:0px auto; width:900px; height:500px;"><xsl:text> </xsl:text></div> 
     530 
     531        <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']"> 
     532            <div style="background:#BBFFBB; padding: 5px; margin:0px auto; width:890px;"> 
     533                <xsl:text>Show documents near here </xsl:text> 
     534                <img id="nearbyDocumentsToggle" src="interfaces/oran/images/expand.png"> 
     535                    <xsl:attribute name="onclick"> 
     536                        <xsl:text>performDistanceSearch('</xsl:text> 
     537                        <xsl:value-of select="@nodeID"/> 
     538                        <xsl:text>', '</xsl:text> 
     539                        <gsf:metadata name="Latitude"/> 
     540                        <xsl:text>', '</xsl:text> 
     541                        <gsf:metadata name="Longitude"/> 
     542                        <xsl:text>', 2);</xsl:text> 
     543                    </xsl:attribute> 
     544                </img> 
     545                <div id="nearbyDocuments"><xsl:text> </xsl:text></div> 
     546            </div> 
     547        </xsl:if> 
     548         
     549        <div id="jsonNodes" style="display:none;"> 
     550            <xsl:text>[</xsl:text> 
     551            <xsl:for-each select="//documentNode"> 
     552                <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']"> 
     553                    <xsl:text>{</xsl:text> 
     554                    <xsl:text disable-output-escaping="yes">"nodeID":"</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">",</xsl:text> 
     555                    <xsl:text disable-output-escaping="yes">"title":"</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Title']"/><xsl:text disable-output-escaping="yes">",</xsl:text> 
     556                    <xsl:text disable-output-escaping="yes">"lat":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Latitude']"/><xsl:text>,</xsl:text> 
     557                    <xsl:text disable-output-escaping="yes">"lng":</xsl:text><xsl:value-of disable-output-escaping="yes" select="metadataList/metadata[@name = 'Longitude']"/> 
     558                    <xsl:text>}</xsl:text> 
     559                    <xsl:if test="not(position() = count(//documentNode))"> 
     560                        <xsl:text>,</xsl:text> 
     561                    </xsl:if> 
     562                </xsl:if> 
     563            </xsl:for-each> 
     564            <xsl:text>]</xsl:text> 
     565        </div> 
     566    </xsl:template> 
    458567</xsl:stylesheet> 
    459568