Changeset 25371

Show
Ignore:
Timestamp:
12.04.2012 15:24:51 (8 years ago)
Author:
sjm84
Message:

Some major upgrades to the document view

Files:
1 modified

Legend:

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

    r25291 r25371  
    3333        <a> 
    3434            <xsl:attribute name="href"> 
    35                 <xsl:value-of select="$library_name"/>?a=d&amp;c=<xsl:value-of select="$collName"/>&amp;d=<xsl:value-of select="/page/pageResponse/document/documentNode[1]/@nodeID"/>&amp;dt=<xsl:value-of select="/page/pageResponse/document/documentNode/@docType"/>&amp;p.a=b&amp;p.s=<xsl:value-of select="/page/pageResponse/service/@name"/> 
     35                <xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="$collName"/>/document/<xsl:value-of select="/page/pageResponse/document/documentNode[1]/@nodeID"/> 
    3636            </xsl:attribute> 
    3737            <xsl:variable name="documentTitleVar"> 
     
    6868             
    6969                <!-- Expand/collapse button --> 
    70                 <td class="headerTD"> 
    71                     <img id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">           
    72                         <xsl:attribute name="src"> 
    73                             <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/> 
    74                         </xsl:attribute> 
    75                     </img> 
    76                 </td> 
     70                <xsl:if test="not(/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='sectionExpandCollapse']/@value) or /page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='sectionExpandCollapse']/@value = 'true'"> 
     71                    <td class="headerTD"> 
     72                        <img id="dtoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon">           
     73                            <xsl:attribute name="src"> 
     74                                <xsl:choose> 
     75                                    <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent(@nodeID, /page/pageResponse/document/@selectedNode)"> 
     76                                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/> 
     77                                    </xsl:when> 
     78                                    <xsl:otherwise> 
     79                                        <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/> 
     80                                    </xsl:otherwise> 
     81                                </xsl:choose> 
     82                            </xsl:attribute> 
     83                        </img> 
     84                    </td> 
     85                </xsl:if> 
    7786                 
    7887                <!-- Title --> 
     
    92101                <xsl:if test="util:hashToDepthClass(@nodeID) != 'sectionHeaderDepthTitle'"> 
    93102                    <td class="backToTop headerTD"> 
    94                         <a href="#top"> 
     103                        <a href="javascript:scrollToTop();"> 
    95104                            <xsl:text disable-output-escaping="yes">&#9650;</xsl:text><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.back_to_top')"/> 
    96105                        </a> 
     
    99108            </tr></table> 
    100109             
    101             <div id="doc{@nodeID}" class="sectionContainer"><!-- *** --> 
     110            <div id="doc{@nodeID}"><!-- *** --> 
     111                <xsl:choose> 
     112                    <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or /page/pageResponse/document/@selectedNode = @nodeID"> 
     113                        <xsl:attribute name="class"> 
     114                            <xsl:text>sectionContainer hasText</xsl:text> 
     115                        </xsl:attribute> 
     116                        <xsl:attribute name="style"> 
     117                            <xsl:text>display:block;</xsl:text> 
     118                        </xsl:attribute> 
     119                    </xsl:when> 
     120                    <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or util:oidIsMatchOrParent(@nodeID, /page/pageResponse/document/@selectedNode)"> 
     121                        <xsl:attribute name="class"> 
     122                            <xsl:text>sectionContainer noText</xsl:text> 
     123                        </xsl:attribute> 
     124                        <xsl:attribute name="style"> 
     125                            <xsl:text>display:block;</xsl:text> 
     126                        </xsl:attribute> 
     127                    </xsl:when> 
     128                    <xsl:otherwise> 
     129                        <xsl:attribute name="class"> 
     130                            <xsl:text>sectionContainer noText</xsl:text> 
     131                        </xsl:attribute> 
     132                        <xsl:attribute name="style"> 
     133                            <xsl:text>display:none;</xsl:text> 
     134                        </xsl:attribute> 
     135                    </xsl:otherwise> 
     136                </xsl:choose> 
     137             
    102138                <xsl:if test="/page/pageRequest/userInformation and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 
    103139                    <table id="meta{@nodeID}"> 
     
    233269             
    234270            <xsl:if test="/page/pageRequest/userInformation and (util:contains(/page/pageRequest/userInformation/@groups, 'administrator') or util:contains(/page/pageRequest/userInformation/@groups, 'all-collections-editor') or util:contains(/page/pageRequest/userInformation/@groups, $thisCollectionEditor))"> 
    235                 <table style="width:100%"><tr> 
    236                     <td id="editBarLeft" style="width:70%"><xsl:text> </xsl:text></td> 
    237                     <td id="editBarRight"> 
    238                         <div style="text-align:center;"> 
    239                             <div style="margin:5px;" class="ui-state-default ui-corner-all"> 
    240                                 <a style="padding: 3px; text-decoration:none;" href="{$library_name}?a=g&amp;sa=documentbasket&amp;c=&amp;s=DisplayDocumentList&amp;rt=r&amp;p.c={/page/pageResponse/collection/@name}&amp;docToEdit={/page/pageResponse/document/documentNode/@nodeID}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_structure')"/></a> 
    241                             </div> 
    242                             <div style="margin:5px;" class="ui-state-default ui-corner-all"> 
    243                                 <a id="editContentButton" style="padding: 3px; text-decoration:none;" href="javascript:readyPageForEditing();"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_content')"/></a> 
    244                             </div> 
    245                         </div> 
    246                     </td> 
    247                 </tr></table> 
    248                 <xsl:call-template name="document-editor-language-fragments"/> 
     271                <xsl:call-template name="editBar"/> 
    249272            </xsl:if> 
    250273 
    251274            <xsl:if test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='sideBar']) or /page/pageResponse/format[@type='display']/gsf:option[@name='sideBar']/@value='true'"> 
    252                 <table id="rightSidebar"> 
    253                     <tr><td> 
    254                         <xsl:call-template name="viewOptions"/> 
    255                     </td></tr> 
    256                     <tr><td> 
    257                         <div id="contentsArea">  
    258                             <!-- show the berry basket if it's turned on --> 
    259                             <gslib:berryBasket/> 
    260  
    261                             <!-- the book's cover image --> 
    262                             <div id="coverImage"> 
    263                                 <xsl:attribute name="class"> 
    264                                     <xsl:choose> 
    265                                         <xsl:when test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']) or /page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']/@value='true'">visible</xsl:when> 
    266                                         <xsl:otherwise>hidden</xsl:otherwise>     
    267                                     </xsl:choose> 
    268                                 </xsl:attribute> 
    269                                 <gslib:coverImage/><xsl:text> </xsl:text> 
    270                             </div> 
    271  
    272                             <!-- the contents (if enabled) --> 
    273                             <xsl:choose> 
    274                                 <xsl:when test="/page/pageResponse/document/@docType = 'paged' and not(/page/pageRequest/paramList/param[@name = 'ed']/@value = '1')"> 
    275                                     <!-- Table of contents will be dynamically retrieved when viewing a paged document --> 
    276                                     <script type="text/javascript"> 
    277                                         <xsl:text disable-output-escaping="yes"> 
    278                                             $(window).load(function() 
    279                                             { 
    280                                                 retrieveTableOfContentsAndTitles(); 
    281                                             }); 
    282                                         </xsl:text> 
    283                                     </script> 
    284                                     <div id="tocLoadingImage" style="text-align:center;"> 
    285                                         <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text> 
    286                                     </div> 
    287                                 </xsl:when> 
    288                                 <xsl:otherwise> 
    289                                     <div id="tableOfContents"> 
    290                                         <xsl:attribute name="class"> 
    291                                             <xsl:choose> 
    292                                                 <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> 
    293                                                 <xsl:otherwise>hidden</xsl:otherwise> 
    294                                             </xsl:choose> 
    295                                         </xsl:attribute> 
    296                                         <xsl:apply-templates select="documentNode" mode="TOC"/> 
    297                                         <xsl:if test="@docType = 'paged'"> 
    298                                             <table style="width:100%;"><tbody><tr> 
    299                                                 <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.filter_pages')"/><xsl:text>: </xsl:text><input id="filterText" type="text" size="27"/></td> 
    300                                             </tr></tbody></table> 
    301                                         </xsl:if> 
    302                                     </div> 
    303                                 </xsl:otherwise> 
    304                             </xsl:choose> 
    305                         </div> 
    306                     </td></tr> 
    307                 </table> 
     275                <xsl:call-template name="rightSidebar"/> 
    308276            </xsl:if> 
    309277        </xsl:if> 
     
    332300            </xsl:when> 
    333301            <xsl:otherwise> 
    334                 <div id="gs-document"> 
    335                     <div id="gs-document-text" class="documenttext" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 
    336                         <xsl:call-template name="wrapDocumentNodes"/> 
     302                <xsl:choose> 
     303                    <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or not(util:contains(/page/pageResponse/document/@selectedNode, '.'))"> 
     304                        <div id="gs-document"> 
     305                            <xsl:call-template name="documentPre"/> 
     306                            <div id="gs-document-text" class="documenttext" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 
     307                                <xsl:call-template name="wrapDocumentNodes"/> 
     308                            </div> 
     309                        </div> 
     310                    </xsl:when> 
     311                    <xsl:otherwise> 
     312                        <div id="gs-document">                           
     313                            <div id="tocLoadingImage" style="text-align:center;"> 
     314                                <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text> 
     315                            </div> 
     316                        </div> 
     317                        <script type="text/javascript"> 
     318                            <xsl:text disable-output-escaping="yes"> 
     319                                $(window).load(function() 
     320                                { 
     321                                    loadTopLevelPage(function() 
     322                                    { 
     323                                        focusSection("</xsl:text><xsl:value-of select="/page/pageResponse/document/@selectedNode"/><xsl:text disable-output-escaping="yes">"); 
     324                                    }); 
     325                                    console.log("HASH IS " + gs.functions.hashString("" + (new Date()).getTime()) + " ON " + (new Date()).getTime()); 
     326                                }); 
     327                            </xsl:text> 
     328                        </script> 
     329                    </xsl:otherwise> 
     330                </xsl:choose> 
     331            </xsl:otherwise> 
     332        </xsl:choose> 
     333         
     334        <div class="clear"><xsl:text> </xsl:text></div> 
     335    </xsl:template> 
     336     
     337    <xsl:template name="editBar"> 
     338        <table style="width:100%"><tr> 
     339            <td id="editBarLeft" style="width:70%"><xsl:text> </xsl:text></td> 
     340            <td id="editBarRight"> 
     341                <div style="text-align:center;"> 
     342                    <div style="margin:5px;" class="ui-state-default ui-corner-all"> 
     343                        <a style="padding: 3px; text-decoration:none;" href="{$library_name}?a=g&amp;sa=documentbasket&amp;c=&amp;s=DisplayDocumentList&amp;rt=r&amp;p.c={/page/pageResponse/collection/@name}&amp;docToEdit={/page/pageResponse/document/documentNode/@nodeID}"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_structure')"/></a> 
     344                    </div> 
     345                    <div style="margin:5px;" class="ui-state-default ui-corner-all"> 
     346                        <a id="editContentButton" style="padding: 3px; text-decoration:none;" href="javascript:readyPageForEditing();"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.edit_content')"/></a> 
    337347                    </div> 
    338348                </div> 
    339             </xsl:otherwise> 
    340         </xsl:choose> 
    341          
    342         <div class="clear"><xsl:text> </xsl:text></div> 
     349            </td> 
     350        </tr></table> 
     351        <xsl:call-template name="document-editor-language-fragments"/> 
     352    </xsl:template> 
     353     
     354    <xsl:template name="rightSidebar"> 
     355        <table id="rightSidebar"> 
     356            <tr><td> 
     357                <xsl:call-template name="viewOptions"/> 
     358            </td></tr> 
     359            <tr><td> 
     360                <div id="contentsArea">  
     361                    <!-- show the berry basket if it's turned on --> 
     362                    <gslib:berryBasket/> 
     363 
     364                    <!-- the book's cover image --> 
     365                    <div id="coverImage"> 
     366                        <xsl:attribute name="class"> 
     367                            <xsl:choose> 
     368                                <xsl:when test="not(/page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']) or /page/pageResponse/format[@type='display']/gsf:option[@name='coverImage']/@value='true'">visible</xsl:when> 
     369                                <xsl:otherwise>hidden</xsl:otherwise>     
     370                            </xsl:choose> 
     371                        </xsl:attribute> 
     372                        <gslib:coverImage/><xsl:text> </xsl:text> 
     373                    </div> 
     374 
     375                    <!-- the contents (if enabled) --> 
     376                    <xsl:choose> 
     377                        <xsl:when test="/page/pageResponse/document/@docType = 'paged'"> 
     378                            <!-- Table of contents will be dynamically retrieved when viewing a paged document --> 
     379                            <script type="text/javascript"> 
     380                                <xsl:text disable-output-escaping="yes"> 
     381                                    $(window).load(function() 
     382                                    { 
     383                                        retrieveTableOfContentsAndTitles(); 
     384                                    }); 
     385                                </xsl:text> 
     386                            </script> 
     387                            <div id="tocLoadingImage" style="text-align:center;"> 
     388                                <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text> 
     389                            </div> 
     390                        </xsl:when> 
     391                        <xsl:when test="not(/page/pageRequest/paramList/param[@name = 'ed']/@value = '1')"> 
     392                            <div id="tableOfContents"> 
     393                                <div id="tocLoadingImage" style="text-align:center;"> 
     394                                    <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.loading')"/><xsl:text>...</xsl:text> 
     395                                </div> 
     396                            </div> 
     397                            <script type="text/javascript"> 
     398                                <xsl:text disable-output-escaping="yes"> 
     399                                    $(window).load(function() 
     400                                    { 
     401                                        retrieveFullTableOfContents(); 
     402                                    }); 
     403                                </xsl:text> 
     404                            </script> 
     405                        </xsl:when> 
     406                        <xsl:otherwise> 
     407                            <div id="tableOfContents"> 
     408                                <xsl:attribute name="class"> 
     409                                    <xsl:choose> 
     410                                        <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> 
     411                                        <xsl:otherwise>hidden</xsl:otherwise> 
     412                                    </xsl:choose> 
     413                                </xsl:attribute> 
     414                                <xsl:apply-templates select="documentNode" mode="TOC"/> 
     415                                <xsl:if test="@docType = 'paged'"> 
     416                                    <table style="width:100%;"><tbody><tr> 
     417                                        <td><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.filter_pages')"/><xsl:text>: </xsl:text><input id="filterText" type="text" size="27"/></td> 
     418                                    </tr></tbody></table> 
     419                                </xsl:if> 
     420                            </div> 
     421                        </xsl:otherwise> 
     422                    </xsl:choose> 
     423                </div> 
     424            </td></tr> 
     425        </table> 
    343426    </xsl:template> 
    344427     
     
    377460    <!-- The default template for displaying the document content --> 
    378461    <xsl:template match="documentNode" mode="document"> 
    379         <xsl:call-template name="documentNodePre"/> 
    380462        <!-- Section text --> 
    381463        <xsl:for-each select="nodeContent"> 
     
    413495                                <img id="ttoggle{@nodeID}" onclick="toggleSection('{@nodeID}');" class="icon"> 
    414496                                    <xsl:attribute name="src"> 
    415                                         <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/> 
     497                                        <xsl:choose> 
     498                                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or /page/pageResponse/document/@selectedNode = @nodeID"> 
     499                                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'collapse_image')"/> 
     500                                            </xsl:when> 
     501                                            <xsl:otherwise> 
     502                                                <xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'expand_image')"/> 
     503                                            </xsl:otherwise> 
     504                                        </xsl:choose> 
    416505                                    </xsl:attribute> 
    417506                                </img> 
     
    446535                <!-- The section name, links to the section in the document --> 
    447536                <td>                 
    448                     <a> 
     537                    <a id="toclink{@nodeID}"> 
    449538                        <xsl:choose> 
    450539                            <xsl:when test="/page/pageResponse/document/@docType = 'paged'"> 
     
    452541                            </xsl:when> 
    453542                            <xsl:otherwise> 
    454                                 <xsl:attribute name="href">#<xsl:value-of select="@nodeID"/></xsl:attribute> 
     543                                <xsl:attribute name="href">javascript:focusSection('<xsl:value-of select="@nodeID"/>');</xsl:attribute> 
    455544                            </xsl:otherwise> 
    456545                        </xsl:choose> 
     
    466555            <!-- display any child items -->         
    467556            <xsl:if test="documentNode"> 
    468                 <li id="toc{@nodeID}" style="display:block;"> 
     557                <li id="toc{@nodeID}"> 
     558                    <xsl:attribute name="style"> 
     559                        <xsl:choose> 
     560                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or /page/pageResponse/document/@selectedNode = @nodeID"> 
     561                                <xsl:text>display:block;</xsl:text> 
     562                            </xsl:when> 
     563                            <xsl:otherwise> 
     564                                <xsl:text>display:none;</xsl:text> 
     565                            </xsl:otherwise> 
     566                        </xsl:choose> 
     567                    </xsl:attribute> 
    469568                    <xsl:apply-templates select="documentNode" mode="TOC"/> 
    470569                </li> 
     
    553652             
    554653            <!-- Highlight on/off button --> 
    555             <xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q' and count(//annotation) > 0"> 
     654            <xsl:if test="/page/pageRequest/paramList/param[@name = 'p.a']/@value = 'q' or /page/pageRequest/paramList/param[@name = 's1.query']"> 
    556655                <td> 
    557656                    <img> 
     
    611710                <td style="width:60%;"> 
    612711                    <div> 
    613                         <div style="float:left; width:30%;"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.zoom')"/><xsl:text>:</xsl:text></div> 
     712                        <div style="float:left; width:30%;"><xsl:value-of select="util:getInterfaceText($interface_name, /page/@lang, 'doc.zoom_size')"/><xsl:text>:</xsl:text></div> 
    614713                        <div id="zoomSlider" style="float:right; width:65%; height:5px; margin-top:6px;"><xsl:text> </xsl:text></div> 
    615714                        <script type="text/javascript"> 
     
    644743    </xsl:template> 
    645744     
    646     <xsl:template name="documentNodePre"> 
     745    <xsl:template name="documentPre"> 
    647746        <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> 
    648747            <xsl:call-template name="mapFeatures"/> 
     
    651750     
    652751    <xsl:template name="mapFeatures"> 
    653         <div id="map_canvas" style="margin:0px auto; width:900px; height:500px;"><xsl:text> </xsl:text></div> 
     752        <div id="map_canvas"><xsl:text> </xsl:text></div> 
    654753 
    655754        <xsl:if test="metadataList/metadata[@name = 'Latitude'] and metadataList/metadata[@name = 'Longitude']">