Changeset 25177 for main/trunk/greenstone3/web/interfaces
- Timestamp:
- 2012-03-02T12:54:33+13:00 (12 years ago)
- Location:
- main/trunk/greenstone3/web/interfaces/oran
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/oran/js/document_scripts.js
r25143 r25177 157 157 function setImageVisible(visible) 158 158 { 159 var image = document.getElementById("gs-document-image"); 160 if(visible) 161 { 162 image.setAttribute("class", image.getAttribute("class").replace(/\bhidden\b/g, "")); 163 } 164 else 165 { 166 if(image.getAttribute("class").search(/\bhidden\b/) == -1) 167 { 168 image.setAttribute("class", image.getAttribute("class") + " hidden"); 159 var divs = document.getElementsByTagName("DIV"); 160 var images = new Array(); 161 for (var i = 0; i < divs.length; i++) 162 { 163 if(divs[i].id && divs[i].id.search(/^image/) != -1) 164 { 165 images.push(divs[i]); 166 } 167 } 168 169 for(var i = 0; i < images.length; i++) 170 { 171 var image = images[i]; 172 if(visible) 173 { 174 image.style.display = "block"; 175 } 176 else 177 { 178 image.style.display = "none"; 169 179 } 170 180 } … … 173 183 function setTextVisible(visible) 174 184 { 175 var text = document.getElementById("gs-document-text"); 176 if(visible) 177 { 178 text.setAttribute("class", text.getAttribute("class").replace(/\bhidden\b/g, "")); 179 } 180 else 181 { 182 if(text.getAttribute("class").search(/\bhidden\b/) == -1) 183 { 184 text.setAttribute("class", text.getAttribute("class") + " hidden"); 185 var divs = document.getElementsByTagName("DIV"); 186 var textDivs = new Array(); 187 for (var i = 0; i < divs.length; i++) 188 { 189 if(divs[i].id && divs[i].id.search(/^text/) != -1) 190 { 191 textDivs.push(divs[i]); 192 } 193 } 194 195 for(var i = 0; i < textDivs.length; i++) 196 { 197 var text = textDivs[i]; 198 if(visible) 199 { 200 text.style.display = "block"; 201 } 202 else 203 { 204 text.style.display = "none"; 185 205 } 186 206 } … … 198 218 document.getElementById("contentsArea").innerHTML = document.getElementById("contentsArea").innerHTML + ajax.responseText; 199 219 replaceLinksWithSlider(); 220 var loading = document.getElementById("tocLoadingImage"); 221 loading.parentNode.removeChild(loading); 222 } 223 else if(ajax.readyState == 4) 224 { 225 var loading = document.getElementById("tocLoadingImage"); 226 loading.parentNode.removeChild(loading); 200 227 } 201 228 } … … 253 280 //The container for the widget 254 281 var _mainDiv = document.createElement("DIV"); 255 _mainDiv.setAttribute("class", " pageSlider");282 _mainDiv.setAttribute("class", "ui-widget-content pageSlider"); 256 283 257 284 //The table of images … … 287 314 288 315 var href = page.getAttribute("href"); 289 //ajax.open("GET", href + "&excerptid=meta&dmd=true"); 290 var template = '<xsl:template match="/"><html><gsf:metadata name="thumbicon"/></html></xsl:template>'; 316 var template = ''; 317 template += '<xsl:template match="/">'; 318 template += '<html>'; 319 template += '<img>'; 320 template += '<xsl:attribute name="src">'; 321 template += "<xsl:value-of disable-output-escaping=\"yes\" select=\"/page/pageResponse/collection/metadataList/metadata[@name = 'httpPath']\"/>"; 322 template += '<xsl:text>/index/assoc/</xsl:text>'; 323 template += "<xsl:value-of disable-output-escaping=\"yes\" select=\"/page/pageResponse/document/metadataList/metadata[@name = 'assocfilepath']\"/>"; 324 template += '<xsl:text>/</xsl:text>'; 325 template += "<xsl:value-of disable-output-escaping=\"yes\" select=\"/page/pageResponse/document/documentNode/metadataList/metadata[@name = 'Thumb']\"/>"; 326 template += '</xsl:attribute>'; 327 template += '</img>'; 328 template += '</html>'; 329 template += '</xsl:template>'; 291 330 ajax.open("GET", href + "&ilt=" + template.replace(" ", "%20")); 292 331 ajax.onreadystatechange = function() … … 295 334 { 296 335 var text = ajax.responseText; 297 298 var start = text.indexOf("<img", text); 299 if(start == -1) 336 var hrefStart = text.indexOf("src=\"") + 5; 337 if(hrefStart == -1) 300 338 { 301 339 page.isLoading = false; … … 304 342 return; 305 343 } 306 var end = text.indexOf(">", start) + 4; 307 308 var image = text.substring(start, end); 309 image = image.replace("[parent(Top):assocfilepath]", gs.documentMetadata.assocfilepath); 310 page.link.innerHTML = image; 311 312 page.isLoading = false; 313 page.imageLoaded = true; 344 var hrefEnd = text.indexOf("\"", hrefStart); 345 var href = text.substring(hrefStart, hrefEnd); 346 console.log(href); 347 var image = document.createElement("IMG"); 348 $(image).load(function() 349 { 350 page.link.innerHTML = ""; 351 page.link.appendChild(image); 352 page.isLoading = false; 353 page.imageLoaded = true; 354 }); 355 $(image).error(function() 356 { 357 page.isLoading = false; 358 page.noImage = true; 359 image.setAttribute("src", gs.imageURLs.blank); 360 }); 361 image.setAttribute("src", href); 314 362 } 315 363 else if (ajax.readyState == 4 && !page.failed) … … 549 597 var newCell = document.createElement("TD"); 550 598 newCell.setAttribute("style", "font-size:0.7em; padding:0px 10px"); 599 600 var linkSpan = document.createElement("SPAN"); 601 linkSpan.setAttribute("class", "ui-state-default ui-corner-all"); 602 linkSpan.setAttribute("style", "padding: 2px; float:left;"); 603 604 var linkLabel = document.createElement("SPAN"); 605 linkLabel.innerHTML = "edit metadata"; 606 var linkIcon = document.createElement("SPAN"); 607 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 608 609 var uList = document.createElement("UL"); 610 var labelItem = document.createElement("LI"); 611 var iconItem = document.createElement("LI"); 612 uList.appendChild(iconItem); 613 uList.appendChild(labelItem); 614 labelItem.appendChild(linkLabel); 615 iconItem.appendChild(linkIcon); 616 617 uList.setAttribute("style", "outline: 0 none; margin:0px; padding:0px;"); 618 labelItem.setAttribute("style", "float:left; list-style:none outside none;"); 619 iconItem.setAttribute("style", "float:left; list-style:none outside none;"); 620 551 621 var newLink = document.createElement("A"); 552 newLink.innerHTML = "edit metadata";553 622 newLink.setAttribute("href", "javascript:;"); 554 623 newLink.onclick = function() … … 556 625 if(metaTable.style.display == "none") 557 626 { 627 linkLabel.innerHTML = "hide metadata"; 628 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-open"); 558 629 metaTable.style.display = "block"; 559 630 metaTable.metaNameField.style.display = "inline"; … … 562 633 else 563 634 { 635 linkLabel.innerHTML = "edit metadata"; 636 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 564 637 metaTable.style.display = "none"; 565 638 metaTable.metaNameField.style.display = "none"; … … 567 640 } 568 641 } 569 newCell.appendChild(newLink); 642 newLink.appendChild(uList); 643 linkSpan.appendChild(newLink); 644 newCell.appendChild(linkSpan); 570 645 row.appendChild(newCell); 571 646 -
main/trunk/greenstone3/web/interfaces/oran/transform/config_format.xsl
r25145 r25177 54 54 <xsl:choose> 55 55 <xsl:when test="@type = 'thumb'"> 56 <xslt:value-of disable-output-escaping="yes" select=" .//metadataList/metadata[@name = 'Thumb']"/>56 <xslt:value-of disable-output-escaping="yes" select="(.//metadataList)[last()]/metadata[@name = 'Thumb']"/> 57 57 </xsl:when> 58 58 <xsl:when test="@type = 'screen'"> 59 <xslt:value-of disable-output-escaping="yes" select=" .//metadataList/metadata[@name = 'Screen']"/>59 <xslt:value-of disable-output-escaping="yes" select="(.//metadataList)[last()]/metadata[@name = 'Screen']"/> 60 60 </xsl:when> 61 61 <xsl:when test="@type = 'source'"> 62 <xslt:value-of disable-output-escaping="yes" select=" .//metadataList/metadata[@name = 'SourceFile']"/>62 <xslt:value-of disable-output-escaping="yes" select="(.//metadataList)[last()]/metadata[@name = 'SourceFile']"/> 63 63 </xsl:when> 64 64 </xsl:choose> … … 92 92 <a><xslt:attribute name='href'><xslt:value-of 93 93 disable-output-escaping="yes" select="/page/pageResponse/collection/metadataList/metadata[@name='httpPath']" />/index/assoc/<xslt:value-of 94 disable-output-escaping="yes" select=" metadataList/metadata[@name='assocfilepath']" />/<xslt:value-of95 disable-output-escaping="yes" select=" metadataList/metadata[@name='srclinkFile']" /></xslt:attribute>94 disable-output-escaping="yes" select="(.//metadataList)[last()]/metadata[@name='assocfilepath']" />/<xslt:value-of 95 disable-output-escaping="yes" select="(.//metadataList)[last()]/metadata[@name='srclinkFile']" /></xslt:attribute> 96 96 <xsl:apply-templates/> 97 97 </a> … … 179 179 <xsl:text>(</xsl:text> 180 180 </xsl:if> 181 <xsl:text> .//metadataList/metadata[@name='</xsl:text>181 <xsl:text>(.//metadataList)[last()]/metadata[@name='</xsl:text> 182 182 <xsl:apply-templates select="." mode="get-metadata-name"/> 183 183 <xsl:text>']</xsl:text> … … 209 209 <xslt:value-of disable-output-escaping="yes"> 210 210 <xsl:attribute name="select"> 211 <xsl:text> .//metadataList/metadata[@name="</xsl:text>211 <xsl:text>(.//metadataList)[last()]/metadata[@name="</xsl:text> 212 212 <xsl:choose> 213 213 <xsl:when test="@select='parent'"> … … 242 242 <xsl:for-each select="gsf:metadata"> 243 243 <xslt:when> 244 <xsl:attribute name="test"> .//metadataList/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>']</xsl:attribute>244 <xsl:attribute name="test">(.//metadataList)[last()]/metadata[@name='<xsl:apply-templates select="." mode="get-metadata-name"/>']</xsl:attribute> 245 245 <xsl:apply-templates select="."/> 246 246 </xslt:when> … … 254 254 <xsl:template match="gsf:switch"> 255 255 <xsl:variable name="meta-name"><xsl:apply-templates select="gsf:metadata" mode="get-metadata-name"/></xsl:variable> 256 <xslt:variable name="meta"><xsl:choose><xsl:when test="@preprocess"><xslt:value-of select="util:{@preprocess}( .//metadataList/metadata[@name='{$meta-name}'])"/></xsl:when><xsl:otherwise><xslt:value-of select=".//metadataList/metadata[@name='{$meta-name}']"/></xsl:otherwise></xsl:choose></xslt:variable>256 <xslt:variable name="meta"><xsl:choose><xsl:when test="@preprocess"><xslt:value-of select="util:{@preprocess}((.//metadataList)[last()]/metadata[@name='{$meta-name}'])"/></xsl:when><xsl:otherwise><xslt:value-of select="(.//metadataList)[last()]/metadata[@name='{$meta-name}']"/></xsl:otherwise></xsl:choose></xslt:variable> 257 257 <xslt:choose> 258 258 <xsl:for-each select="gsf:when"> -
main/trunk/greenstone3/web/interfaces/oran/transform/layouts/header.xsl
r25142 r25177 44 44 45 45 <script type="text/javascript" src="interfaces/{$interface_name}/js/direct-edit.js"><xsl:text> </xsl:text></script> 46 <script type="text/javascript" src="interfaces/{$interface_name}/js/zoomer.js"><xsl:text> </xsl:text></script> 46 47 47 48 <xsl:if test="/page/pageResponse/format[@type='display' or @type='browse' or @type='search']/gsf:option[@name='mapEnabled']/@value = 'true'"> … … 49 50 </xsl:if> 50 51 51 <xsl:call-template name="init-direct-edit"/> 52 <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))"> 53 <xsl:call-template name="init-direct-edit"/> 54 </xsl:if> 52 55 <xsl:call-template name="setup-gs-variable"/> 53 56 <xsl:call-template name="additionalHeaderContent"/> -
main/trunk/greenstone3/web/interfaces/oran/transform/pages/document.xsl
r25144 r25177 100 100 101 101 <div id="doc{@nodeID}" class="sectionContainer"><!-- *** --> 102 <xsl:if test="/page/pageRequest/ paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">102 <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))"> 103 103 <table id="meta{@nodeID}"> 104 104 <xsl:attribute name="style"> … … 124 124 </table> 125 125 </xsl:if> 126 127 <gsf:variable name="screenImageWidth"><gsf:metadata name="ScreenWidth"/></gsf:variable> 128 <gsf:variable name="screenImageHeight"><gsf:metadata name="ScreenHeight"/></gsf:variable> 129 <gsf:variable name="imageWidth"><gsf:metadata name="ImageWidth"/></gsf:variable> 130 <gsf:variable name="imageHeight"><gsf:metadata name="ImageHeight"/></gsf:variable> 131 132 <xsl:choose> 133 <xsl:when test="metadataList/metadata[@name = 'Screen'] and metadataList/metadata[@name = 'Source'] and /page/pageRequest/paramList/param[@name = 'zoom']/@value = 'true'"> 134 <div id="wrap{util:replace(@nodeID, '.', '_')}" class="zoomImage" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 135 <div id="small{util:replace(@nodeID, '.', '_')}" style="position:relative; width: {$screenImageWidth}px; height: {$screenImageHeight}px;"> 136 <gsf:image type="screen"/> 137 </div> 138 <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;"> 139 <div id="overlay{util:replace(@nodeID, '.', '_')}" style="width: 200px; height: 200px; position: absolute; top: 0; left: 0; z-index: 200;"> 140 <xsl:text> </xsl:text> 141 </div> 142 <div id="large{util:replace(@nodeID, '.', '_')}" style="position: relative;"> 143 <gsf:image type="source"/> 144 </div> 145 </div> 146 </div> 147 <script type="text/javascript"> 148 <xsl:text disable-output-escaping="yes"> 149 $(window).load(function() 150 { 151 var nodeID = "</xsl:text><xsl:value-of select="@nodeID"/><xsl:text disable-output-escaping="yes">"; 152 var bigHeight = </xsl:text><xsl:value-of select="$imageHeight"/><xsl:text disable-output-escaping="yes">; 153 var smallHeight = </xsl:text><xsl:value-of select="$screenImageHeight"/><xsl:text disable-output-escaping="yes"> 154 155 nodeID = nodeID.replace(/\./g, "_"); 156 var multiplier = bigHeight / smallHeight; 157 158 $("#wrap" + nodeID).anythingZoomer({ 159 smallArea: "#small" + nodeID, 160 largeArea: "#large" + nodeID, 161 zoomPort: "#overlay" + nodeID, 162 mover: "#mover" + nodeID, 163 expansionSize:50, 164 speedMultiplier:multiplier 165 }); 166 }); 167 </xsl:text> 168 </script> 169 </xsl:when> 170 <xsl:when test="metadataList/metadata[@name = 'Screen']"> 171 <div id="image{@nodeID}"> 172 <xsl:attribute name="style"> 173 <xsl:choose> 174 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 175 <xsl:text>display:none;</xsl:text> 176 </xsl:when> 177 <xsl:otherwise> 178 <xsl:text>display:block;</xsl:text> 179 </xsl:otherwise> 180 </xsl:choose> 181 </xsl:attribute> 182 <gsf:image type="screen"/> 183 </div> 184 </xsl:when> 185 </xsl:choose> 126 186 <div id="text{@nodeID}" class="sectionText"><!-- *** --> 187 <xsl:attribute name="style"> 188 <xsl:choose> 189 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 190 <xsl:text>display:none;</xsl:text> 191 </xsl:when> 192 <xsl:otherwise> 193 <xsl:text>display:block;</xsl:text> 194 </xsl:otherwise> 195 </xsl:choose> 196 </xsl:attribute> 127 197 <!-- Get the section content from the document template --> 128 198 <xsl:apply-templates select="." mode="document"/> … … 137 207 <!-- the page content --> 138 208 <xsl:template match="/page/pageResponse/document"> 139 <xsl:if test="/page/pageRequest/ paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">209 <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))"> 140 210 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts.js"><xsl:text> </xsl:text></script> 141 211 <script type="text/javascript" src="interfaces/{$interface_name}/js/documentmaker_scripts_util.js"><xsl:text> </xsl:text></script> … … 162 232 <xsl:call-template name="documentBerryForDocumentPage"/> 163 233 164 <xsl:if test="/page/pageRequest/ paramList/param[@name = 'documentbasket']/@value = 'on' and /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))">234 <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))"> 165 235 <table style="width:100%"><tr> 166 236 <td id="editBarLeft" style="width:70%"><xsl:text> </xsl:text></td> … … 205 275 <script type="text/javascript"> 206 276 <xsl:text disable-output-escaping="yes"> 207 retrieveTableOfContents(); 277 $(window).load(function() 278 { 279 retrieveTableOfContents(); 280 }); 208 281 </xsl:text> 209 282 </script> 283 <div id="tocLoadingImage" style="text-align:center;"> 284 <img src="{util:getInterfaceText($interface_name, /page/@lang, 'loading_image')}"/><xsl:text> loading...</xsl:text> 285 </div> 210 286 </xsl:when> 211 287 <xsl:otherwise> … … 260 336 <xsl:otherwise> 261 337 <div id="gs-document"> 262 <div id="gs-document-image"> 263 <xsl:attribute name="class"> 264 <xsl:text>sectionImage</xsl:text> 265 <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"><xsl:text> hidden</xsl:text></xsl:if> 266 </xsl:attribute> 267 <!-- Get the section content from the document template --> 268 <xsl:call-template name="documentImage"/> 269 <xsl:text> </xsl:text> 270 </div> 271 <div id="gs-document-text" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 272 <xsl:attribute name="class"> 273 <xsl:text>documenttext</xsl:text> 274 <xsl:if test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"><xsl:text> hidden</xsl:text></xsl:if> 275 </xsl:attribute> 338 <div id="gs-document-text" class="documenttext" collection="{/page/pageResponse/collection/@name}"><!-- *** --> 276 339 <xsl:call-template name="wrapDocumentNodes"/> 277 340 </div> … … 337 400 <xsl:variable name="imageTest"><gsf:metadata name="ScreenWidth"/></xsl:variable> 338 401 <xsl:if test="$imageTest != ''"> 339 <h3> 402 <h3> 340 403 <gsf:choose-metadata> 341 404 <gsf:metadata name="dc.Title"/> … … 474 537 475 538 <!-- Paged-image options --> 476 <xsl:if test="/page/pageResponse/document/@docType = 'paged'"> 477 <td> 478 <select id="viewSelection" onchange="changeView();"> 479 <xsl:choose> 480 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 481 <option>Default view</option> 482 <option selected="true">Image view</option> 483 <option>Text view</option> 484 </xsl:when> 485 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 486 <option>Default view</option> 487 <option>Image view</option> 488 <option selected="true">Text view</option> 489 </xsl:when> 490 <xsl:otherwise> 491 <option selected="true">Default view</option> 492 <option>Image view</option> 493 <option>Text view</option> 494 </xsl:otherwise> 495 </xsl:choose> 496 </select> 497 </td> 498 </xsl:if> 539 <td> 540 <select id="viewSelection" onchange="changeView();"> 541 <xsl:choose> 542 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'image'"> 543 <option>Default view</option> 544 <option selected="true">Image view</option> 545 <option>Text view</option> 546 </xsl:when> 547 <xsl:when test="/page/pageRequest/paramList/param[@name = 'view']/@value = 'text'"> 548 <option>Default view</option> 549 <option>Image view</option> 550 <option selected="true">Text view</option> 551 </xsl:when> 552 <xsl:otherwise> 553 <option selected="true">Default view</option> 554 <option>Image view</option> 555 <option>Text view</option> 556 </xsl:otherwise> 557 </xsl:choose> 558 </select> 559 </td> 499 560 500 561 <!-- Realistic books link -->
Note:
See TracChangeset
for help on using the changeset viewer.