Author: rhari
Date: Mon May 21 10:57:50 2007
New Revision: 436

URL: http://svn.gna.org/viewcvs/phplinker?rev=436&view=rev
Log:
#814

Modified:
    trunk/www/js/drag-drop-folder-tree.js

Modified: trunk/www/js/drag-drop-folder-tree.js
URL: 
http://svn.gna.org/viewcvs/phplinker/trunk/www/js/drag-drop-folder-tree.js?rev=436&r1=435&r2=436&view=diff
==============================================================================
--- trunk/www/js/drag-drop-folder-tree.js (original)
+++ trunk/www/js/drag-drop-folder-tree.js Mon May 21 10:57:50 2007
@@ -999,38 +999,80 @@
                        obj.previousSibling.select();
                }
                ,
+               invisibleParent : function(obj)
+               {
+                   if (obj.parentNode.parentNode.id != 'root' && 
obj.parentNode.parentNode.getAttribute('visible') == '0')
+                       return true;
+
+                   return false;
+               }
+               ,
                showItem : function(obj1,obj2)
                {
                    currentItemToEdit = obj2.parentNode;
                    currentItemToEdit.setAttribute('visible', '1');
                    currentItemToEdit.setAttribute('Modified', 'true');
-                   currentItemToEdit.getElementsByTagName("A")[0].style.color 
= "#000000";
+                   var aTag = currentItemToEdit.getElementsByTagName('A')[0];
+                   aTag.style.color = "#000000";
                    currentItemToEdit.setAttribute('Show', 'true');
                    currentItemToEdit.setAttribute('Hide', 'false');
-//                 var aTag = currentItemToEdit.getElementsByTagName('A')[0];
-//                 try{
-//                     var menuModelForVisible = new DHTMLGoodies_menuModel();
-//                     
menuModelForVisible.addItem(3,'Rename','','',false,'JSTreeObj.renameItem');
-//                     
menuModelForVisible.addItem(4,'Delete','','',false,'JSTreeObj.deleteItem');
-//                     
menuModelForVisible.addItem(6,'Hide','','',false,'JSTreeObj.hideItem');
-//                     menuModelForVisible.init();
-//                     window.refToDragDropTree = this;
-//                     this.contextMenu = referenceToDHTMLSuiteContextMenu;
-//                 }
-//                 catch(e){}
-//                 this.contextMenu.attachToElement(aTag, false, 
menuModelForVisible);
-//                 this.addEvent(aTag,'contextmenu',this.highlightItem);
-
-                   if (this.hasSubNodes(currentItemToEdit) && confirm("Cette 
action sera récursive?")){
-                       var lis = currentItemToEdit.getElementsByTagName('LI');
-                       var elt;
-                       for(var no=0;no<lis.length;no++){
-                           elt = document.getElementById(lis[no].id);
-                           elt.setAttribute('visible', '1');
-                           elt.getElementsByTagName("A")[0].style.color = 
"#000000";
-                           elt.setAttribute('Show', 'true');
-                           elt.setAttribute('Hide', 'false');
-                           elt.setAttribute('Modified', 'true');
+                   try{
+                       var menuModelForVisible = new DHTMLGoodies_menuModel();
+                       
menuModelForVisible.addItem(3,'Rename','','',false,'JSTreeObj.renameItem');
+                       
menuModelForVisible.addItem(4,'Delete','','',false,'JSTreeObj.deleteItem');
+                       
menuModelForVisible.addItem(6,'Hide','','',false,'JSTreeObj.hideItem');
+                       menuModelForVisible.init();
+
+                       var menuModelForInvisible = new 
DHTMLGoodies_menuModel();
+                       
menuModelForInvisible.addItem(3,'Rename','','',false,'JSTreeObj.renameItem');
+                       
menuModelForInvisible.addItem(4,'Delete','','',false,'JSTreeObj.deleteItem');
+                       
menuModelForInvisible.addItem(5,'Show','','',false,'JSTreeObj.showItem');
+                       menuModelForInvisible.init();
+
+                       window.refToDragDropTree = this;
+                       this.contextMenu = referenceToDHTMLSuiteContextMenu;
+                   }
+                   catch(e){}
+
+                   if (this.contextMenu){
+                       this.contextMenu.attachToElement(aTag, false, 
menuModelForVisible);
+                       this.addEvent(aTag,'contextmenu',this.highlightItem);
+                   }
+
+                   if (this.hasSubNodes(currentItemToEdit)){
+                       if(confirm("Cette action sera récursive?")){
+                           var lis = 
currentItemToEdit.getElementsByTagName('LI');
+                           var elt;
+                           for(var no=0;no<lis.length;no++){
+                               elt = document.getElementById(lis[no].id);
+                               elt.setAttribute('visible', '1');
+                               aTag = elt.getElementsByTagName("A")[0];
+                               aTag.style.color = "#000000";
+                               elt.setAttribute('Show', 'true');
+                               elt.setAttribute('Hide', 'false');
+                               elt.setAttribute('Modified', 'true');
+                               if (this.contextMenu){
+                                   this.contextMenu.attachToElement(aTag, 
false, menuModelForVisible);
+                                   
this.addEvent(aTag,'contextmenu',this.highlightItem);
+                               }
+                           }
+                       }
+                       else{
+                           var lis = 
currentItemToEdit.getElementsByTagName('LI');
+                           var depthcurrentItemToEdit = 
JSTreeObj.dragDropCountLevels(currentItemToEdit,'up');
+                           var elt;
+                           for(var no=0;no<lis.length;no++){
+                               depthLis = 
JSTreeObj.dragDropCountLevels(lis[no],'up');
+                               if (depthLis - depthcurrentItemToEdit > 1)
+                                   continue;
+
+                               elt = document.getElementById(lis[no].id);
+                               aTag = elt.getElementsByTagName("A")[0];
+                               if (this.contextMenu){
+                                   this.contextMenu.attachToElement(aTag, 
false, menuModelForInvisible);
+                                   
this.addEvent(aTag,'contextmenu',this.highlightItem);
+                               }
+                           }
                        }
                    }
                }
@@ -1040,21 +1082,48 @@
                    currentItemToEdit = obj2.parentNode;
                    currentItemToEdit.setAttribute('visible', '0');
                    currentItemToEdit.setAttribute('Modified', 'true');
-                   currentItemToEdit.getElementsByTagName("A")[0].style.color 
= "#999999";
+                   var aTag = currentItemToEdit.getElementsByTagName("A")[0];
+                   aTag.style.color = "#999999";
 //                 
currentItemToEdit.getElementsByTagName("A")[0].style.backgroundColor = 
"#999999";
                    currentItemToEdit.setAttribute('Hide', 'true');
                    currentItemToEdit.setAttribute('Show', 'false');
+                   try{
+                       var menuModelForInvisible = new 
DHTMLGoodies_menuModel();
+                       
menuModelForInvisible.addItem(3,'Rename','','',false,'JSTreeObj.renameItem');
+                       
menuModelForInvisible.addItem(4,'Delete','','',false,'JSTreeObj.deleteItem');
+                       
menuModelForInvisible.addItem(5,'Show','','',false,'JSTreeObj.showItem');
+                       menuModelForInvisible.init();
+
+                       var menuModel = new DHTMLGoodies_menuModel();
+                       
menuModel.addItem(3,'Rename','','',false,'JSTreeObj.renameItem');
+                       
menuModel.addItem(4,'Delete','','',false,'JSTreeObj.deleteItem');
+                       menuModel.init();
+
+                       window.refToDragDropTree = this;
+                       this.contextMenu = referenceToDHTMLSuiteContextMenu;
+                   }
+                   catch(e){}
+
+                   if (this.contextMenu){
+                       this.contextMenu.attachToElement(aTag, false, 
menuModelForInvisible);
+                       this.addEvent(aTag,'contextmenu',this.highlightItem);
+                   }
                    if (this.hasSubNodes(currentItemToEdit)){
                        var lis = currentItemToEdit.getElementsByTagName('LI');
                        var elt;
                        for(var no=0;no<lis.length;no++){
                            elt = document.getElementById(lis[no].id);
                            elt.setAttribute('visible', '0');
-                           elt.getElementsByTagName("A")[0].style.color = 
"#999999";
+                           aTag = elt.getElementsByTagName("A")[0];
+                           aTag.style.color = "#999999";
 //                         
elt.getElementsByTagName("A")[0].style.backgroundColor = "#999999";
                            elt.setAttribute('Hide', 'true');
                            elt.setAttribute('Show', 'false');
                            elt.setAttribute('Modified', 'true');
+                           if (this.contextMenu){
+                               this.contextMenu.attachToElement(aTag, false, 
menuModel);
+                               
this.addEvent(aTag,'contextmenu',this.highlightItem);
+                           }
                        }
                    }
                }
@@ -1095,12 +1164,6 @@
                                        var menuModel = new 
DHTMLGoodies_menuModel();
                                        
if(this.deleteAllowed)menuModel.addItem(1,'Delete','','',false,'JSTreeObj.deleteItem');
                                        
if(this.renameAllowed)menuModel.addItem(2,'Rename','','',false,'JSTreeObj.renameItem');
-                                       //*****************************Hari 
20070418***lastmodif 20070418*************/
-
-                                       
menuModel.addItem(5,'Show','','',false,'JSTreeObj.showItem');
-                                       
menuModel.addItem(6,'Hide','','',false,'JSTreeObj.hideItem');
-
-                                       
//****************************************************************************/
                                        menuModel.init();
 
                                        var menuModelRenameOnly = new 
DHTMLGoodies_menuModel();
@@ -1224,6 +1287,7 @@
                                        if(!noDelete)noDelete = 
menuItems[no].noDelete;
                                        var noRename = 
menuItems[no].getAttribute('noRename');
                                        var toShow = 
menuItems[no].getAttribute('visible');
+                                       if 
(this.invisibleParent(menuItems[no]))toShow = -1;
                                        if(!noRename)noRename = 
menuItems[no].noRename;
                                        if (isTag == 'true'){
                                            if (noDelete!='true' && 
noRename!='true')


_______________________________________________
PHPLinker-commits mailing list
[email protected]
https://mail.gna.org/listinfo/phplinker-commits

Reply via email to