Ignore:
Timestamp:
10/31/05 05:33:41 (14 years ago)
Author:
mokhet
Message:

more ; fixed (a few were missing, a lot were used with no reason) for ticket #385

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/Linker/dTree/dtree.js

    r377 r419  
    5353  this._p; 
    5454 
    55 }; 
     55} 
    5656 
    5757 
     
    8181    inOrder                                     : false 
    8282 
    83   } 
     83  }; 
    8484 
    8585  this.icon = { 
     
    129129  this.completed = false; 
    130130 
    131 }; 
     131} 
    132132 
    133133 
     
    388388    node._hc = ids[node.id]._hc; 
    389389  } 
     390}; 
     391 
     392// Returns the selected node 
     393 
     394dTree.prototype.getSelected = function() { 
     395 
     396  var sn = this.getCookie('cs' + this.obj); 
     397 
     398  return (sn) ? sn : null; 
     399 
     400}; 
     401 
     402 
     403 
     404// Highlights the selected node 
     405 
     406dTree.prototype.s = function(id) { 
     407 
     408  if (!this.config.useSelection) return; 
     409 
     410  var cn = this.aNodes[id]; 
     411 
     412  if (cn._hc && !this.config.folderLinks) return; 
     413 
     414  if (this.selectedNode != id) { 
     415 
     416    if (this.selectedNode || this.selectedNode==0) { 
     417 
     418      eOld = document.getElementById("s" + this.obj + this.selectedNode); 
     419 
     420      eOld.className = "node"; 
     421 
     422    } 
     423 
     424    eNew = document.getElementById("s" + this.obj + id); 
     425 
     426    eNew.className = "nodeSel"; 
     427 
     428    this.selectedNode = id; 
     429 
     430    if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id); 
     431 
     432  } 
     433 
     434}; 
     435 
     436 
     437 
     438// Toggle Open or close 
     439 
     440dTree.prototype.o = function(id) { 
     441 
     442  var cn = this.aNodes[id]; 
     443 
     444  this.nodeStatus(!cn._io, id, cn._ls); 
     445 
     446  cn._io = !cn._io; 
     447 
     448  if (this.config.closeSameLevel) this.closeLevel(cn); 
     449 
     450  if (this.config.useCookies) this.updateCookie(); 
     451 
     452}; 
     453 
     454 
     455 
     456// Open or close all nodes 
     457 
     458dTree.prototype.oAll = function(status) { 
     459 
     460  for (var n=0; n<this.aNodes.length; n++) { 
     461 
     462    if (this.aNodes[n]._hc && this.aNodes[n].pid != this.root.id) { 
     463 
     464      this.nodeStatus(status, n, this.aNodes[n]._ls) 
     465 
     466      this.aNodes[n]._io = status; 
     467 
     468    } 
     469 
     470  } 
     471 
     472  if (this.config.useCookies) this.updateCookie(); 
     473 
     474}; 
     475 
     476 
     477 
     478// Opens the tree to a specific node 
     479 
     480dTree.prototype.openTo = function(nId, bSelect, bFirst) { 
     481 
     482  if (!bFirst) { 
     483 
     484    for (var n=0; n<this.aNodes.length; n++) { 
     485 
     486      if (this.aNodes[n].id == nId) { 
     487 
     488        nId=n; 
     489 
     490        break; 
     491 
     492      } 
     493 
     494    } 
     495 
     496  } 
     497 
     498  var cn=this.aNodes[nId]; 
     499 
     500  if (cn.pid==this.root.id || !cn._p) return; 
     501 
     502  cn._io = true; 
     503 
     504  cn._is = bSelect; 
     505 
     506  if (this.completed && cn._hc) this.nodeStatus(true, cn._ai, cn._ls); 
     507 
     508  if (this.completed && bSelect) this.s(cn._ai); 
     509 
     510  else if (bSelect) this._sn=cn._ai; 
     511 
     512  this.openTo(cn._p._ai, false, true); 
     513 
     514}; 
     515 
     516 
     517 
     518// Closes all nodes on the same level as certain node 
     519 
     520dTree.prototype.closeLevel = function(node) { 
     521 
     522  for (var n=0; n<this.aNodes.length; n++) { 
     523 
     524    if (this.aNodes[n].pid == node.pid && this.aNodes[n].id != node.id && this.aNodes[n]._hc) { 
     525 
     526      this.nodeStatus(false, n, this.aNodes[n]._ls); 
     527 
     528      this.aNodes[n]._io = false; 
     529 
     530      this.closeAllChildren(this.aNodes[n]); 
     531 
     532    } 
     533 
     534  } 
     535 
    390536} 
    391537 
    392 // Returns the selected node 
    393  
    394 dTree.prototype.getSelected = function() { 
    395  
    396   var sn = this.getCookie('cs' + this.obj); 
    397  
    398   return (sn) ? sn : null; 
    399  
    400 }; 
    401  
    402  
    403  
    404 // Highlights the selected node 
    405  
    406 dTree.prototype.s = function(id) { 
    407  
    408   if (!this.config.useSelection) return; 
    409  
    410   var cn = this.aNodes[id]; 
    411  
    412   if (cn._hc && !this.config.folderLinks) return; 
    413  
    414   if (this.selectedNode != id) { 
    415  
    416     if (this.selectedNode || this.selectedNode==0) { 
    417  
    418       eOld = document.getElementById("s" + this.obj + this.selectedNode); 
    419  
    420       eOld.className = "node"; 
    421  
    422     } 
    423  
    424     eNew = document.getElementById("s" + this.obj + id); 
    425  
    426     eNew.className = "nodeSel"; 
    427  
    428     this.selectedNode = id; 
    429  
    430     if (this.config.useCookies) this.setCookie('cs' + this.obj, cn.id); 
    431  
    432   } 
    433  
    434 }; 
    435  
    436  
    437  
    438 // Toggle Open or close 
    439  
    440 dTree.prototype.o = function(id) { 
    441  
    442   var cn = this.aNodes[id]; 
    443  
    444   this.nodeStatus(!cn._io, id, cn._ls); 
    445  
    446   cn._io = !cn._io; 
    447  
    448   if (this.config.closeSameLevel) this.closeLevel(cn); 
    449  
    450   if (this.config.useCookies) this.updateCookie(); 
    451  
    452 }; 
    453  
    454  
    455  
    456 // Open or close all nodes 
    457  
    458 dTree.prototype.oAll = function(status) { 
     538 
     539 
     540// Closes all children of a node 
     541 
     542dTree.prototype.closeAllChildren = function(node) { 
    459543 
    460544  for (var n=0; n<this.aNodes.length; n++) { 
    461545 
    462     if (this.aNodes[n]._hc && this.aNodes[n].pid != this.root.id) { 
    463  
    464       this.nodeStatus(status, n, this.aNodes[n]._ls) 
    465  
    466       this.aNodes[n]._io = status; 
    467  
    468     } 
    469  
    470   } 
    471  
    472   if (this.config.useCookies) this.updateCookie(); 
    473  
    474 }; 
    475  
    476  
    477  
    478 // Opens the tree to a specific node 
    479  
    480 dTree.prototype.openTo = function(nId, bSelect, bFirst) { 
    481  
    482   if (!bFirst) { 
    483  
    484     for (var n=0; n<this.aNodes.length; n++) { 
    485  
    486       if (this.aNodes[n].id == nId) { 
    487  
    488         nId=n; 
    489  
    490         break; 
    491  
    492       } 
    493  
    494     } 
    495  
    496   } 
    497  
    498   var cn=this.aNodes[nId]; 
    499  
    500   if (cn.pid==this.root.id || !cn._p) return; 
    501  
    502   cn._io = true; 
    503  
    504   cn._is = bSelect; 
    505  
    506   if (this.completed && cn._hc) this.nodeStatus(true, cn._ai, cn._ls); 
    507  
    508   if (this.completed && bSelect) this.s(cn._ai); 
    509  
    510   else if (bSelect) this._sn=cn._ai; 
    511  
    512   this.openTo(cn._p._ai, false, true); 
    513  
    514 }; 
    515  
    516  
    517  
    518 // Closes all nodes on the same level as certain node 
    519  
    520 dTree.prototype.closeLevel = function(node) { 
     546    if (this.aNodes[n].pid == node.id && this.aNodes[n]._hc) { 
     547 
     548      if (this.aNodes[n]._io) this.nodeStatus(false, n, this.aNodes[n]._ls); 
     549 
     550      this.aNodes[n]._io = false; 
     551 
     552      this.closeAllChildren(this.aNodes[n]); 
     553 
     554    } 
     555 
     556  } 
     557 
     558} 
     559 
     560 
     561 
     562// Change the status of a node(open or closed) 
     563 
     564dTree.prototype.nodeStatus = function(status, id, bottom) { 
     565 
     566  eDiv  = document.getElementById('d' + this.obj + id); 
     567 
     568  eJoin = document.getElementById('j' + this.obj + id); 
     569 
     570  if (this.config.useIcons) { 
     571 
     572    eIcon       = document.getElementById('i' + this.obj + id); 
     573 
     574    eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon; 
     575 
     576  } 
     577 
     578  eJoin.src = (this.config.useLines)? 
     579 
     580  ((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)): 
     581 
     582  ((status)?this.icon.nlMinus:this.icon.nlPlus); 
     583 
     584  eDiv.style.display = (status) ? 'block': 'none'; 
     585 
     586}; 
     587 
     588 
     589 
     590 
     591 
     592// [Cookie] Clears a cookie 
     593 
     594dTree.prototype.clearCookie = function() { 
     595 
     596  var now = new Date(); 
     597 
     598  var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24); 
     599 
     600  this.setCookie('co'+this.obj, 'cookieValue', yesterday); 
     601 
     602  this.setCookie('cs'+this.obj, 'cookieValue', yesterday); 
     603 
     604}; 
     605 
     606 
     607 
     608// [Cookie] Sets value in a cookie 
     609 
     610dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) { 
     611 
     612  document.cookie = 
     613 
     614    escape(cookieName) + '=' + escape(cookieValue) 
     615 
     616    + (expires ? '; expires=' + expires.toGMTString() : '') 
     617 
     618    + (path ? '; path=' + path : '') 
     619 
     620    + (domain ? '; domain=' + domain : '') 
     621 
     622    + (secure ? '; secure' : ''); 
     623 
     624}; 
     625 
     626 
     627 
     628// [Cookie] Gets a value from a cookie 
     629 
     630dTree.prototype.getCookie = function(cookieName) { 
     631 
     632  var cookieValue = ''; 
     633 
     634  var posName = document.cookie.indexOf(escape(cookieName) + '='); 
     635 
     636  if (posName != -1) { 
     637 
     638    var posValue = posName + (escape(cookieName) + '=').length; 
     639 
     640    var endPos = document.cookie.indexOf(';', posValue); 
     641 
     642    if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos)); 
     643 
     644    else cookieValue = unescape(document.cookie.substring(posValue)); 
     645 
     646  } 
     647 
     648  return (cookieValue); 
     649 
     650}; 
     651 
     652 
     653 
     654// [Cookie] Returns ids of open nodes as a string 
     655 
     656dTree.prototype.updateCookie = function() { 
     657 
     658  var str = ''; 
    521659 
    522660  for (var n=0; n<this.aNodes.length; n++) { 
    523661 
    524     if (this.aNodes[n].pid == node.pid && this.aNodes[n].id != node.id && this.aNodes[n]._hc) { 
    525  
    526       this.nodeStatus(false, n, this.aNodes[n]._ls); 
    527  
    528       this.aNodes[n]._io = false; 
    529  
    530       this.closeAllChildren(this.aNodes[n]); 
    531  
    532     } 
    533  
    534   } 
     662    if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) { 
     663 
     664      if (str) str += '.'; 
     665 
     666      str += this.aNodes[n].id; 
     667 
     668    } 
     669 
     670  } 
     671 
     672  this.setCookie('co' + this.obj, str); 
     673 
     674}; 
     675 
     676 
     677 
     678// [Cookie] Checks if a node id is in a cookie 
     679 
     680dTree.prototype.isOpen = function(id) { 
     681 
     682  var aOpen = this.getCookie('co' + this.obj).split('.'); 
     683 
     684  for (var n=0; n<aOpen.length; n++) 
     685 
     686    if (aOpen[n] == id) return true; 
     687 
     688  return false; 
     689 
     690}; 
     691 
     692 
     693 
     694// If Push and pop is not implemented by the browser 
     695 
     696if (!Array.prototype.push) { 
     697 
     698  Array.prototype.push = function array_push() { 
     699 
     700    for(var i=0;i<arguments.length;i++) 
     701 
     702      this[this.length]=arguments[i]; 
     703 
     704    return this.length; 
     705 
     706  }; 
    535707 
    536708} 
    537709 
    538  
    539  
    540 // Closes all children of a node 
    541  
    542 dTree.prototype.closeAllChildren = function(node) { 
    543  
    544   for (var n=0; n<this.aNodes.length; n++) { 
    545  
    546     if (this.aNodes[n].pid == node.id && this.aNodes[n]._hc) { 
    547  
    548       if (this.aNodes[n]._io) this.nodeStatus(false, n, this.aNodes[n]._ls); 
    549  
    550       this.aNodes[n]._io = false; 
    551  
    552       this.closeAllChildren(this.aNodes[n]); 
    553  
    554     } 
    555  
    556   } 
     710if (!Array.prototype.pop) { 
     711 
     712  Array.prototype.pop = function array_pop() { 
     713 
     714    lastElement = this[this.length-1]; 
     715 
     716    this.length = Math.max(this.length-1,0); 
     717 
     718    return lastElement; 
     719 
     720  }; 
    557721 
    558722} 
    559  
    560  
    561  
    562 // Change the status of a node(open or closed) 
    563  
    564 dTree.prototype.nodeStatus = function(status, id, bottom) { 
    565  
    566   eDiv  = document.getElementById('d' + this.obj + id); 
    567  
    568   eJoin = document.getElementById('j' + this.obj + id); 
    569  
    570   if (this.config.useIcons) { 
    571  
    572     eIcon       = document.getElementById('i' + this.obj + id); 
    573  
    574     eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon; 
    575  
    576   } 
    577  
    578   eJoin.src = (this.config.useLines)? 
    579  
    580   ((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)): 
    581  
    582   ((status)?this.icon.nlMinus:this.icon.nlPlus); 
    583  
    584   eDiv.style.display = (status) ? 'block': 'none'; 
    585  
    586 }; 
    587  
    588  
    589  
    590  
    591  
    592 // [Cookie] Clears a cookie 
    593  
    594 dTree.prototype.clearCookie = function() { 
    595  
    596   var now = new Date(); 
    597  
    598   var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24); 
    599  
    600   this.setCookie('co'+this.obj, 'cookieValue', yesterday); 
    601  
    602   this.setCookie('cs'+this.obj, 'cookieValue', yesterday); 
    603  
    604 }; 
    605  
    606  
    607  
    608 // [Cookie] Sets value in a cookie 
    609  
    610 dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) { 
    611  
    612   document.cookie = 
    613  
    614     escape(cookieName) + '=' + escape(cookieValue) 
    615  
    616     + (expires ? '; expires=' + expires.toGMTString() : '') 
    617  
    618     + (path ? '; path=' + path : '') 
    619  
    620     + (domain ? '; domain=' + domain : '') 
    621  
    622     + (secure ? '; secure' : ''); 
    623  
    624 }; 
    625  
    626  
    627  
    628 // [Cookie] Gets a value from a cookie 
    629  
    630 dTree.prototype.getCookie = function(cookieName) { 
    631  
    632   var cookieValue = ''; 
    633  
    634   var posName = document.cookie.indexOf(escape(cookieName) + '='); 
    635  
    636   if (posName != -1) { 
    637  
    638     var posValue = posName + (escape(cookieName) + '=').length; 
    639  
    640     var endPos = document.cookie.indexOf(';', posValue); 
    641  
    642     if (endPos != -1) cookieValue = unescape(document.cookie.substring(posValue, endPos)); 
    643  
    644     else cookieValue = unescape(document.cookie.substring(posValue)); 
    645  
    646   } 
    647  
    648   return (cookieValue); 
    649  
    650 }; 
    651  
    652  
    653  
    654 // [Cookie] Returns ids of open nodes as a string 
    655  
    656 dTree.prototype.updateCookie = function() { 
    657  
    658   var str = ''; 
    659  
    660   for (var n=0; n<this.aNodes.length; n++) { 
    661  
    662     if (this.aNodes[n]._io && this.aNodes[n].pid != this.root.id) { 
    663  
    664       if (str) str += '.'; 
    665  
    666       str += this.aNodes[n].id; 
    667  
    668     } 
    669  
    670   } 
    671  
    672   this.setCookie('co' + this.obj, str); 
    673  
    674 }; 
    675  
    676  
    677  
    678 // [Cookie] Checks if a node id is in a cookie 
    679  
    680 dTree.prototype.isOpen = function(id) { 
    681  
    682   var aOpen = this.getCookie('co' + this.obj).split('.'); 
    683  
    684   for (var n=0; n<aOpen.length; n++) 
    685  
    686     if (aOpen[n] == id) return true; 
    687  
    688   return false; 
    689  
    690 }; 
    691  
    692  
    693  
    694 // If Push and pop is not implemented by the browser 
    695  
    696 if (!Array.prototype.push) { 
    697  
    698   Array.prototype.push = function array_push() { 
    699  
    700     for(var i=0;i<arguments.length;i++) 
    701  
    702       this[this.length]=arguments[i]; 
    703  
    704     return this.length; 
    705  
    706   }; 
    707  
    708 }; 
    709  
    710 if (!Array.prototype.pop) { 
    711  
    712   Array.prototype.pop = function array_pop() { 
    713  
    714     lastElement = this[this.length-1]; 
    715  
    716     this.length = Math.max(this.length-1,0); 
    717  
    718     return lastElement; 
    719  
    720   }; 
    721  
    722 }; 
    723  
Note: See TracChangeset for help on using the changeset viewer.