Changeset 24996


Ignore:
Timestamp:
2012-01-26T14:09:30+13:00 (12 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

File:
1 edited

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
Note: See TracChangeset for help on using the changeset viewer.