Changeset 26397 for main/trunk/greenstone3/web
- Timestamp:
- 2012-10-25T15:30:04+13:00 (12 years ago)
- Location:
- main/trunk/greenstone3/web/interfaces/default/js
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/web/interfaces/default/js/document_scripts.js
r26390 r26397 38 38 } 39 39 40 var ajax = gs.functions.ajaxRequest(); 41 ajax.open("GET", gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?hl=" + hl + "&p.s=TextQuery&ilt=" + template.replace(" ", "%20"), true); 42 ajax.onreadystatechange = function() 43 { 44 if(ajax.readyState == 4 && ajax.status == 200) 45 { 46 var response = ajax.responseText; 40 var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?hl=" + hl + "&p.s=TextQuery&ilt=" + template.replace(" ", "%20"); 41 42 $.ajax(url) 43 .success(function(response) 44 { 45 if(response) 46 { 47 var textStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 48 var textEnd = response.lastIndexOf("<"); 47 49 48 if(response) 49 { 50 var textStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 51 var textEnd = response.lastIndexOf("<"); 52 53 if(textStart == 0 || textEnd == -1 || textEnd <= textStart) 54 { 55 callback(""); 56 } 57 58 var text = response.substring(textStart, textEnd); 59 callback(text); 60 } 61 else 62 { 63 callback(null); 64 } 65 } 66 else if(ajax.readyState == 4) 50 if(textStart == 0 || textEnd == -1 || textEnd <= textStart) 51 { 52 callback(""); 53 } 54 55 var text = response.substring(textStart, textEnd); 56 callback(text); 57 } 58 else 67 59 { 68 60 callback(null); 69 61 } 70 } 71 ajax.send(); 62 }) 63 .error(function() 64 { 65 callback(null); 66 }); 72 67 } 73 68 … … 88 83 template += '</xsl:template>'; 89 84 90 var ajax = gs.functions.ajaxRequest();91 85 var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "/document/" + sectionID + "?ilt=" + template.replace(" ", "%20"); 92 86 … … 95 89 url += "&dt=hierarchy"; 96 90 } 97 ajax.open("GET", url, true); 98 ajax.onreadystatechange = function() 99 { 100 if(ajax.readyState == 4 && ajax.status == 200) 101 { 102 var response = ajax.responseText; 91 92 $.ajax(url) 93 .success(function(response) 94 { 95 if(response) 96 { 97 var sectionsStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 98 var sectionsEnd = response.lastIndexOf("<"); 103 99 104 if(response) 105 { 106 var sectionsStart = response.indexOf(">", response.indexOf(">") + 1) + 1; 107 var sectionsEnd = response.lastIndexOf("<"); 108 109 if(sectionsStart == 0 || sectionsEnd == -1 || sectionsEnd <= sectionsStart) 110 { 111 callback(" "); 112 return; 113 } 114 115 var sections = response.substring(sectionsStart, sectionsEnd); 116 callback(sections); 117 } 118 else 119 { 120 callback(null); 121 } 122 } 123 else if(ajax.readyState == 4) 100 if(sectionsStart == 0 || sectionsEnd == -1 || sectionsEnd <= sectionsStart) 101 { 102 callback(" "); 103 return; 104 } 105 106 var sections = response.substring(sectionsStart, sectionsEnd); 107 callback(sections); 108 } 109 else 124 110 { 125 111 callback(null); 126 112 } 127 } 128 ajax.send(); 113 }) 114 .error(function() 115 { 116 callback(null); 117 }); 129 118 } 130 119 131 120 function toggleSection(sectionID, callback, tocDisabled) 132 121 { 133 var docElem = document.getElementById("doc" + sectionID);134 var tocElem = document.getElementById("toc" + sectionID);135 136 var tocToggleElem = document.getElementById("ttoggle" + sectionID);137 var docToggleElem = document.getElementById("dtoggle" + sectionID);138 139 if(docElem. style.display== "none")140 { 141 if(tocToggleElem && !tocDisabled)142 { 143 tocToggleElem. setAttribute("src", gs.imageURLs.collapse);144 } 145 146 if(tocElem && !tocDisabled)147 { 148 tocElem. style.display = "block";149 } 150 151 if( gs.functions.hasClass(docElem,"noText"))122 var docElem = gs.jqGet("doc" + sectionID); 123 var tocElem = gs.jqGet("toc" + sectionID); 124 125 var tocToggleElem = gs.jqGet("ttoggle" + sectionID); 126 var docToggleElem = gs.jqGet("dtoggle" + sectionID); 127 128 if(docElem.css("display") == "none") 129 { 130 if(tocToggleElem.length && !tocDisabled) 131 { 132 tocToggleElem.attr("src", gs.imageURLs.collapse); 133 } 134 135 if(tocElem.length && !tocDisabled) 136 { 137 tocElem.css("display", "block"); 138 } 139 140 if(docElem.hasClass("noText")) 152 141 { 153 142 getTextForSection(sectionID, function(text) … … 158 147 if(text.search("wrap" + nodeID) != -1) 159 148 { 160 document.getElementById("zoomOptions").style.display = null;161 document.getElementById("pagedImageOptions").style.display = null;149 gs.jqGet("zoomOptions").css("display", null); 150 gs.jqGet("pagedImageOptions").css("display", null); 162 151 } 163 152 getSubSectionsForSection(sectionID, function(sections) … … 165 154 if(sections) 166 155 { 167 var textElem = document.getElementById("doc" + sectionID);168 $(textElem).html(text + sections);156 var textElem = gs.jqGet("doc" + sectionID); 157 textElem.html(text + sections); 169 158 170 docElem. setAttribute("class", docElem.getAttribute("class").replace(/\bnoText\b/g, ""));171 docElem. style.display = "block";172 docToggleElem. setAttribute("src", gs.imageURLs.collapse);159 docElem.removeClass("noText"); 160 docElem.css("display", "block"); 161 docToggleElem.attr("src", gs.imageURLs.collapse); 173 162 174 163 if(callback) … … 177 166 } 178 167 179 if( document.getElementById("viewSelection"))168 if(gs.jqGet("viewSelection").length) 180 169 { 181 170 changeView(); … … 184 173 else 185 174 { 186 docToggleElem. setAttribute("src", gs.imageURLs.expand);175 docToggleElem.attr("src", gs.imageURLs.expand); 187 176 if(callback) 188 177 { … … 194 183 else 195 184 { 196 docToggleElem. setAttribute("src", gs.imageURLs.expand);185 docToggleElem.attr("src", gs.imageURLs.expand); 197 186 if(callback) 198 187 { … … 202 191 }); 203 192 204 docToggleElem. setAttribute("src", gs.imageURLs.loading);193 docToggleElem.attr("src", gs.imageURLs.loading); 205 194 } 206 195 else 207 196 { 208 docToggleElem. setAttribute("src", gs.imageURLs.collapse);209 docElem. style.display = "block";197 docToggleElem.attr("src", gs.imageURLs.collapse); 198 docElem.css("display", "block"); 210 199 211 200 if(callback) … … 217 206 else 218 207 { 219 docElem. style.display = "none";208 docElem.css("display", "none"); 220 209 221 210 //Use the page image if this is a leaf node and the chapter image if it not 222 docToggleElem. setAttribute("src", gs.imageURLs.expand);223 224 if(tocToggleElem )225 { 226 tocToggleElem. setAttribute("src", gs.imageURLs.expand);227 } 228 229 if(tocElem )230 { 231 tocElem. style.display = "none";211 docToggleElem.attr("src", gs.imageURLs.expand); 212 213 if(tocToggleElem.length) 214 { 215 tocToggleElem.attr("src", gs.imageURLs.expand); 216 } 217 218 if(tocElem.length) 219 { 220 tocElem.css("display", "none"); 232 221 } 233 222 … … 288 277 function expandOrCollapseAll(expand) 289 278 { 290 var divs = document.getElementsByTagName("DIV");279 var divs = $("div"); 291 280 var startCounter = 0; 292 281 var endCounter = 0; … … 294 283 for(var i = 0; i < divs.length; i++) 295 284 { 296 if( divs[i].getAttribute("id") && divs[i].getAttribute("id").search(/^doc/) != -1)297 { 298 var id = divs[i].getAttribute("id").replace(/^doc(.*)/, "$1");285 if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^doc/) != -1) 286 { 287 var id = $(divs[i]).attr("id").replace(/^doc(.*)/, "$1"); 299 288 if(isExpanded(id) != expand) 300 289 { … … 344 333 function loadTopLevelPage(callbackFunction, customURL) 345 334 { 346 var ajax = gs.functions.ajaxRequest(); 347 348 var url = gs.xsltParams.library_name + "?a=d&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 349 if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 350 { 351 url += "&d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1"); 352 } 353 else if(gs.cgiParams.href && gs.cgiParams.href.length > 0) 354 { 355 url += "&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 356 } 357 358 if(customURL != null) 359 { 360 ajax.open("GET", customURL, true); 335 var url; 336 if(customURL) 337 { 338 url = customURL; 361 339 } 362 340 else 363 341 { 364 ajax.open("GET", url, true); 365 } 366 367 ajax.onreadystatechange = function() 368 { 369 if(ajax.readyState == 4 && ajax.status == 200) 370 { 371 var response = ajax.responseText; 342 url = gs.xsltParams.library_name + "?a=d&c=" + gs.cgiParams.c + "&excerptid=gs-document"; 343 if(gs.cgiParams.d && gs.cgiParams.d.length > 0) 344 { 345 url += "&d=" + gs.cgiParams.d.replace(/([^.]*)\..*/, "$1"); 346 } 347 else if(gs.cgiParams.href && gs.cgiParams.href.length > 0) 348 { 349 url += "&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 350 } 351 } 352 353 $.ajax(url) 354 .success(function(response) 355 { 356 if(response) 357 { 358 var targetElem = gs.jqGet("gs-document"); 359 var docStart = response.indexOf(">") + 1; 360 var docEnd = response.lastIndexOf("<"); 361 var doc = response.substring(docStart, docEnd); 362 363 targetElem.html(doc); 372 364 373 if(response) 374 { 375 var targetElem = document.getElementById("gs-document"); 376 var docStart = response.indexOf(">") + 1; 377 var docEnd = response.lastIndexOf("<"); 378 var doc = response.substring(docStart, docEnd); 379 380 targetElem.innerHTML = doc; 381 382 if(callbackFunction) 383 { 384 callbackFunction(); 385 } 386 } 387 } 388 else if(ajax.readyState == 4) 389 { 390 setTimeout(function(){loadTopLevelPage(callbackFunction, customURL);}, 1000); 391 } 392 }; 393 ajax.send(); 365 if(callbackFunction) 366 { 367 callbackFunction(); 368 } 369 } 370 }) 371 .error(function() 372 { 373 setTimeout(function(){loadTopLevelPage(callbackFunction, customURL);}, 1000); 374 }); 394 375 } 395 376 396 377 function retrieveFullTableOfContents() 397 378 { 398 var ajax = gs.functions.ajaxRequest();399 400 379 var url = gs.xsltParams.library_name + "/collection/" + gs.cgiParams.c + "?excerptid=tableOfContents&ed=1"; 401 380 if(gs.cgiParams.d && gs.cgiParams.d.length > 0) … … 407 386 url += "&a=d&d=&alb=1&rl=1&href=" + gs.cgiParams.href; 408 387 } 409 410 ajax.open("GET", url, true); 411 ajax.onreadystatechange = function() 412 { 413 if(ajax.readyState == 4 && ajax.status == 200) 414 { 415 var newTOCElem = ajax.responseText; 416 var tocStart = newTOCElem.indexOf(">") + 1; 417 var tocEnd = newTOCElem.lastIndexOf("<"); 418 419 var newTOC = newTOCElem.substring(tocStart, tocEnd); 420 421 //Add the "Expand document"/"Collapse document" links 422 newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC; 423 424 //Collapse the TOC 425 newTOC = newTOC.replace(/display:block/g, "display:none"); 426 newTOC = newTOC.replace(/display:none/, "display:block"); 427 newTOC = newTOC.replace(/images\/collapse/g, "images/expand"); 428 429 var tocElem = document.getElementById("tableOfContents"); 430 tocElem.innerHTML = newTOC; 431 432 gs.variables.tocLoaded = true; 433 } 434 else if(ajax.readyState == 4) 435 { 436 setTimeout(retrieveFullTableOfContents, 1000); 437 } 438 } 439 ajax.send(); 388 389 $.ajax(url) 390 .success(function(newTOCElem) 391 { 392 var tocStart = newTOCElem.indexOf(">") + 1; 393 var tocEnd = newTOCElem.lastIndexOf("<"); 394 395 var newTOC = newTOCElem.substring(tocStart, tocEnd); 396 397 //Add the "Expand document"/"Collapse document" links 398 newTOC = "<table style=\"width:100%; text-align:center;\"><tr><td><a href=\"javascript:expandOrCollapseAll(true);\">Expand document</a></td><td><a href=\"javascript:expandOrCollapseAll(false);\">Collapse document</a></td></tr></table>" + newTOC; 399 400 //Collapse the TOC 401 newTOC = newTOC.replace(/display:block/g, "display:none"); 402 newTOC = newTOC.replace(/display:none/, "display:block"); 403 newTOC = newTOC.replace(/images\/collapse/g, "images/expand"); 404 405 var tocElem = gs.jqGet("tableOfContents"); 406 tocElem.html(newTOC); 407 408 gs.variables.tocLoaded = true; 409 }) 410 .error(function() 411 { 412 setTimeout(retrieveFullTableOfContents, 1000); 413 }); 440 414 } 441 415 442 416 function isExpanded(sectionID) 443 417 { 444 var docElem = document.getElementById("doc" + sectionID);445 if(docElem. style.display== "block")418 var docElem = gs.jqGet("doc" + sectionID); 419 if(docElem.css("display") == "block") 446 420 { 447 421 return true; … … 450 424 } 451 425 452 function isParentOf(parent, child)453 {454 if(child.indexOf(parent) != -1 && child.length > parent.length && child[parent.length] == '.')455 {456 return true;457 }458 return false;459 }460 461 426 function minimizeSidebar() 462 427 { 463 var toc = document.getElementById("contentsArea");464 var maxLink = document.getElementById("sidebarMaximizeButton");465 var minLink = document.getElementById("sidebarMinimizeButton");466 467 if(toc )468 { 469 toc. style.display = "none";470 } 471 472 maxLink. style.display = "block";473 minLink. style.display = "none";428 var toc = gs.jqGet("contentsArea"); 429 var maxLink = gs.jqGet("sidebarMaximizeButton"); 430 var minLink = gs.jqGet("sidebarMinimizeButton"); 431 432 if(toc.length) 433 { 434 toc.css("display", "none"); 435 } 436 437 maxLink.css("display", "block"); 438 minLink.css("display", "none"); 474 439 } 475 440 476 441 function maximizeSidebar() 477 442 { 478 var coverImage = document.getElementById("coverImage");479 var toc = document.getElementById("contentsArea");480 var maxLink = document.getElementById("sidebarMaximizeButton");481 var minLink = document.getElementById("sidebarMinimizeButton");482 483 if(coverImage )484 { 485 coverImage. style.display = "block";486 } 487 488 if(toc )489 { 490 toc. style.display = "block";491 } 492 493 maxLink. style.display = "none";494 minLink. style.display = "block";443 var coverImage = gs.jqGet("coverImage"); 444 var toc = gs.jqGet("contentsArea"); 445 var maxLink = gs.jqGet("sidebarMaximizeButton"); 446 var minLink = gs.jqGet("sidebarMinimizeButton"); 447 448 if(coverImage.length) 449 { 450 coverImage.css("display", "block"); 451 } 452 453 if(toc.length) 454 { 455 toc.css("display", "block"); 456 } 457 458 maxLink.css("display", "none"); 459 minLink.css("display", "block"); 495 460 } 496 461 … … 501 466 function changeView() 502 467 { 503 var viewList = document.getElementById("viewSelection");504 var currentVal = viewList.val ue;468 var viewList = gs.jqGet("viewSelection"); 469 var currentVal = viewList.val(); 505 470 506 471 var view; … … 524 489 } 525 490 526 var ajax = gs.functions.ajaxRequest(); 527 ajax.open("GET", gs.xsltParams.library_name + "?a=d&view=" + view + "&c=" + gs.cgiParams.c); 528 ajax.send(); 491 var url = gs.xsltParams.library_name + "?a=d&view=" + view + "&c=" + gs.cgiParams.c; 492 $.ajax(url); 529 493 } 530 494 531 495 function setImageVisible(visible) 532 496 { 533 var divs = document.getElementsByTagName("DIV");497 var divs = $("div"); 534 498 var images = new Array(); 535 499 for (var i = 0; i < divs.length; i++) 536 500 { 537 if( divs[i].id && divs[i].id.search(/^image/) != -1)538 { 539 images.push( divs[i]);501 if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^image/) != -1) 502 { 503 images.push($(divs[i])); 540 504 } 541 505 } … … 546 510 if(visible) 547 511 { 548 image. style.display = "block";512 image.css("display", "block"); 549 513 } 550 514 else 551 515 { 552 image. style.display = "none";516 image.css("display", "none"); 553 517 } 554 518 } … … 557 521 function setTextVisible(visible) 558 522 { 559 var divs = document.getElementsByTagName("DIV");523 var divs = $("div"); 560 524 var textDivs = new Array(); 561 525 for (var i = 0; i < divs.length; i++) 562 526 { 563 if( divs[i].id && divs[i].id.search(/^text/) != -1)564 { 565 textDivs.push( divs[i]);527 if($(divs[i]).attr("id") && $(divs[i]).attr("id").search(/^text/) != -1) 528 { 529 textDivs.push($(divs[i])); 566 530 } 567 531 } … … 572 536 if(visible) 573 537 { 574 text. style.display = "block";538 text.css("display", "block"); 575 539 } 576 540 else 577 541 { 578 text. style.display = "none";542 text.css("display", "none"); 579 543 } 580 544 } … … 589 553 ilt += '</xsl:for-each>'; 590 554 ilt += '</xsl:template>'; 591 592 var ajax = gs.functions.ajaxRequest(); 593 ajax.open("GET", gs.xsltParams.library_name + "?a=d&ed=1&c=" + gs.cgiParams.c + "&d=" + gs.cgiParams.d + "&ilt=" + ilt.replace(/ /g, "%20"), true); 594 ajax.onreadystatechange = function() 595 { 596 if(ajax.readyState == 4 && ajax.status == 200) 597 { 598 document.getElementById("tableOfContents").innerHTML = ajax.responseText; 599 replaceLinksWithSlider(); 600 var loading = document.getElementById("tocLoadingImage"); 601 loading.parentNode.removeChild(loading); 602 } 603 else if(ajax.readyState == 4) 604 { 605 setTimeout(function(){retrieveTableOfContentsAndTitles();}, 1000); 606 } 607 } 608 ajax.send(); 555 556 var url = gs.xsltParams.library_name + "?a=d&ed=1&c=" + gs.cgiParams.c + "&d=" + gs.cgiParams.d + "&ilt=" + ilt.replace(/ /g, "%20"); 557 558 $.ajax(url) 559 .success(function(response) 560 { 561 gs.jqGet("tableOfContents").html(response); 562 replaceLinksWithSlider(); 563 var loading = gs.jqGet("tocLoadingImage"); 564 loading.remove(); 565 }) 566 .error(function() 567 { 568 setTimeout(function(){retrieveTableOfContentsAndTitles();}, 1000); 569 }); 609 570 } 610 571 611 572 function replaceLinksWithSlider() 612 573 { 613 var tableOfContents = document.getElementById("tableOfContents");614 var liElems = tableOfContents. getElementsByTagName("LI");615 574 var tableOfContents = gs.jqGet("tableOfContents"); 575 var liElems = tableOfContents.find("li"); 576 616 577 var leafSections = new Array(); 617 578 for (var i = 0; i < liElems.length; i++) 618 579 { 619 var section = liElems[i];580 var section = $(liElems[i]); 620 581 var add = true; 621 582 for(var j = 0; j < leafSections.length; j++) … … 623 584 if(leafSections[j] == undefined){continue;} 624 585 625 var leaf = leafSections[j];626 if(leaf. getAttribute("id").search(section.getAttribute("id")) != -1)586 var leaf = $(leafSections[j]); 587 if(leaf.attr("id").search(section.attr("id")) != -1) 627 588 { 628 589 add = false; 629 590 } 630 591 631 if(section. getAttribute("id").search(leaf.getAttribute("id")) != -1)592 if(section.attr("id").search(leaf.attr("id")) != -1) 632 593 { 633 594 delete leafSections[j]; 634 595 } 635 596 } 636 597 637 598 if(add) 638 599 { … … 644 605 { 645 606 if(leafSections[i] == undefined){continue;} 646 leafSections[i].style.display = "none"; 647 var links = leafSections[i].getElementsByTagName("A"); 607 608 leafSections[i].css("display", "none"); 609 var links = leafSections[i].find("a"); 610 648 611 var widget = new SliderWidget(links); 649 leafSections[i]. parentNode.insertBefore(widget.getElem(), leafSections[i]);650 } 651 612 leafSections[i].before(widget.getElem()); 613 } 614 652 615 //Disable all TOC toggles 653 var imgs = document.getElementsByTagName("IMG");616 var imgs = $("img"); 654 617 for(var j = 0; j < imgs.length; j++) 655 618 { 656 var currentImage = imgs[j];657 if(currentImage. getAttribute("id") && currentImage.getAttribute("id").search(/^ttoggle/) != -1)658 { 659 currentImage. setAttribute("onclick", "");660 } 661 else if(currentImage. getAttribute("id") && currentImage.getAttribute("id").search(/^dtoggle/) != -1)662 { 663 currentImage. setAttribute("onclick", currentImage.getAttribute("onclick").replace(/\)/, ", null, true)"));619 var currentImage = $(imgs[j]); 620 if(currentImage.attr("id") && currentImage.attr("id").search(/^ttoggle/) != -1) 621 { 622 currentImage.attr("onclick", ""); 623 } 624 else if(currentImage.attr("id") && currentImage.attr("id").search(/^dtoggle/) != -1) 625 { 626 currentImage.attr("onclick", currentImage.attr("onclick").replace(/\)/, ", null, true)")); 664 627 } 665 628 } … … 673 636 674 637 //The container for the widget 675 var _mainDiv = document.createElement("DIV");676 _mainDiv. setAttribute("class", "ui-widget-content pageSlider");638 var _mainDiv = $("<div>"); 639 _mainDiv.attr("class", "ui-widget-content pageSlider"); 677 640 678 641 //The table of images 679 var _linkTable = document.createElement("TABLE");680 _mainDiv.append Child(_linkTable);642 var _linkTable = $("<table>"); 643 _mainDiv.append(_linkTable); 681 644 682 645 //The image row of the table 683 var _linkRow = document.createElement("TR");684 _linkTable.append Child(_linkRow);646 var _linkRow = $("<tr>"); 647 _linkTable.append(_linkRow); 685 648 686 649 //The list of titles we can search through 687 650 var _titles = new Array(); 651 652 //Keep track of the slider position 653 var _prevScroll = 0; 688 654 689 655 //**************** … … 741 707 for(var i = 0; i < _titles.length; i++) 742 708 { 743 _titles[i][1].cell.style.display = "none";709 $(_titles[i][1].cell).css("display", "none"); 744 710 } 745 711 746 712 for(var i = 0; i < matchingTitles.length; i++) 747 713 { 748 matchingTitles[i][1].cell.style.display = "table-cell";714 $(matchingTitles[i][1].cell).css("display", "table-cell"); 749 715 } 750 716 } … … 757 723 if(currentTitle[0].search(currentValue.replace(/\./g, "\\.")) != -1) 758 724 { 759 currentTitle[1].cell.style.display = "table-cell";725 $(currentTitle[1].cell).css("display", "table-cell"); 760 726 } 761 727 else 762 728 { 763 currentTitle[1].cell.style.display = "none";729 $(currentTitle[1].cell).css("display", "none"); 764 730 } 765 731 } … … 770 736 var getImage = function(page, attemptNumber) 771 737 { 772 var ajax = gs.functions.ajaxRequest();773 774 738 var href = page.getAttribute("href"); 775 739 var startHREF = href.indexOf("'") + 1; … … 797 761 template += '</xsl:template>'; 798 762 799 ajax.open("GET", href + "?ilt=" + template.replace(" ", "%20")); 800 ajax.onreadystatechange = function() 801 { 802 if(ajax.readyState == 4 && ajax.status == 200) 803 { 804 var text = ajax.responseText; 805 var hrefStart = text.indexOf("src=\"") + 5; 806 if(hrefStart == -1) 807 { 808 page.isLoading = false; 809 page.noImage = true; 810 page.image.setAttribute("src", gs.imageURLs.blank); 811 return; 812 } 813 var hrefEnd = text.indexOf("\"", hrefStart); 814 var href = text.substring(hrefStart, hrefEnd); 815 816 var image = document.createElement("IMG"); 817 $(image).load(function() 818 { 819 page.link.innerHTML = ""; 820 page.link.appendChild(image); 821 page.isLoading = false; 822 page.imageLoaded = true; 823 }); 824 $(image).error(function() 825 { 826 if(!attemptNumber || attemptNumber < 3) 827 { 828 setTimeout(function(){getImage(page, ((!attemptNumber) ? 1 : attemptNumber + 1));}, 500); 829 } 830 else 831 { 832 page.isLoading = false; 833 page.noImage = true; 834 image.setAttribute("src", gs.imageURLs.blank); 835 } 836 }); 837 image.setAttribute("src", href); 838 839 var titleStart = text.indexOf("<p>") + 3; 840 var titleEnd = text.indexOf("</p>"); 841 var title = text.substring(titleStart, titleEnd); 842 } 843 else if (ajax.readyState == 4) 844 { 845 page.failed = true; 763 var url = href + "?ilt=" + template.replace(" ", "%20"); 764 $.ajax(url) 765 .success(function(text) 766 { 767 var hrefStart = text.indexOf("src=\"") + 5; 768 if(hrefStart == -1) 769 { 770 page.isLoading = false; 771 page.noImage = true; 772 $(page.image).attr("src", gs.imageURLs.blank); 773 return; 774 } 775 var hrefEnd = text.indexOf("\"", hrefStart); 776 var href = text.substring(hrefStart, hrefEnd); 777 778 var image = $("<img>"); 779 image.load(function() 780 { 781 $(page.link).html(""); 782 $(page.link).append(image); 783 page.isLoading = false; 784 page.imageLoaded = true; 785 }); 786 image.error(function() 787 { 846 788 if(!attemptNumber || attemptNumber < 3) 847 789 { … … 850 792 else 851 793 { 852 var image = document.createElement("IMG");853 image.setAttribute("src", gs.imageURLs.blank);854 page.link.innerHTML = "";855 page.link.appendChild(image);856 794 page.isLoading = false; 857 795 page.noImage = true; 796 image.attr("src", gs.imageURLs.blank); 858 797 } 859 } 860 } 861 ajax.send(); 798 }); 799 image.attr("src", href); 800 801 var titleStart = text.indexOf("<p>") + 3; 802 var titleEnd = text.indexOf("</p>"); 803 var title = text.substring(titleStart, titleEnd); 804 }) 805 .error(function() 806 { 807 page.failed = true; 808 if(!attemptNumber || attemptNumber < 3) 809 { 810 setTimeout(function(){getImage(page, ((!attemptNumber) ? 1 : attemptNumber + 1));}, 500); 811 } 812 else 813 { 814 var image = document.createElement("IMG"); 815 image.setAttribute("src", gs.imageURLs.blank); 816 page.link.innerHTML = ""; 817 page.link.appendChild(image); 818 page.isLoading = false; 819 page.noImage = true; 820 } 821 }); 862 822 } 863 823 864 824 var startCheckFunction = function() 865 825 { 866 var checkFunction = function() 867 { 868 var widgetLeft = _mainDiv.scrollLeft; 869 var widgetRight = _mainDiv.clientWidth + _mainDiv.scrollLeft; 870 871 var visiblePages = new Array(); 872 for(var i = 0; i < _links.length; i++) 873 { 874 var current = _links[i].cell; 875 var currentLeft = current.offsetLeft; 876 var currentRight = currentLeft + current.clientWidth; 877 if(currentRight > widgetLeft && currentLeft < widgetRight) 878 { 879 visiblePages.push(_links[i]); 880 } 881 } 882 883 for(var i = 0; i < visiblePages.length; i++) 884 { 885 var page = visiblePages[i]; 886 if(!page || page.imageLoaded || page.noImage || page.isLoading) 887 { 888 continue; 826 var checkFunction = function(forced) 827 { 828 //Don't bother checking if we haven't scrolled very far 829 if(Math.abs(_mainDiv.scrollLeft() - _prevScroll) > 100 || forced) 830 { 831 _prevScroll = _mainDiv.scrollLeft(); 832 _checking = true; 833 var widgetLeft = _mainDiv.offset().left; 834 var widgetRight = widgetLeft + _mainDiv.width(); 835 836 var visiblePages = new Array(); 837 for(var i = 0; i < _links.length; i++) 838 { 839 var current = _links[i].cell; 840 var currentLeft = current.offset().left; 841 var currentRight = currentLeft + current.width(); 842 843 if(currentRight > widgetLeft && currentLeft < widgetRight) 844 { 845 visiblePages.push(_links[i]); 846 } 889 847 } 890 848 891 page.isLoading = true; 892 getImage(page); 893 } 894 } 895 896 checkFunction(); 897 setInterval(checkFunction, 1000); 849 for(var i = 0; i < visiblePages.length; i++) 850 { 851 var page = visiblePages[i]; 852 if(!page || page.imageLoaded || page.noImage || page.isLoading) 853 { 854 continue; 855 } 856 857 page.isLoading = true; 858 getImage(page); 859 } 860 _checking = false; 861 } 862 } 863 864 setTimeout(checkFunction, 250); 865 setInterval(function(){checkFunction(true)}, 2000); 866 _mainDiv.scroll(checkFunction); 898 867 } 899 868 … … 904 873 for(var i = 0; i < _links.length; i++) 905 874 { 906 var col = document.createElement("TD");907 _linkRow.append Child(col);908 col. setAttribute("class","pageSliderCol");875 var col = $("<td>"); 876 _linkRow.append(col); 877 col.addClass("pageSliderCol"); 909 878 _links[i].cell = col; 910 879 911 var link = document.createElement("A");912 col.append Child(link);880 var link = $("<a>"); 881 col.append(link); 913 882 _links[i].link = link; 914 var href = _links[i].getAttribute("href");915 link. setAttribute("href", href.replace(/\)/, ", 0, true)"));883 var href = $(_links[i]).attr("href"); 884 link.attr("href", href.replace(/\)/, ", 0, true)")); 916 885 917 886 if(!_linkCellMap[href]) … … 921 890 _linkCellMap[href].push(_links[i]); 922 891 923 var image = document.createElement("IMG"); 924 link.appendChild(image); 925 image.setAttribute("src", gs.imageURLs.loading); 892 var loadingText = $("<p>Loading image</p>"); 893 link.append(loadingText); 894 895 var image = $("<img>"); 896 link.append(image); 897 image.attr("src", gs.imageURLs.loading); 926 898 _links[i].image = image; 927 899 928 var title = _links[i].innerHTML;900 var title = $(_links[i]).html(); 929 901 if(title.search(/^[^ ]+ [^ ]+$/) != -1) 930 902 { … … 938 910 _titles.push([title, _links[i]]); 939 911 940 var text = document.createTextNode(title); 941 col.appendChild(document.createElement("BR")); 942 col.appendChild(text); 912 col.append($("<br>")); 913 col.append(title); 943 914 } 944 915 … … 952 923 function swapHighlight(imageClicked) 953 924 { 954 var hlCheckbox = document.getElementById("highlightOption");925 var hlCheckbox = $("#highlightOption"); 955 926 956 927 if(imageClicked) … … 961 932 var from; 962 933 var to; 963 if(hlCheckbox. checked)934 if(hlCheckbox.attr("checked")) 964 935 { 965 936 from = "noTermHighlight"; … … 971 942 to = "noTermHighlight"; 972 943 } 973 974 var spans = document.getElementsByTagName("span"); 975 for(var i = 0; i < spans.length; i++) 976 { 977 var currentSpan = spans[i]; 978 if(currentSpan.getAttribute("class") == from) 979 { 980 currentSpan.setAttribute("class", to); 981 } 982 } 944 945 var spans = $("span").each(function() 946 { 947 if($(this).hasClass(from)) 948 { 949 $(this).removeClass(from); 950 $(this).addClass(to); 951 } 952 }); 983 953 } 984 954 … … 997 967 function hideText() 998 968 { 999 var textDiv = document.getElementById("gs-document-text"); 1000 textDiv.style.visibility = "hidden"; 969 $("#gs-document-text").css("visibility", "hidden"); 1001 970 } 1002 971 1003 972 function showText() 1004 973 { 1005 var textDiv = document.getElementById("gs-document-text"); 1006 textDiv.style.visibility = "visible"; 974 $("#gs-document-text").css("visibility", "visible"); 1007 975 } 1008 976 1009 977 function hideBook() 1010 978 { 1011 var bookDiv = document.getElementById("bookdiv"); 1012 bookDiv.style.visibility = "hidden"; 1013 bookDiv.style.height = "0px"; 1014 1015 var bookObject = document.getElementById("bookObject"); 1016 bookObject.style.visibility = "hidden"; 1017 bookObject.style.height = "0px"; 1018 1019 var bookEmbed = document.getElementById("bookEmbed"); 1020 bookEmbed.style.visibility = "hidden"; 1021 bookEmbed.style.height = "0px"; 979 $("#bookDiv, #bookObject, #bookEmbed").css({"visibility": "hidden", "height": "0px"}); 1022 980 } 1023 981 1024 982 function showBook() 1025 983 { 1026 var bookDiv = document.getElementById("bookdiv"); 1027 bookDiv.style.visibility = "visible"; 1028 bookDiv.style.height = "600px"; 1029 1030 var bookObject = document.getElementById("bookObject"); 1031 bookObject.style.visibility = "visible"; 1032 bookObject.style.height = "600px"; 1033 1034 var bookEmbed = document.getElementById("bookEmbed"); 1035 bookEmbed.style.visibility = "visible"; 1036 bookEmbed.style.height = "600px"; 984 $("#bookDiv, #bookObject, #bookEmbed").css({"visibility": "visible", "height": "600px"}); 1037 985 } 1038 986 1039 987 function swapLinkJavascript(rbOn) 1040 988 { 1041 var option = document.getElementById("rbOption");1042 var optionImage = document.getElementById("rbOptionImage");989 var option = $("#rbOption"); 990 var optionImage = $("#rbOptionImage"); 1043 991 1044 992 if(rbOn) 1045 993 { 1046 option. setAttribute("onclick", "hideText(); showBook(); swapLinkJavascript(false);");1047 optionImage. setAttribute("onclick", "hideText(); showBook(); swapLinkJavascript(false);");994 option.attr("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 995 optionImage.attr("onclick", "hideText(); showBook(); swapLinkJavascript(false);"); 1048 996 $(option).attr("checked", false); 1049 997 } 1050 998 else 1051 999 { 1052 option. setAttribute("onclick", "hideBook(); showText(); swapLinkJavascript(true);");1053 optionImage. setAttribute("onclick", "hideBook(); showText(); swapLinkJavascript(true);");1000 option.attr("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 1001 optionImage.attr("onclick", "hideBook(); showText(); swapLinkJavascript(true);"); 1054 1002 $(option).attr("checked", true); 1055 1003 } 1056 }1057 1058 //Helper function to create param elements1059 function createParam(name, value)1060 {1061 var param = document.createElement("PARAM");1062 param.setAttribute("name", name);1063 param.setAttribute("value", value);1064 return param;1065 1004 } 1066 1005 … … 1096 1035 flash_plug_html += ' type="application/x-shockwave-flash" width="70%" />\n'; 1097 1036 flash_plug_html += '</OBJECT>\n'; 1098 var flash_div = document.getElementById("bookdiv"); 1099 flash_div.innerHTML = flash_plug_html; 1100 } 1037 $("#bookdiv").html(flash_plug_html); 1038 } 1039 1040 /************************ 1041 * METADATA EDIT SCRIPTS * 1042 ************************/ 1101 1043 1102 1044 function addEditMetadataLink(cell) 1103 1045 { 1104 var id = cell.getAttribute("id").substring(6); 1105 var metaTable = document.getElementById("meta" + id); 1106 1107 var row = cell.parentNode; 1108 var newCell = document.createElement("TD"); 1109 newCell.setAttribute("style", "font-size:0.7em; padding:0px 10px"); 1110 newCell.setAttribute("class", "editMetadataButton"); 1111 1112 var linkSpan = document.createElement("SPAN"); 1113 linkSpan.setAttribute("class", "ui-state-default ui-corner-all"); 1114 linkSpan.setAttribute("style", "padding: 2px; float:left;"); 1115 1116 var linkLabel = document.createElement("SPAN"); 1117 linkLabel.innerHTML = "edit metadata"; 1046 cell = $(cell); 1047 var id = cell.attr("id").substring(6); 1048 var metaTable = gs.jqGet("meta" + id); 1049 1050 var row = cell.parent(); 1051 var newCell = $("<td>", {"style": "font-size:0.7em; padding:0px 10px", "class": "editMetadataButton"}); 1052 var linkSpan = $("<span>", {"class": "ui-state-default ui-corner-all", "style": "padding: 2px; float:left;"}); 1053 1054 var linkLabel = $("<span>edit metadata</span>"); 1055 var linkIcon = $("<span>", {"class": "ui-icon ui-icon-folder-collapsed"}); 1056 newCell.linkIcon = linkIcon; 1118 1057 newCell.linkLabel = linkLabel; 1119 var linkIcon = document.createElement("SPAN"); 1120 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 1121 newCell.linkIcon = linkIcon; 1122 1123 var uList = document.createElement("UL"); 1124 var labelItem = document.createElement("LI"); 1125 var iconItem = document.createElement("LI"); 1126 uList.appendChild(iconItem); 1127 uList.appendChild(labelItem); 1128 labelItem.appendChild(linkLabel); 1129 iconItem.appendChild(linkIcon); 1130 1131 uList.setAttribute("style", "outline: 0 none; margin:0px; padding:0px;"); 1132 labelItem.setAttribute("style", "float:left; list-style:none outside none;"); 1133 iconItem.setAttribute("style", "float:left; list-style:none outside none;"); 1134 1135 var newLink = document.createElement("A"); 1136 newLink.setAttribute("href", "javascript:;"); 1137 newLink.onclick = function() 1138 { 1139 if(metaTable.style.display == "none") 1140 { 1141 linkLabel.innerHTML = "hide metadata"; 1142 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-open"); 1143 metaTable.style.display = "block"; 1144 metaTable.metaNameField.style.display = "inline"; 1145 metaTable.addRowButton.style.display = "inline"; 1058 1059 var uList = $("<ul>", {"style": "outline: 0 none; margin:0px; padding:0px;"}); 1060 var labelItem = $("<li>", {"style": "float:left; list-style:none outside none;"}); 1061 var iconItem = $("<li>", {"style": "float:left; list-style:none outside none;"}); 1062 1063 uList.append(iconItem); 1064 uList.append(labelItem); 1065 labelItem.append(linkLabel); 1066 iconItem.append(linkIcon); 1067 1068 var newLink = $("<a>", {"href": "javascript:;"}); 1069 newLink.click(function() 1070 { 1071 if(metaTable.css("display") == "none") 1072 { 1073 linkLabel.html("hide metadata"); 1074 linkIcon.attr("class", "ui-icon ui-icon-folder-open"); 1075 metaTable.css("display", "block"); 1076 metaTable.metaNameField.css("display", "inline"); 1077 metaTable.addRowButton.css("display", "inline"); 1146 1078 } 1147 1079 else 1148 1080 { 1149 linkLabel.innerHTML = "edit metadata"; 1150 linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 1151 metaTable.style.display = "none"; 1152 metaTable.metaNameField.style.display = "none"; 1153 metaTable.addRowButton.style.display = "none"; 1154 } 1155 } 1156 newLink.appendChild(uList); 1157 linkSpan.appendChild(newLink); 1158 newCell.appendChild(linkSpan); 1159 row.appendChild(newCell); 1081 linkLabel.html("edit metadata"); 1082 linkIcon.attr("class", "ui-icon ui-icon-folder-collapsed"); 1083 metaTable.css("display", "none"); 1084 metaTable.metaNameField.css("display", "none"); 1085 metaTable.addRowButton.css("display", "none"); 1086 } 1087 }); 1088 1089 newLink.append(uList); 1090 linkSpan.append(newLink); 1091 newCell.append(linkSpan); 1092 row.append(newCell); 1160 1093 1161 1094 addFunctionalityToTable(metaTable); 1162 metaTable.metaNameField. style.display = "none";1163 metaTable.addRowButton. style.display = "none";1095 metaTable.metaNameField.css("display", "none"); 1096 metaTable.addRowButton.css("display", "none"); 1164 1097 } 1165 1098 … … 1168 1101 if(visible) 1169 1102 { 1170 document.getElementById("editContentButton").innerHTML = "Hide editor";1103 $("#editContentButton").html("Hide editor"); 1171 1104 } 1172 1105 else 1173 1106 { 1174 document.getElementById("editContentButton").innerHTML = "Edit content"; 1175 } 1176 1177 var saveButton = document.getElementById("saveButton"); 1178 var metadataListLabel = document.getElementById("metadataListLabel"); 1179 var metadataList = document.getElementById("metadataSetList"); 1107 $("#editContentButton").html("Edit content"); 1108 } 1180 1109 1181 1110 var visibility = (visible ? "" : "none"); 1182 saveButton.style.display = visibility; 1183 metadataListLabel.style.display = visibility; 1184 metadataList.style.display = visibility; 1185 1186 var buttons = gs.functions.getElementsByClassName("editMetadataButton"); 1187 1188 for(var i = 0; i < buttons.length; i++) 1189 { 1190 buttons[i].style.display = visibility; 1191 buttons[i].linkLabel.innerHTML = "edit metadata"; 1192 buttons[i].linkIcon.setAttribute("class", "ui-icon ui-icon-folder-collapsed"); 1193 } 1194 1195 var tables = document.getElementsByTagName("TABLE"); 1196 for(var i = 0; i < tables.length; i++) 1197 { 1198 var currentTable = tables[i]; 1199 if(currentTable.getAttribute("id") && currentTable.getAttribute("id").search(/^meta/) != -1) 1200 { 1201 currentTable.style.display = "none"; 1202 currentTable.metaNameField.style.display = "none"; 1203 currentTable.addRowButton.style.display = "none"; 1204 } 1205 } 1111 $("#saveButton, #metadataListLabel, #metadataSetList").css("display", visibility); 1112 1113 $(".editMetadataButton").each(function() 1114 { 1115 $(this).css("display", visibility); 1116 $(this.linkLabel).html("edit metadata"); 1117 $(this.linkIcon).attr("class", "ui-icon ui-icon-folder-collapsed"); 1118 }); 1119 1120 $("table").each(function() 1121 { 1122 if($(this).attr("id") && $(this).attr("id").search(/^meta/) != -1) 1123 { 1124 $(this).css("display", "none"); 1125 $(this.metaNameField).css("display", "none"); 1126 $(this.addRowButton).css("display", "none"); 1127 } 1128 }); 1206 1129 } 1207 1130 1208 1131 function readyPageForEditing() 1209 1132 { 1210 if( document.getElementById("metadataSetList"))1211 { 1212 var setList = document.getElementById("metadataSetList");1213 if(!setList. style.display || setList.style.display== "")1133 if($("#metadataSetList").length) 1134 { 1135 var setList = $("#metadataSetList"); 1136 if(!setList.css("display") || setList.css("display") == "") 1214 1137 { 1215 1138 setEditingFeaturesVisible(false); … … 1222 1145 } 1223 1146 1224 document.getElementById("editContentButton").innerHTML = "Hide Editor"; 1225 1226 var textDivs = gs.functions.getElementsByClassName("sectionText"); 1227 for(var i = 0; i < textDivs.length; i++) 1228 { 1229 de.doc.registerEditSection(textDivs[i]); 1230 } 1231 1232 var editBar = document.getElementById("editBarLeft"); 1233 var saveButton = document.createElement("BUTTON"); 1234 saveButton.onclick = save; 1235 saveButton.innerHTML = "Save changes"; 1236 saveButton.setAttribute("id", "saveButton"); 1237 editBar.appendChild(saveButton); 1238 1239 var visibleMetadataList = document.createElement("SELECT"); 1240 var allOption = document.createElement("OPTION"); 1241 allOption.innerHTML = "All"; 1242 visibleMetadataList.appendChild(allOption); 1243 visibleMetadataList.setAttribute("id", "metadataSetList"); 1244 var metadataListLabel = document.createElement("SPAN"); 1245 metadataListLabel.setAttribute("id", "metadataListLabel"); 1246 metadataListLabel.setAttribute("style", "margin-left:20px;"); 1247 metadataListLabel.innerHTML = "Visible metadata: "; 1248 editBar.appendChild(metadataListLabel); 1249 editBar.appendChild(visibleMetadataList); 1250 visibleMetadataList.onchange = onVisibleMetadataSetChange; 1251 1252 var statusBarDiv = document.createElement("DIV"); 1253 editBar.appendChild(statusBarDiv); 1254 _statusBar = new StatusBar(statusBarDiv); 1255 1256 var titleDivs = gs.functions.getElementsByClassName("sectionTitle"); 1147 $("#editContentButton").html("Hide Editor"); 1148 1149 var textDivs = $(".sectionText").each(function(){de.doc.registerEditSection(this);}); 1150 1151 var editBar = $("#editBarLeft"); 1152 var saveButton = $("<button>", {"id": "saveButton"}); 1153 saveButton.click(save); 1154 saveButton.html("Save changes"); 1155 editBar.append(saveButton); 1156 1157 var visibleMetadataList = $("<select>", {"id": "metadataSetList"}); 1158 var allOption = $("<option>All</option>"); 1159 visibleMetadataList.append(allOption); 1160 1161 var metadataListLabel = $("<span>", {"id": "metadataListLabel", "style": "margin-left:20px;"}); 1162 metadataListLabel.html("Visible metadata: "); 1163 editBar.append(metadataListLabel); 1164 editBar.append(visibleMetadataList); 1165 visibleMetadataList.change(onVisibleMetadataSetChange); 1166 1167 var statusBarDiv = $("<div>"); 1168 editBar.append(statusBarDiv); 1169 _statusBar = new StatusBar(statusBarDiv[0]); 1170 1171 var titleDivs = $(".sectionTitle"); 1257 1172 for(var i = 0; i < titleDivs.length; i++) 1258 1173 { … … 1262 1177 _baseURL = gs.xsltParams.library_name; 1263 1178 } 1179 1180 /*************** 1181 * MENU SCRIPTS * 1182 ***************/ 1264 1183 1265 1184 function floatMenu(enabled) … … 1300 1219 } 1301 1220 1302 var ajax = gs.functions.ajaxRequest(); 1303 ajax.open("GET", gs.xsltParams.library_name + "?a=d&ftoc=" + (enabled ? "1" : "0") + "&c=" + gs.cgiParams.c); 1304 ajax.send(); 1305 } 1221 var url = gs.xsltParams.library_name + "?a=d&ftoc=" + (enabled ? "1" : "0") + "&c=" + gs.cgiParams.c; 1222 1223 $.ajax(url); 1224 } 1225 1226 /******************** 1227 * SLIDESHOW SCRIPTS * 1228 ********************/ 1306 1229 1307 1230 function showSlideShow() -
main/trunk/greenstone3/web/interfaces/default/js/documentmaker_scripts_util.js
r25546 r26397 631 631 function addFunctionalityToTable(table) 632 632 { 633 var rows = table.getElementsByTagName("TR"); 634 for(var i = 0; i < rows.length; i++) 635 { 636 var cells = rows[i].getElementsByTagName("TD"); 637 var metadataName = cells[0].innerHTML; 633 table.find("tr").each(function() 634 { 635 var cells = $(this).find("td"); 636 var metadataName = $(cells[0]).html(); 638 637 639 638 if(metadataName.indexOf(".") != -1) … … 655 654 _metadataSetList.push(metadataSetName); 656 655 657 var metadataSetList = document.getElementById("metadataSetList");658 var newOption = document.createElement("OPTION");659 newOption. innerHTML = metadataSetName;660 metadataSetList.append Child(newOption);656 var metadataSetList = $("#metadataSetList"); 657 var newOption = $("<option>"); 658 newOption.html(metadataSetName); 659 metadataSetList.append(newOption); 661 660 } 662 661 } 663 662 664 663 asyncRegisterEditSection(cells[1]); 665 666 addRemoveLinkToRow(rows[i]); 667 } 668 669 var metaNameField = document.createElement("INPUT"); 670 metaNameField.setAttribute("type", "text"); 671 insertAfter(metaNameField, table); 664 addRemoveLinkToRow(this); 665 }); 666 667 var metaNameField = $("<input>", {"type": "text"}); 668 table.after(metaNameField); 672 669 table.metaNameField = metaNameField; 673 670 674 var addRowButton = document.createElement("BUTTON");675 addRowButton. innerHTML = gs.text.dse.add_new_metadata;676 addRowButton. onclick =function()671 var addRowButton = $("<button>"); 672 addRowButton.html(gs.text.dse.add_new_metadata); 673 addRowButton.click(function() 677 674 { 678 var name = metaNameField.val ue;675 var name = metaNameField.val(); 679 676 if(!name || name == "") 680 677 { … … 683 680 } 684 681 685 var newRow = document.createElement("TR"); 686 var nameCell = document.createElement("TD"); 687 var valueCell = document.createElement("TD"); 688 nameCell.setAttribute("class", "metaTableCellName"); 689 nameCell.innerHTML = name; 690 valueCell.setAttribute("class", "metaTableCell"); 691 692 newRow.appendChild(nameCell); 693 newRow.appendChild(valueCell); 682 var newRow = $("<tr>"); 683 var nameCell = $("<td>" + name + "</td>"); 684 nameCell.attr("class", "metaTableCellName"); 685 var valueCell = $("<td>", {"class": "metaTableCell"}); 686 687 newRow.append(nameCell); 688 newRow.append(valueCell); 694 689 addRemoveLinkToRow(newRow); 695 table.append Child(newRow);690 table.append(newRow); 696 691 697 692 var undo = new Array(); … … 702 697 703 698 //Threading this function here probably isn't necessary like the other times it is called 704 de.doc.registerEditSection(valueCell );705 } ;699 de.doc.registerEditSection(valueCell[0]); 700 }); 706 701 table.addRowButton = addRowButton; 707 insertAfter(addRowButton, metaNameField);702 metaNameField.after(addRowButton); 708 703 } 709 704 710 705 function addRemoveLinkToRow(row) 711 706 { 712 var newCell = document.createElement("TD"); 713 var removeLink = document.createElement("A"); 714 removeLink.innerHTML = "remove"; 715 removeLink.setAttribute("href", "javascript:;"); 716 removeLink.onclick = function() 707 var newCell = $("<td>"); 708 var removeLink = $("<a>remove</a>", {"href": "javascript:;"}); 709 removeLink.click(function() 717 710 { 718 711 var undo = new Array(); … … 723 716 _undoOperations.push(undo); 724 717 _deletedMetadata.push(row); 725 row.style.display = "none"; 726 } 727 newCell.appendChild(removeLink); 728 newCell.setAttribute("class", "metaTableCell"); 729 newCell.setAttribute("style", "font-size:0.6em; padding-left: 3px; padding-right: 3px;"); 730 row.appendChild(newCell); 718 row.css("display", "none"); 719 }); 720 newCell.append(removeLink); 721 newCell.attr({"class": "metaTableCell", "style": "font-size:0.6em; padding-left: 3px; padding-right: 3px;"}); 722 $(row).append(newCell); 731 723 } 732 724
Note:
See TracChangeset
for help on using the changeset viewer.