Changeset 25936

Show
Ignore:
Timestamp:
12.07.2012 12:42:07 (8 years ago)
Author:
sjm84
Message:

Some fixes to the paged image view

Location:
main/trunk/greenstone3/web/interfaces/default
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/default/interfaceConfig.xml

    r25844 r25936  
    3232    </action> 
    3333  </actionList> 
    34   <optionList> 
    35     <option name="cssTheme" value="interfaces/default/style/themes/main/jquery-ui-1.8.16.custom.css"/> 
    36     <option name="highlightQueryTerms" value="true"/> 
    37     <option name="berryBaskets" value="true"/> 
    38     <option name="documentBasket" value="true"/> 
    39   </optionList> 
    4034  <languageList> 
    4135    <language name="en"> 
     
    193187    </language> 
    194188  </languageList> 
     189  <optionList> 
     190    <option name="cssTheme" value="interfaces/default/style/themes/main/jquery-ui-1.8.16.custom.css"/> 
     191    <option name="highlightQueryTerms" value="true"/> 
     192    <option name="berryBaskets" value="true"/> 
     193    <option name="documentBasket" value="true"/> 
     194  </optionList> 
    195195</interfaceConfig> 
  • main/trunk/greenstone3/web/interfaces/default/js/document_scripts.js

    r25921 r25936  
    9292 
    9393    var ajax = gs.functions.ajaxRequest(); 
    94     ajax.open("GET", gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?ilt=" + template.replace(" ", "%20"), true); 
     94    var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?ilt=" + template.replace(" ", "%20"); 
     95 
     96    if(gs.documentMetadata.docType == "paged") 
     97    { 
     98        url += "&dt=hierarchy"; 
     99    } 
     100    ajax.open("GET", url, true); 
    95101    ajax.onreadystatechange = function() 
    96102    { 
     
    155161                    if(text.search("wrap" + nodeID) != -1) 
    156162                    { 
    157                         document.getElementById("zoomOptions").style.display = "table-row"; 
     163                        document.getElementById("zoomOptions").style.display = null; 
     164                        document.getElementById("pagedImageOptions").style.display = null; 
    158165                    } 
    159166                    getSubSectionsForSection(sectionID, function(sections) 
     
    338345} 
    339346 
    340 function loadTopLevelPage(callbackFunction) 
     347function loadTopLevelPage(callbackFunction, customURL) 
    341348{ 
    342349    var ajax = gs.functions.ajaxRequest(); 
    343350     
    344     var url = gs.xsltParams.library_name + "?a=d&dt=hierarchy&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 
     351    var url = gs.xsltParams.library_name + "?a=d&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 
    345352    if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 
    346353    { 
     
    351358        url += "&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 
    352359    } 
    353      
    354     ajax.open("GET", url, true); 
     360 
     361    if(customURL != null) 
     362    { 
     363        ajax.open("GET", customURL, true); 
     364    } 
     365    else 
     366    { 
     367        ajax.open("GET", url, true); 
     368    } 
    355369    ajax.onreadystatechange = function() 
    356370    { 
     
    365379                var docEnd = response.lastIndexOf("<"); 
    366380                var doc = response.substring(docStart, docEnd); 
     381 
    367382                targetElem.innerHTML = doc; 
    368383                 
  • main/trunk/greenstone3/web/interfaces/default/style/core.css

    r25935 r25936  
    203203#viewOptions li { 
    204204    list-style:none; 
    205     display: inline; 
    206205    padding: 5px; 
    207206} 
     
    210209    margin: 0px; 
    211210    padding: 0px; 
     211    width: 100%; 
    212212} 
    213213 
  • main/trunk/greenstone3/web/interfaces/default/transform/javascript-global-setup.xsl

    r25704 r25936  
    9292                addMetadataToList(name, value, gs.documentMetadata, lang); 
    9393            </xsl:for-each> 
     94             
     95            <xsl:text disable-output-escaping="yes">addMetadataToList("docType", "</xsl:text><xsl:value-of select="/page/pageResponse/document/@docType"/><xsl:text disable-output-escaping="yes">", gs.documentMetadata, "</xsl:text><xsl:value-of select="@lang"/><xsl:text disable-output-escaping="yes">");</xsl:text> 
    9496        </script> 
    9597    </xsl:template> 
  • main/trunk/greenstone3/web/interfaces/default/transform/layouts/toc.xsl

    r25932 r25936  
    177177                <!-- The section name, links to the section in the document --> 
    178178                <td>                 
    179                     <a id="toclink{@nodeID}"> 
    180                         <xsl:choose> 
    181                             <xsl:when test="/page/pageResponse/document/@docType = 'paged'"> 
    182                                 <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> 
    183                             </xsl:when> 
    184                             <xsl:otherwise> 
    185                                 <xsl:attribute name="href">javascript:focusSection('<xsl:value-of select="@nodeID"/>');</xsl:attribute> 
    186                             </xsl:otherwise> 
    187                         </xsl:choose> 
     179                    <a id="toclink{@nodeID}" href="javascript:focusSection('{@nodeID}');"> 
    188180                        <xsl:if test="util:hashToSectionId(@nodeID)"> 
    189181                            <xsl:value-of select="util:hashToSectionId(@nodeID)"/> 
    190182                            <xsl:text> </xsl:text> 
    191183                        </xsl:if> 
    192                         <xsl:call-template name="sectionTitle"/> 
     184                        <xsl:call-template name="sectionHeader"/> 
    193185                    </a> 
    194186                </td> 
     
    221213            <ul id="viewOptions"> 
    222214                <!-- Paged-image options --> 
    223                 <xsl:if test="count(//documentNode/metadataList/metadata[@name = 'Screen']) > 0 or /page/pageResponse/document/documentNode/@docType = 'paged'"> 
    224                     <li> 
    225                         <select id="viewSelection" onchange="changeView();"> 
    226                             <xsl:choose> 
    227                                 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 
    228                                     <option>Default view</option> 
    229                                     <option selected="true">Image view</option> 
    230                                     <option>Text view</option> 
    231                                 </xsl:when> 
    232                                 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 
    233                                     <option>Default view</option> 
    234                                     <option>Image view</option> 
    235                                     <option selected="true">Text view</option> 
    236                                 </xsl:when> 
    237                                 <xsl:otherwise> 
    238                                     <option selected="true">Default view</option> 
    239                                     <option>Image view</option> 
    240                                     <option>Text view</option> 
    241                                 </xsl:otherwise> 
    242                             </xsl:choose> 
    243                         </select> 
    244                     </li> 
    245                 </xsl:if> 
     215                <li id="pagedImageOptions"> 
     216                    <xsl:attribute name="style"> 
     217                        <xsl:choose> 
     218                            <xsl:when test="count(//documentNode/metadataList/metadata[@name = 'Screen']) > 0 or /page/pageResponse/document/documentNode/@docType = 'paged'"> 
     219                            </xsl:when> 
     220                            <xsl:otherwise> 
     221                                display:none; 
     222                            </xsl:otherwise> 
     223                        </xsl:choose> 
     224                    </xsl:attribute> 
     225                    <select id="viewSelection" onchange="changeView();"> 
     226                        <xsl:choose> 
     227                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 
     228                                <option>Default view</option> 
     229                                <option selected="true">Image view</option> 
     230                                <option>Text view</option> 
     231                            </xsl:when> 
     232                            <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 
     233                                <option>Default view</option> 
     234                                <option>Image view</option> 
     235                                <option selected="true">Text view</option> 
     236                            </xsl:when> 
     237                            <xsl:otherwise> 
     238                                <option selected="true">Default view</option> 
     239                                <option>Image view</option> 
     240                                <option>Text view</option> 
     241                            </xsl:otherwise> 
     242                        </xsl:choose> 
     243                    </select> 
     244                </li> 
    246245             
    247246                <!-- Realistic books link --> 
     
    269268                        </input> 
    270269                    </li> 
    271                 </xsl:if> 
     270                </xsl:if><xsl:text> </xsl:text> 
    272271            </ul> 
    273272            <ul id="zoomOptions"> 
  • main/trunk/greenstone3/web/interfaces/default/transform/pages/document.xsl

    r25917 r25936  
    6060    </xsl:template> 
    6161     
     62    <xsl:template name="sectionHeader"> 
     63        <xsl:call-template name="sectionTitle"/> 
     64    </xsl:template> 
     65     
    6266    <!-- Used to make sure that regardless what the collection designer uses for the title and content we can wrap it properly --> 
    6367    <!-- If editing, be aware that the Document Basket looks for specific classes that this template bakes in (key points marked with ***) --> 
    6468    <xsl:template name="wrapDocumentNodes"> 
    6569        <a name="{@nodeID}"><xsl:text> </xsl:text></a> 
     70         
    6671        <!-- Section header --> 
    6772        <table class="sectionHeader"><tr> 
    68          
     73 
    6974            <!-- Expand/collapse button --> 
    7075            <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'"> 
     
    8489                </td> 
    8590            </xsl:if> 
    86              
     91                     
    8792            <!-- Title --> 
    8893            <td id="header{@nodeID}" class="headerTD sectionTitle"><!-- *** --> 
    89                 <!-- Get the title from the title sectionTitle template --> 
    90                 <xsl:choose> 
    91                     <xsl:when test="not(/page/pageRequest/paramList/param[@name = 'dmd']) or /page/pageRequest/paramList/param[@name = 'dmd']/@value = 'false'"> 
    92                         <xsl:call-template name="sectionTitleFormat"/> 
    93                     </xsl:when> 
    94                     <xsl:otherwise> 
    95                         <xsl:call-template name="sectionTitle"/> 
    96                     </xsl:otherwise> 
    97                 </xsl:choose> 
     94                <p> 
     95                    <xsl:attribute name="class"><xsl:value-of select="util:hashToDepthClass(@nodeID)"/> sectionHeader</xsl:attribute> 
     96 
     97                    <xsl:if test="util:hashToSectionId(@nodeID)"> 
     98                        <span class="sectionNumberSpan"> 
     99                            <xsl:value-of select="util:hashToSectionId(@nodeID)"/> 
     100                            <xsl:text> </xsl:text> 
     101                        </span> 
     102                    </xsl:if> 
     103                    <!-- Display the title for the section regardless of whether automatic section numbering is turned on --> 
     104                    <span><xsl:call-template name="sectionHeader"/></span> 
     105                </p> 
    98106            </td> 
    99107             
     
    107115            </xsl:if> 
    108116        </tr></table> 
    109          
     117 
    110118        <div id="doc{@nodeID}"><!-- *** --> 
    111119            <xsl:choose> 
     
    161169            </xsl:if> 
    162170             
    163             <xsl:for-each select="."> 
    164                 <xsl:call-template name="sectionImage"/> 
    165             </xsl:for-each> 
     171            <xsl:call-template name="sectionImage"/> 
    166172             
    167173            <div id="text{@nodeID}" class="sectionText"><!-- *** --> 
     
    278284    <xsl:template name="wrappedDocument"> 
    279285        <xsl:choose> 
    280             <xsl:when test="/page/pageRequest/paramList/param[@name = 'alb']/@value = '1' or (string-length(/page/pageRequest/paramList/param[@name = 'd']/@value) > 0 and (/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or not(util:contains(/page/pageResponse/document/@selectedNode, '.'))))"> 
     286            <!-- NOTE: alb = ajax load bypass --> 
     287            <xsl:when test="/page/pageResponse/document/@docType = 'hierarchy' and (/page/pageRequest/paramList/param[@name = 'alb']/@value = '1' or (string-length(/page/pageRequest/paramList/param[@name = 'd']/@value) > 0 and (/page/pageRequest/paramList/param[@name = 'ed']/@value = '1' or not(util:contains(/page/pageResponse/document/@selectedNode, '.')))))"> 
    281288                <div id="gs-document"> 
    282289                    <xsl:call-template name="documentPre"/> 
     
    287294                    </div> 
    288295                </div> 
     296            </xsl:when> 
     297            <xsl:when test="/page/pageResponse/document/@docType = 'paged'"> 
     298                <div id="gs-document">                           
     299                    <div id="tocLoadingImage" style="text-align:center;"> 
     300                        <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> 
     301                    </div> 
     302                </div> 
     303                <script type="text/javascript"> 
     304                    <xsl:text disable-output-escaping="yes"> 
     305                        $(window).load(function() 
     306                        { 
     307                            var url = gs.xsltParams.library_name + "?a=d&amp;c=" + gs.cgiParams.c + "&amp;excerptid=gs-document&amp;dt=hierarchy&amp;d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1"); 
     308                            loadTopLevelPage(null, url); 
     309                        }); 
     310                    </xsl:text> 
     311                </script> 
    289312            </xsl:when> 
    290313            <xsl:otherwise> 
     
    370393        </xsl:choose> 
    371394    </xsl:template> 
    372      
    373     <xsl:template name="sectionTitleFormat"> 
    374         <p> 
    375             <xsl:attribute name="class"><xsl:value-of select="util:hashToDepthClass(@nodeID)"/> sectionHeader</xsl:attribute> 
    376              
    377             <xsl:if test="util:hashToSectionId(@nodeID)"> 
    378                 <span class="sectionNumberSpan"> 
    379                     <xsl:value-of select="util:hashToSectionId(@nodeID)"/> 
    380                     <xsl:text> </xsl:text> 
    381                 </span> 
    382             </xsl:if> 
    383             <!-- Display the title for the section regardless of whether automatic section numbering is turned on --> 
    384             <span><xsl:call-template name="sectionTitle"/></span> 
    385         </p> 
    386     </xsl:template> 
    387      
    388395         
    389396    <!-- The default template for displaying section titles --> 
     
    400407        <xsl:choose> 
    401408            <xsl:when test="metadataList/metadata[@name = 'Screen'] and metadataList/metadata[@name = 'Source'] and ($imageWidth div $screenImageWidth > 1.2)"> 
    402                 <div id="wrap{util:replace(@nodeID, '.', '_')}" class="zoomImage" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 
    403                     <div id="small{util:replace(@nodeID, '.', '_')}" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 
    404                         <gsf:image type="screen"/> 
    405                     </div> 
    406                     <div id="mover{util:replace(@nodeID, '.', '_')}" style="border: 1px solid green; position: absolute; top: 0; left: 0; width: 198px; height: 198px; overflow: hidden; z-index: 100; background: white; display: none;"> 
    407                         <div id="overlay{util:replace(@nodeID, '.', '_')}" style="width: 200px; height: 200px; position: absolute; top: 0; left: 0; z-index: 200;"> 
    408                             <xsl:text> </xsl:text> 
     409                <div id="image{@nodeID}"> 
     410                    <div id="wrap{util:replace(@nodeID, '.', '_')}" class="zoomImage" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 
     411                        <div id="small{util:replace(@nodeID, '.', '_')}" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 
     412                            <gsf:image type="screen"/> 
    409413                        </div> 
    410                         <div id="large{util:replace(@nodeID, '.', '_')}" style="position: relative; width: {$imageWidth}px; height: {$imageHeight}px;"> 
    411                             <gsf:image type="source"/> 
     414                        <div id="mover{util:replace(@nodeID, '.', '_')}" style="border: 1px solid green; position: absolute; top: 0; left: 0; width: 198px; height: 198px; overflow: hidden; z-index: 100; background: white; display: none;"> 
     415                            <div id="overlay{util:replace(@nodeID, '.', '_')}" style="width: 200px; height: 200px; position: absolute; top: 0; left: 0; z-index: 200;"> 
     416                                <xsl:text> </xsl:text> 
     417                            </div> 
     418                            <div id="large{util:replace(@nodeID, '.', '_')}" style="position: relative; width: {$imageWidth}px; height: {$imageHeight}px;"> 
     419                                <gsf:image type="source"/> 
     420                            </div> 
    412421                        </div> 
    413422                    </div> 
    414                 </div> 
    415                 <script type="text/javascript"> 
    416                     <xsl:text disable-output-escaping="yes"> 
    417                         { 
    418                             var nodeID = "</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">"; 
    419                             nodeID = nodeID.replace(/\./g, "_"); 
    420  
    421                             var bigHeight = </xsl:text><xsl:value-of select="$imageHeight"/><xsl:text disable-output-escaping="yes">; 
    422                             var smallHeight = </xsl:text><xsl:value-of select="$screenImageHeight"/><xsl:text disable-output-escaping="yes">; 
    423  
    424                             var multiplier = bigHeight / smallHeight; 
    425  
    426                             $("#wrap" + nodeID).anythingZoomer({ 
    427                                 smallArea: "#small" + nodeID, 
    428                                 largeArea: "#large" + nodeID, 
    429                                 zoomPort: "#overlay" + nodeID, 
    430                                 mover: "#mover" + nodeID, 
    431                                 expansionSize:50,   
    432                                 speedMultiplier:multiplier    
    433                             }); 
    434                              
    435                             $("#zoomOptions").css("display", "table-row"); 
    436                         } 
    437                     </xsl:text> 
    438                 </script> 
     423                    <script type="text/javascript"> 
     424                        <xsl:text disable-output-escaping="yes"> 
     425                            { 
     426                                var nodeID = "</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">"; 
     427                                nodeID = nodeID.replace(/\./g, "_"); 
     428 
     429                                var bigHeight = </xsl:text><xsl:value-of select="$imageHeight"/><xsl:text disable-output-escaping="yes">; 
     430                                var smallHeight = </xsl:text><xsl:value-of select="$screenImageHeight"/><xsl:text disable-output-escaping="yes">; 
     431 
     432                                var multiplier = bigHeight / smallHeight; 
     433 
     434                                $("#wrap" + nodeID).anythingZoomer({ 
     435                                    smallArea: "#small" + nodeID, 
     436                                    largeArea: "#large" + nodeID, 
     437                                    zoomPort: "#overlay" + nodeID, 
     438                                    mover: "#mover" + nodeID, 
     439                                    expansionSize:50,   
     440                                    speedMultiplier:multiplier    
     441                                }); 
     442                                 
     443                                $("#zoomOptions").css("display", null); 
     444                            } 
     445                        </xsl:text> 
     446                    </script> 
     447                </div> 
    439448            </xsl:when> 
    440449            <xsl:when test="metadataList/metadata[@name = 'Screen']">