summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js')
-rw-r--r--ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js1059
1 files changed, 0 insertions, 1059 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js
deleted file mode 100644
index 165306f2..00000000
--- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/static/fusion/raptor/js/tree/drag-drop-folder-tree.js
+++ /dev/null
@@ -1,1059 +0,0 @@
- /************************************************************************************************************
-Drag and drop folder tree
-Copyright (C) 2006 DTHMLGoodies.com, Alf Magne Kalleland
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
-written by Alf Magne Kalleland.
-
-Alf Magne Kalleland, 2006
-Owner of DHTMLgoodies.com
-
-
-************************************************************************************************************/
-
- var JSTreeObj;
- var treeUlCounter = 0;
- var nodeId = 1;
-
- /* Constructor */
- function JSDragDropTree()
- {
- var idOfTree;
- var imageFolder;
- var folderImage;
- var plusImage;
- var minusImage;
- var maximumDepth;
- var dragNode_source;
- var dragNode_parent;
- var dragNode_sourceNextSib;
- var dragNode_noSiblings;
- var ajaxObjects;
-
- var dragNode_destination;
- var floatingContainer;
- var dragDropTimer;
- var dropTargetIndicator;
- var insertAsSub;
- var indicator_offsetX;
- var indicator_offsetX_sub;
- var indicator_offsetY;
-
- this.imageFolder = imgFolder+'tree/';
- this.folderImage = 'dhtmlgoodies_folder.gif';
- this.plusImage = 'dhtmlgoodies_plus.gif';
- this.minusImage = 'dhtmlgoodies_minus.gif';
- this.maximumDepth = 6;
- var messageMaximumDepthReached;
- var messageNoRightsOnFolder;
- var filePathRenameItem;
- var filePathDeleteItem;
- var additionalRenameRequestParameters = {};
- var additionalDeleteRequestParameters = {};
-
- var renameAllowed;
- var deleteAllowed;
- var addAllowed;
- var currentlyActiveItem;
- var contextMenu;
- var currentItemToEdit; // Reference to item currently being edited(example: renamed)
- var selectedItem; // ADDED BY FARHAN
- var helpObj;
-
- this.contextMenu = false;
- this.floatingContainer = document.createElement('UL');
- this.floatingContainer.style.position = 'absolute';
- this.floatingContainer.style.display='none';
- this.floatingContainer.id = 'floatingContainer';
- this.insertAsSub = false;
- document.body.appendChild(this.floatingContainer);
- this.dragDropTimer = -1;
- this.dragNode_noSiblings = false;
- this.currentItemToEdit = false;
-
- if(document.all){
- this.indicator_offsetX = 2; // Offset position of small black lines indicating where nodes would be dropped.
- this.indicator_offsetX_sub = 4;
- this.indicator_offsetY = 2;
- }else{
- this.indicator_offsetX = 1; // Offset position of small black lines indicating where nodes would be dropped.
- this.indicator_offsetX_sub = 3;
- this.indicator_offsetY = 2;
- }
- if(navigator.userAgent.indexOf('Opera')>=0){
- this.indicator_offsetX = 2; // Offset position of small black lines indicating where nodes would be dropped.
- this.indicator_offsetX_sub = 3;
- this.indicator_offsetY = -7;
- }
-
- this.messageMaximumDepthReached = ''; // Use '' if you don't want to display a message
- this.messageNoRightsOnFolder = 'You do not have access to this folder';
-
- this.renameAllowed = true;
- this.deleteAllowed = true;
- this.addAllowed = true;
- this.currentlyActiveItem = false;
- this.filePathRenameItem = 'folderTree_updateItem.php';
- this.filePathDeleteItem = 'tree';
- this.ajaxObjects = new Array();
- this.helpObj = false;
-
- this.RENAME_STATE_BEGIN = 1;
- this.RENAME_STATE_CANCELED = 2;
- this.RENAME_STATE_REQUEST_SENDED = 3;
- this.renameState = null;
- }
-
-
- /* JSDragDropTree class */
- JSDragDropTree.prototype = {
- // {{{ addEvent()
- /**
- *
- * This function adds an event listener to an element on the page.
- *
- * @param Object whichObject = Reference to HTML element(Which object to assigne the event)
- * @param String eventType = Which type of event, example "mousemove" or "mouseup"
- * @param functionName = Name of function to execute.
- *
- * @public
- */
- addEvent : function(whichObject,eventType,functionName)
- {
- if(whichObject.attachEvent){
- whichObject['e'+eventType+functionName] = functionName;
- whichObject[eventType+functionName] = function(){whichObject['e'+eventType+functionName]( window.event );}
- whichObject.attachEvent( 'on'+eventType, whichObject[eventType+functionName] );
- } else
- whichObject.addEventListener(eventType,functionName,false);
- }
- // }}}
- ,
- // {{{ removeEvent()
- /**
- *
- * This function removes an event listener from an element on the page.
- *
- * @param Object whichObject = Reference to HTML element(Which object to assigne the event)
- * @param String eventType = Which type of event, example "mousemove" or "mouseup"
- * @param functionName = Name of function to execute.
- *
- * @public
- */
- removeEvent : function(whichObject,eventType,functionName)
- {
- if(whichObject.detachEvent){
- whichObject.detachEvent('on'+eventType, whichObject[eventType+functionName]);
- whichObject[eventType+functionName] = null;
- } else
- whichObject.removeEventListener(eventType,functionName,false);
- }
- ,
- Get_Cookie : function(name) {
- var start = document.cookie.indexOf(name+"=");
- var len = start+name.length+1;
- if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
- if (start == -1) return null;
- var end = document.cookie.indexOf(";",len);
- if (end == -1) end = document.cookie.length;
- return unescape(document.cookie.substring(len,end));
- }
- ,
- // This function has been slightly modified
- Set_Cookie : function(name,value,expires,path,domain,secure) {
- expires = expires * 60*60*24*1000;
- var today = new Date();
- var expires_date = new Date( today.getTime() + (expires) );
- var cookieString = name + "=" +escape(value) +
- ( (expires) ? ";expires=" + expires_date.toGMTString() : "") +
- ( (path) ? ";path=" + path : "") +
- ( (domain) ? ";domain=" + domain : "") +
- ( (secure) ? ";secure" : "");
- document.cookie = cookieString;
- }
- ,
- setFileNameRename : function(newFileName)
- {
- this.filePathRenameItem = newFileName;
- }
- ,
- setFileNameDelete : function(newFileName)
- {
- this.filePathDeleteItem = newFileName;
- }
- ,
- setAdditionalRenameRequestParameters : function(requestParameters)
- {
- this.additionalRenameRequestParameters = requestParameters;
- }
- ,
- setAdditionalDeleteRequestParameters : function(requestParameters)
- {
- this.additionalDeleteRequestParameters = requestParameters;
- }
- ,setRenameAllowed : function(renameAllowed)
- {
- this.renameAllowed = renameAllowed;
- }
- ,
- setDeleteAllowed : function(deleteAllowed)
- {
- this.deleteAllowed = deleteAllowed;
- }
- ,
- setAddAllowed : function(addAllowed)
- {
- this.addAllowed = addAllowed;
- }
- ,setMaximumDepth : function(maxDepth)
- {
- this.maximumDepth = maxDepth;
- }
- ,setMessageMaximumDepthReached : function(newMessage)
- {
- this.messageMaximumDepthReached = newMessage;
- }
- ,
- setImageFolder : function(path)
- {
- this.imageFolder = path;
- }
- ,
- setFolderImage : function(imagePath)
- {
- this.folderImage = imagePath;
- }
- ,
- setPlusImage : function(imagePath)
- {
- this.plusImage = imagePath;
- }
- ,
- setMinusImage : function(imagePath)
- {
- this.minusImage = imagePath;
- }
- ,
- setTreeId : function(idOfTree)
- {
- this.idOfTree = idOfTree;
- }
- ,
- expandAll : function()
- {
- var menuItems = document.getElementById(this.idOfTree).getElementsByTagName('LI');
- for(var no=0;no<menuItems.length;no++){
- var subItems = menuItems[no].getElementsByTagName('UL');
- if(subItems.length>0 && subItems[0].style.display!='block'){
- JSTreeObj.showHideNode(false,menuItems[no].id);
- }
- }
- }
- ,
- collapseAll : function()
- {
- var menuItems = document.getElementById(this.idOfTree).getElementsByTagName('LI');
- for(var no=0;no<menuItems.length;no++){
- var subItems = menuItems[no].getElementsByTagName('UL');
- if(subItems.length>0 && subItems[0].style.display=='block'){
- JSTreeObj.showHideNode(false,menuItems[no].id);
- }
- }
- JSTreeObj.showHideNode(false,menuItems[0].id);
- }
- ,
- /*
- Find top pos of a tree node
- */
- getTopPos : function(obj){
- var top = obj.offsetTop/1;
- while((obj = obj.offsetParent) != null){
- if(obj.tagName!='HTML')top += obj.offsetTop;
- }
- if(document.all)top = top/1 + 13; else top = top/1 + 4;
- return top;
- }
- ,
- /*
- Find left pos of a tree node
- */
- getLeftPos : function(obj){
- var left = obj.offsetLeft/1 + 1;
- while((obj = obj.offsetParent) != null){
- if(obj.tagName!='HTML')left += obj.offsetLeft;
- }
-
- if(document.all)left = left/1 - 2;
- return left;
- }
-
- ,
- showHideNode : function(e,inputId)
- {
- if(inputId){
- if(!document.getElementById(inputId))return;
- thisNode = document.getElementById(inputId).getElementsByTagName('IMG')[0];
- }else {
- thisNode = this;
- if(this.tagName=='A')thisNode = this.parentNode.getElementsByTagName('IMG')[0];
-
- }
- if(thisNode.style.visibility=='hidden')return;
- var parentNode = thisNode.parentNode;
- inputId = parentNode.id.replace(/[^0-9]/g,'');
- if(thisNode.src.indexOf(JSTreeObj.plusImage)>=0){
- thisNode.src = thisNode.src.replace(JSTreeObj.plusImage,JSTreeObj.minusImage);
- var ul = parentNode.getElementsByTagName('UL')[0];
- ul.style.display='block';
- if(!initExpandedNodes)initExpandedNodes = ',';
- if(initExpandedNodes.indexOf(',' + inputId + ',')<0) initExpandedNodes = initExpandedNodes + inputId + ',';
- }else{
- thisNode.src = thisNode.src.replace(JSTreeObj.minusImage,JSTreeObj.plusImage);
- parentNode.getElementsByTagName('UL')[0].style.display='none';
- initExpandedNodes = initExpandedNodes.replace(',' + inputId,'');
- }
- JSTreeObj.Set_Cookie('dhtmlgoodies_expandedNodes',initExpandedNodes,500);
- return false;
- }
- ,
- /*expand only the selected node*/
- showSelectedNode : function(selectedItemId)
- {
- var menuItems = document.getElementById(this.idOfTree).getElementsByTagName('LI'); // Get an array of all menu items
-
- var selectedNode ;
- for(var no=0;no<menuItems.length;no++){
- if (selectedItemId != null && selectedItemId == menuItems[no].id.replace(/[^0-9]/gi,'')){
- selectedNode = menuItems[no];
- break;
- }
- }
- do{
- if (selectedNode != null){
- var subItems = selectedNode.getElementsByTagName('UL');
- if(subItems && subItems.length>0 && subItems[0].style.display!='block'){
- JSTreeObj.showHideNode(false,selectedNode.id);
- }
- selectedNode = selectedNode.parentNode;
- }
- }while (selectedNode && selectedNode.id.replace(/[^0-9]/gi,'') != '0');
- return false;
- }
- ,
- isDeleteAllowed : function(selectedItemId)
- {
- var menuItems = document.getElementById(this.idOfTree).getElementsByTagName('LI'); // Get an array of all menu items
-
- var selectedNode ;
- for(var no=0;no<menuItems.length;no++){
- if (selectedItemId != null && selectedItemId == menuItems[no].id.replace(/[^0-9]/gi,'')){
- selectedNode = menuItems[no];
- break;
- }
- }
- if (selectedNode && selectedNode.getAttribute('noDelete') && selectedNode.getAttribute('noDelete') == 'true')
- return false;
- else
- return true;
-
- }
- ,
- isAddAllowed : function(selectedItemId)
- {
- var menuItems = document.getElementById(this.idOfTree).getElementsByTagName('LI'); // Get an array of all menu items
-
- var selectedNode ;
- for(var no=0;no<menuItems.length;no++){
- if (selectedItemId != null && selectedItemId == menuItems[no].id.replace(/[^0-9]/gi,'')){
- selectedNode = menuItems[no];
- break;
- }
- }
- if (selectedNode && selectedNode.getAttribute('noChild') && selectedNode.getAttribute('noChild') == 'true')
- return false;
- else
- return true;
-
- }
- ,
- /* Initialize drag */
- initDrag : function(e)
- {
- if(document.all)e = event;
-
- var subs = JSTreeObj.floatingContainer.getElementsByTagName('LI');
- if(subs.length>0){
- if(JSTreeObj.dragNode_sourceNextSib){
- JSTreeObj.dragNode_parent.insertBefore(JSTreeObj.dragNode_source,JSTreeObj.dragNode_sourceNextSib);
- }else{
- JSTreeObj.dragNode_parent.appendChild(JSTreeObj.dragNode_source);
- }
- }
-
- JSTreeObj.dragNode_source = this.parentNode;
- JSTreeObj.dragNode_parent = this.parentNode.parentNode;
- JSTreeObj.dragNode_sourceNextSib = false;
-
-
- if(JSTreeObj.dragNode_source.nextSibling)JSTreeObj.dragNode_sourceNextSib = JSTreeObj.dragNode_source.nextSibling;
- JSTreeObj.dragNode_destination = false;
- JSTreeObj.dragDropTimer = 0;
- JSTreeObj.timerDrag();
- return false;
- }
- ,
- timerDrag : function()
- {
- if(this.dragDropTimer>=0 && this.dragDropTimer<10){
- this.dragDropTimer = this.dragDropTimer + 1;
- setTimeout('JSTreeObj.timerDrag()',20);
- return;
- }
- if(this.dragDropTimer==10)
- {
- JSTreeObj.floatingContainer.style.display='block';
- JSTreeObj.floatingContainer.appendChild(JSTreeObj.dragNode_source);
- }
- }
- ,
- moveDragableNodes : function(e)
- {
- if(JSTreeObj.dragDropTimer<10)return;
- if(document.all)e = event;
- dragDrop_x = e.clientX/1 + 5 + document.body.scrollLeft;
- dragDrop_y = e.clientY/1 + 5 + document.documentElement.scrollTop;
-
- JSTreeObj.floatingContainer.style.left = dragDrop_x + 'px';
- JSTreeObj.floatingContainer.style.top = dragDrop_y + 'px';
-
- var thisObj = this;
- if(thisObj.tagName=='A' || thisObj.tagName=='IMG')thisObj = thisObj.parentNode;
-
- JSTreeObj.dragNode_noSiblings = false;
- var tmpVar = thisObj.getAttribute('noSiblings');
- if(!tmpVar)tmpVar = thisObj.noSiblings;
- if(tmpVar=='true')JSTreeObj.dragNode_noSiblings=true;
-
- if(thisObj && thisObj.id)
- {
- JSTreeObj.dragNode_destination = thisObj;
- var img = thisObj.getElementsByTagName('IMG')[1];
- var tmpObj= JSTreeObj.dropTargetIndicator;
- tmpObj.style.display='block';
-
- var eventSourceObj = this;
- if(JSTreeObj.dragNode_noSiblings && eventSourceObj.tagName=='IMG')eventSourceObj = eventSourceObj.nextSibling;
-
- var tmpImg = tmpObj.getElementsByTagName('IMG')[0];
- if(this.tagName=='A' || JSTreeObj.dragNode_noSiblings){
- tmpImg.src = tmpImg.src.replace('ind1','ind2');
- JSTreeObj.insertAsSub = true;
- tmpObj.style.left = (JSTreeObj.getLeftPos(eventSourceObj) + JSTreeObj.indicator_offsetX_sub) + 'px';
- }else{
- tmpImg.src = tmpImg.src.replace('ind2','ind1');
- JSTreeObj.insertAsSub = false;
- tmpObj.style.left = (JSTreeObj.getLeftPos(eventSourceObj) + JSTreeObj.indicator_offsetX) + 'px';
- }
-
- tmpObj.style.top = (JSTreeObj.getTopPos(thisObj) + JSTreeObj.indicator_offsetY) - document.getElementById("scrollableTable").scrollTop + 'px' ;
-
-
- }
- var divHeight = document.getElementById("scrollableTable").style.height;
- divHeight = divHeight.substring(0, divHeight.indexOf("px"));
- if (dragDrop_y - JSTreeObj.getTopPos(document.getElementById("scrollableTable"))< 50)
- document.getElementById("scrollableTable").scrollTop = document.getElementById("scrollableTable").scrollTop - 5;
- else if (dragDrop_y - JSTreeObj.getTopPos(document.getElementById("scrollableTable")) > divHeight - 50)
- document.getElementById("scrollableTable").scrollTop = document.getElementById("scrollableTable").scrollTop + 5;
-
- return false;
-
- }
- ,
- dropDragableNodes:function()
- {
- if(JSTreeObj.dragDropTimer<10){
- JSTreeObj.dragDropTimer = -1;
- return;
- }
- var showMessage = false;
- var message = '';
- if(JSTreeObj.dragNode_destination){ // Check depth
- var countUp = JSTreeObj.dragDropCountLevels(JSTreeObj.dragNode_destination,'up');
- var countDown = JSTreeObj.dragDropCountLevels(JSTreeObj.dragNode_source,'down');
- var countLevels = countUp/1 + countDown/1 + (JSTreeObj.insertAsSub?1:0);
-
- if(countLevels>JSTreeObj.maximumDepth){
- JSTreeObj.dragNode_destination = false;
- showMessage = true; // Used later down in this function
- message = JSTreeObj.messageMaximumDepthReachedl
- }
- }
- if (JSTreeObj.dragNode_destination && JSTreeObj.dragNode_destination.getAttribute('noDrop') == 'true'){
- JSTreeObj.dragNode_destination = false;
- showMessage = true; // Used later down in this function
- message = JSTreeObj.messageNoRightsOnFolder;
- }
-
-
- if(JSTreeObj.dragNode_destination){
-
- if(JSTreeObj.insertAsSub){
- var uls = JSTreeObj.dragNode_destination.getElementsByTagName('UL');
- if(uls.length>0){
- ul = uls[0];
- ul.style.display='block';
-
- var lis = ul.getElementsByTagName('LI');
-
- if(lis.length>0){ // Sub elements exists - drop dragable node before the first one
- ul.insertBefore(JSTreeObj.dragNode_source,lis[0]);
- }else { // No sub exists - use the appendChild method - This line should not be executed unless there's something wrong in the HTML, i.e empty <ul>
- ul.appendChild(JSTreeObj.dragNode_source);
- }
- }else{
- var ul = document.createElement('UL');
- ul.style.display='block';
- JSTreeObj.dragNode_destination.appendChild(ul);
- ul.appendChild(JSTreeObj.dragNode_source);
- }
- var img = JSTreeObj.dragNode_destination.getElementsByTagName('IMG')[0];
- img.style.visibility='visible';
- img.src = img.src.replace(JSTreeObj.plusImage,JSTreeObj.minusImage);
-
-
- }else{
- if(JSTreeObj.dragNode_destination.nextSibling){
- var nextSib = JSTreeObj.dragNode_destination.nextSibling;
- nextSib.parentNode.insertBefore(JSTreeObj.dragNode_source,nextSib);
- }else{
- JSTreeObj.dragNode_destination.parentNode.appendChild(JSTreeObj.dragNode_source);
- }
- }
- /* Clear parent object */
- var tmpObj = JSTreeObj.dragNode_parent;
- var lis = tmpObj.getElementsByTagName('LI');
- if(lis.length==0){
- var img = tmpObj.parentNode.getElementsByTagName('IMG')[0];
- img.style.visibility='hidden'; // Hide [+],[-] icon
- tmpObj.parentNode.removeChild(tmpObj);
- }
-
- }else{
- // Putting the item back to it's original location
-
- if(JSTreeObj.dragNode_sourceNextSib){
- JSTreeObj.dragNode_parent.insertBefore(JSTreeObj.dragNode_source,JSTreeObj.dragNode_sourceNextSib);
- }else{
- JSTreeObj.dragNode_parent.appendChild(JSTreeObj.dragNode_source);
- }
-
- }
- JSTreeObj.dropTargetIndicator.style.display='none';
- JSTreeObj.dragDropTimer = -1;
- if(showMessage && message){ alert(message); return;}
- //save tree structure
- saveMyTree_byForm();
- }
- ,
- createDropIndicator : function()
- {
- this.dropTargetIndicator = document.createElement('DIV');
- this.dropTargetIndicator.style.position = 'absolute';
- this.dropTargetIndicator.style.display='none';
- var img = document.createElement('IMG');
- img.src = this.imageFolder + 'dragDrop_ind1.gif';
- img.id = 'dragDropIndicatorImage';
- this.dropTargetIndicator.appendChild(img);
- document.body.appendChild(this.dropTargetIndicator);
-
- }
- ,
- dragDropCountLevels : function(obj,direction,stopAtObject){
- var countLevels = 0;
- if(direction=='up'){
- while(obj.parentNode && obj.parentNode!=stopAtObject){
- obj = obj.parentNode;
- if(obj.tagName=='UL')countLevels = countLevels/1 +1;
- }
- return countLevels;
- }
-
- if(direction=='down'){
- var subObjects = obj.getElementsByTagName('LI');
- for(var no=0;no<subObjects.length;no++){
- countLevels = Math.max(countLevels,JSTreeObj.dragDropCountLevels(subObjects[no],"up",obj));
- }
- return countLevels;
-
- }
- }
- ,
- cancelEvent : function()
- {
- return false;
- }
- ,
- cancelSelectionEvent : function()
- {
-
- if(JSTreeObj.dragDropTimer<10)return true;
- return false;
- }
- ,getNodeOrders : function(initObj,saveString)
- {
-
- if(!saveString)var saveString = '';
- if(!initObj){
- initObj = document.getElementById(this.idOfTree);
-
- }
- var lis = initObj.getElementsByTagName('LI');
-
- if(lis.length>0){
- var li = lis[0];
- while(li){
- if(li.id){
- if(saveString.length>0)saveString = saveString + ',';
- var numericID = li.id.replace(/[^0-9]/gi,'');
- if(numericID.length==0)numericID='A';
- var numericParentID = li.parentNode.parentNode.id.replace(/[^0-9]/gi,'');
- if(numericID!='0'){
- saveString = saveString + numericID;
- saveString = saveString + '-';
-
-
- if(li.parentNode.id!=this.idOfTree)saveString = saveString + numericParentID; else saveString = saveString + '0';
- }
- var ul = li.getElementsByTagName('UL');
- if(ul.length>0){
- saveString = this.getNodeOrders(ul[0],saveString);
- }
- }
- li = li.nextSibling;
- }
- }
-
- if(initObj.id == this.idOfTree){
- return saveString;
-
- }
- return saveString;
- }
- ,highlightItem : function(inputObj,e)
- {
- if(JSTreeObj.currentlyActiveItem)JSTreeObj.currentlyActiveItem.className = '';
- this.className = 'highlightedNodeItem';
- JSTreeObj.currentlyActiveItem = this;
- }
- ,clickItem : function(inputObj,e)
- {
- if(JSTreeObj.currentlyActiveItem) JSTreeObj.currentlyActiveItem.className = '';
- this.className = 'highlightedNodeItem';
- JSTreeObj.currentlyActiveItem = this;
- JSTreeObj.selectedItem = this;
- },
- removeHighlight : function()
- {
- //if(JSTreeObj.currentlyActiveItem)JSTreeObj.currentlyActiveItem.className = '';
- //JSTreeObj.currentlyActiveItem = false;
- }
- ,
- hasSubNodes : function(obj)
- {
- var subs = obj.getElementsByTagName('LI');
- if(subs.length>0)return true;
- return false;
- }
- ,
- deleteItem : function(obj1,obj2)
- {
- var message = 'Click OK to delete item ' + obj2.innerHTML;
- if(this.hasSubNodes(obj2.parentNode)) message = message + ' and it\'s sub nodes';
- if(confirm(message)){
- this.__deleteItem_step2(obj2.parentNode); // Sending <LI> tag to the __deleteItem_step2 method
- //deleteItem();
- }else{
- return false;
- }
-
-
- }
- ,
- addItem : function(obj1,obj2)
- {
- var message = 'Click OK to Add item ' + obj2.innerHTML;
- return this.__addItem_step2(obj2.parentNode); // Sending <LI> tag to the __addItem_step2 method
- }
- ,
- createMenuReport : function(obj1,obj2)
- {
- JSTreeObj.selectedItem = obj2;
- createReport();
- }
- ,
- runMenuReport : function(obj1,obj2)
- {
- JSTreeObj.selectedItem = obj2;
- runReport();
-
- }
- ,
- editMenuReport : function(obj1,obj2)
- {
- JSTreeObj.selectedItem = obj2;
- editReport();
- }
- ,
- deleteMenuReport : function(obj1,obj2)
- {
- JSTreeObj.selectedItem = obj2;
- if (confirm("Do you want to delete this report?")){
- deleteReport();
- }
-
- }
- ,
- __refreshDisplay : function(obj)
- {
- if(this.hasSubNodes(obj))return;
-
- var img = obj.getElementsByTagName('IMG')[0];
- img.style.visibility = 'hidden';
- }
- ,
- __deleteItem_step2 : function(obj)
- {
-
- var saveString = obj.id.replace(/[^0-9]/gi,'');
-
- var lis = obj.getElementsByTagName('LI');
- for(var no=0;no<lis.length;no++){
- saveString = saveString + ',' + lis[no].id.replace(/[^0-9]/gi,'');
- }
-
- // Creating ajax object and send items
- var ajaxIndex = JSTreeObj.ajaxObjects.length;
- JSTreeObj.ajaxObjects[ajaxIndex] = new sack();
- JSTreeObj.ajaxObjects[ajaxIndex].method = "GET";
- JSTreeObj.ajaxObjects[ajaxIndex].setVar("deleteIds", saveString);
- document.all.deleteIds.value=saveString;
- JSTreeObj.__addAdditionalRequestParameters(JSTreeObj.ajaxObjects[ajaxIndex], JSTreeObj.additionalDeleteRequestParameters);
- JSTreeObj.ajaxObjects[ajaxIndex].requestFile = JSTreeObj.filePathDeleteItem; // Specifying which file to get
- JSTreeObj.ajaxObjects[ajaxIndex].onCompletion = function() { JSTreeObj.__deleteComplete(ajaxIndex,obj); } ; // Specify function that will be executed after file has been found
- //JSTreeObj.ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function
- deleteMyTree_byForm();
-
-
- }
- ,
- __addItem_step2 : function(obj)
- {
- var parentId = obj.id.replace(/[^0-9]/gi,'');
- document.all.newName.value="";
- document.all.saveString.value=parentId;
- if (selectedFolderId)
- selectedFolderId = parentId;
-
- addMyTree_byForm();
-
- }
- ,
- __deleteComplete : function(ajaxIndex,obj)
- {
- if(this.ajaxObjects[ajaxIndex].response!='OK'){
- alert('ERROR WHEN TRYING TO DELETE NODE: ' + this.ajaxObjects[ajaxIndex].response); // Rename failed
- }else{
- var parentRef = obj.parentNode.parentNode;
- obj.parentNode.removeChild(obj);
- this.__refreshDisplay(parentRef);
-
- }
-
- }
- ,
- __renameComplete : function(ajaxIndex)
- {
- if(this.ajaxObjects[ajaxIndex].response!='OK'){
- alert('ERROR WHEN TRYING TO RENAME NODE: ' + this.ajaxObjects[ajaxIndex].response); // Rename failed
- }
- }
- ,
- __saveTextBoxChanges : function(e,inputObj)
- {
- if(!inputObj && this)inputObj = this;
- if(document.all)e = event;
- if(e.keyCode && e.keyCode==27){
- JSTreeObj.__cancelRename(e,inputObj);
- return;
- }
- inputObj.style.display='none';
- inputObj.nextSibling.style.visibility='visible';
- if(inputObj.value.length>0){
- inputObj.nextSibling.innerHTML = inputObj.value;
- // Send changes to the server.
- if (JSTreeObj.renameState != JSTreeObj.RENAME_STATE_BEGIN) {
- return;
- }
- JSTreeObj.renameState = JSTreeObj.RENAME_STATE_REQUEST_SENDED;
- var ajaxIndex = JSTreeObj.ajaxObjects.length;
- JSTreeObj.ajaxObjects[ajaxIndex] = new sack();
- JSTreeObj.ajaxObjects[ajaxIndex].method = "GET";
- JSTreeObj.ajaxObjects[ajaxIndex].setVar("renameId", inputObj.parentNode.id.replace(/[^0-9]/gi,''));
- JSTreeObj.ajaxObjects[ajaxIndex].setVar("newName", inputObj.value);
- JSTreeObj.__addAdditionalRequestParameters(JSTreeObj.ajaxObjects[ajaxIndex], JSTreeObj.additionalRenameRequestParameters);
- JSTreeObj.ajaxObjects[ajaxIndex].requestFile = JSTreeObj.filePathRenameItem; // Specifying which file to get
- JSTreeObj.ajaxObjects[ajaxIndex].onCompletion = function() { JSTreeObj.__renameComplete(ajaxIndex); } ; // Specify function that will be executed after file has been found
- JSTreeObj.ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function
-
- document.all.renameId.value=inputObj.parentNode.id.replace(/[^0-9]/gi,'');
- document.all.newName.value= inputObj.value;
- renameMyTree_byForm();
-
- }
- }
- ,
- __cancelRename : function(e,inputObj)
- {
- JSTreeObj.renameState = JSTreeObj.RENAME_STATE_CANCELD;
- if(!inputObj && this)inputObj = this;
- inputObj.value = JSTreeObj.helpObj.innerHTML;
- inputObj.nextSibling.innerHTML = JSTreeObj.helpObj.innerHTML;
- inputObj.style.display = 'none';
- inputObj.nextSibling.style.visibility = 'visible';
- }
- ,
- __renameCheckKeyCode : function(e)
- {
- if(document.all)e = event;
- if(e.keyCode==13){ // Enter pressed
- JSTreeObj.__saveTextBoxChanges(false,this);
- }
- if(e.keyCode==27){ // ESC pressed
- JSTreeObj.__cancelRename(false,this);
- }
- }
- ,
- __createTextBox : function(obj)
- {
- var textBox = document.createElement('INPUT');
- textBox.className = 'folderTreeTextBox';
- textBox.value = obj.innerHTML;
- obj.parentNode.insertBefore(textBox,obj);
- textBox.id = 'textBox' + obj.parentNode.id.replace(/[^0-9]/gi,'');
- textBox.onblur = this.__saveTextBoxChanges;
- textBox.onkeydown = this.__renameCheckKeyCode;
- textBox.style.height="16px";
- this.__renameEnableTextBox(obj);
- }
- ,
- __renameEnableTextBox : function(obj)
- {
- JSTreeObj.renameState = JSTreeObj.RENAME_STATE_BEGIN;
- obj.style.visibility = 'hidden';
- obj.previousSibling.value = obj.innerHTML;
- obj.previousSibling.style.display = 'inline';
- obj.previousSibling.select();
- }
- ,
- renameItem : function(obj1,obj2)
- {
- currentItemToEdit = obj2.parentNode; // Reference to the <li> tag.
- if(!obj2.previousSibling || obj2.previousSibling.tagName.toLowerCase()!='input'){
- this.__createTextBox(obj2);
- }else{
- this.__renameEnableTextBox(obj2);
- }
- this.helpObj.innerHTML = obj2.innerHTML;
-
- }
- ,
- initTree : function(selectedItemId)
- {
- JSTreeObj = this;
- JSTreeObj.createDropIndicator();
- document.documentElement.onselectstart = JSTreeObj.cancelSelectionEvent;
- document.documentElement.ondragstart = JSTreeObj.cancelEvent;
- document.documentElement.onmousedown = JSTreeObj.removeHighlight;
-
- /* Creating help object for storage of values */
- this.helpObj = document.createElement('DIV');
- this.helpObj.style.display = 'none';
- document.body.appendChild(this.helpObj);
- /* Create context menu */
- if(this.deleteAllowed || this.renameAllowed || this.addAllowed){
- try{
- /* Creating menu model for the context menu, i.e. the datasource */
- var menuModel = new DHTMLGoodies_menuModel();
- if(this.deleteAllowed)menuModel.addItem(1,'Delete Folder','','',false,'JSTreeObj.deleteItem');
- if(this.deleteAllowed)menuModel.addItem(2,'Rename Folder','','',false,'JSTreeObj.renameItem');
- if(this.addAllowed)menuModel.addItem(3,'New Folder','','',false,'JSTreeObj.addItem');
- menuModel.addItem(4,'Create Report','','',false,'JSTreeObj.createMenuReport');
- menuModel.init();
-
- /*For Reports*/
- var menuReportNoRights = new DHTMLGoodies_menuModel();
- menuReportNoRights.addItem(3,'Run','','',false,'JSTreeObj.runItem');
- menuReportNoRights.init();
-
- var menuReportWithRights = new DHTMLGoodies_menuModel();
- menuReportWithRights.addItem(1,'Run','','',false,'JSTreeObj.runMenuReport');
- menuReportWithRights.addItem(2,'Edit','','',false,'JSTreeObj.editMenuReport');
- menuReportWithRights.addItem(3,'Delete','','',false,'JSTreeObj.deleteMenuReport');
- menuReportWithRights.init();
-
-
- var menuModelRenameOnly = new DHTMLGoodies_menuModel();
- if(this.renameAllowed)menuModelRenameOnly.addItem(3,'Rename Folder','','',false,'JSTreeObj.renameItem');
- menuModelRenameOnly.init();
-
- var menuModelDeleteOnly = new DHTMLGoodies_menuModel();
- if(this.deleteAllowed)menuModelDeleteOnly.addItem(4,'Delete Folder','','',false,'JSTreeObj.deleteItem');
- menuModelDeleteOnly.init();
-
- var menuModelAddOnly = new DHTMLGoodies_menuModel();
- menuModelAddOnly.addItem(1,'New Folder','','',false,'JSTreeObj.addItem');
- menuModelAddOnly.init();
-
- window.refToDragDropTree = this;
-
- this.contextMenu = new DHTMLGoodies_contextMenu();
- this.contextMenu.setWidth(120);
- referenceToDHTMLSuiteContextMenu = this.contextMenu;
- }catch(e){
-
- }
- }
-
-
- var nodeId = 0;
- var dhtmlgoodies_tree = document.getElementById(this.idOfTree);
- var menuItems = dhtmlgoodies_tree.getElementsByTagName('LI'); // Get an array of all menu items
- for(var no=0;no<menuItems.length;no++){
- // No children var set ?
- var noChildren = false;
- var tmpVar = menuItems[no].getAttribute('noChildren');
- if(!tmpVar)tmpVar = menuItems[no].noChildren;
- if(tmpVar=='true')noChildren=true;
- // No drag var set ?
- var noDrag = false;
- var tmpVar = menuItems[no].getAttribute('noDrag');
- if(!tmpVar)tmpVar = menuItems[no].noDrag;
- if(tmpVar=='true')noDrag=true;
-
- nodeId++;
- var subItems = menuItems[no].getElementsByTagName('UL');
- var img = document.createElement('IMG');
- img.src = this.imageFolder + this.plusImage;
- img.onclick = JSTreeObj.showHideNode;
-
- if(subItems.length==0)img.style.visibility='hidden';else{
- subItems[0].id = 'tree_ul_' + treeUlCounter;
- treeUlCounter++;
- }
- var aTag = menuItems[no].getElementsByTagName('A')[0];
- aTag.id = 'nodeATag' + menuItems[no].id.replace(/[^0-9]/gi,'');
- //aTag.onclick = JSTreeObj.showHideNode;
- if(!noDrag)aTag.onmousedown = JSTreeObj.initDrag;
- if(!noChildren)aTag.onmousemove = JSTreeObj.moveDragableNodes;
- menuItems[no].insertBefore(img,aTag);
- //menuItems[no].id = 'dhtmlgoodies_treeNode' + nodeId;
- var folderImg = document.createElement('IMG');
- if(!noDrag)folderImg.onmousedown = JSTreeObj.initDrag;
- folderImg.onmousemove = JSTreeObj.moveDragableNodes;
- if(menuItems[no].className){
- folderImg.src = this.imageFolder + menuItems[no].className;
- } else if (menuItems[no].getAttribute('imgFile')){
- folderImg.src = this.imageFolder + menuItems[no].getAttribute('imgFile');
- } else{
- folderImg.src = this.imageFolder + this.folderImage;
- }
- menuItems[no].insertBefore(folderImg,aTag);
-
- if(this.contextMenu){
- var noDelete = menuItems[no].getAttribute('noDelete');
- if(!noDelete)noDelete = menuItems[no].noDelete;
- var noRename = menuItems[no].getAttribute('noRename');
- if(!noRename)noRename = menuItems[no].noRename;
- var noAdd = menuItems[no].getAttribute('noChild');
- if(!noAdd)noAdd = menuItems[no].noChild;
-
-
- if (menuItems[no].id.replace(/[^0-9]/gi,'').substr(0,3) != '000' ){//for folders
- if(noRename=='true' && noDelete=='true'){
- if (noAdd != 'true'){
- this.contextMenu.attachToElement(aTag,false,menuModelAddOnly);
- }
- }else{
- if(noDelete == 'true')this.contextMenu.attachToElement(aTag,false,menuModelRenameOnly);
- else if(noRename == 'true')this.contextMenu.attachToElement(aTag,false,menuModelDeleteOnly);
- else this.contextMenu.attachToElement(aTag,false,menuModel);
-
- }
- }else{//for reports
- var noRights = menuItems[no].getAttribute('noReportRights');
- if(!noRights)noRights = menuItems[no].noRights;
- if(noRights=='true'){
- this.contextMenu.attachToElement(aTag,false,menuReportNoRights);
- }else{
- this.contextMenu.attachToElement(aTag,false,menuReportWithRights);
- }
-
-
- }
- }
- //highlighting the selected item
- if (selectedItemId != null && selectedItemId == menuItems[no].id.replace(/[^0-9]/gi,'')){
- if(JSTreeObj.currentlyActiveItem) JSTreeObj.currentlyActiveItem.className = '';
- aTag.className = 'highlightedNodeItem';
- JSTreeObj.currentlyActiveItem = aTag;
- JSTreeObj.selectedItem = aTag;
- folderImg.tabindex="1";
- //alert(1);
- //folderImg.focus();
- }
- this.addEvent(aTag,'contextmenu',this.highlightItem);
- this.addEvent(aTag,'click',this.clickItem);
-
-
-
- }
-
-
-
- initExpandedNodes = this.Get_Cookie('dhtmlgoodies_expandedNodes');
- if(initExpandedNodes){
- var nodes = initExpandedNodes.split(',');
- for(var no=0;no<nodes.length;no++){
- if(nodes[no])this.showHideNode(false,nodes[no]);
- }
- }
-
-
-
-
- document.documentElement.onmousemove = JSTreeObj.moveDragableNodes;
- document.documentElement.onmouseup = JSTreeObj.dropDragableNodes;
- }
- ,
- __addAdditionalRequestParameters : function(ajax, parameters)
- {
- for (var parameter in parameters) {
- ajax.setVar(parameter, parameters[parameter]);
- }
- }
- } \ No newline at end of file