You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sm...@apache.org on 2007/12/18 20:20:57 UTC

svn commit: r605305 - /portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm

Author: smilek
Date: Tue Dec 18 11:20:56 2007
New Revision: 605305

URL: http://svn.apache.org/viewvc?rev=605305&view=rev
Log:
fixed issue with add node (folder/page/link) where new node appears twice in tree - this occurred whenever a node was added prior to expanding the parent of the new node; fixed button enabled/disabled display issues; fixed mozilla problem where text fields in dialog boxes would not show insertion point

Modified:
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm?rev=605305&r1=605304&r2=605305&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/site-view.vm Tue Dec 18 11:20:56 2007
@@ -237,12 +237,12 @@
 	createAddressBar(action);	
 	if (action == 'copy')
 	{	
-		dojo.widget.byId("copy.save").setDisabled(true);    		
+		btnSetDisabled( dojo.widget.byId("copy.save"), true );    		
 		foldersTable = document.getElementById('cfolderlist');   
 	}
 	else
 	{	
-		dojo.widget.byId("move.save").setDisabled(true);    		
+		btnSetDisabled( dojo.widget.byId("move.save"), true );    		
 		foldersTable = document.getElementById('mfolderlist');   
 	}
 	var folder_len = rootfolders.length;	
@@ -368,28 +368,34 @@
 		alert(objectType+ " name " + name + " is already in use. Please chose another name.");
 		if (document.getElementById('action').value == 'copy')
 		{
-			dojo.widget.byId("copy.save").setDisabled(true);
+			btnSetDisabled( dojo.widget.byId("copy.save"), true );
 		}else{
-			dojo.widget.byId("move.save").setDisabled(true);
+			btnSetDisabled( dojo.widget.byId("move.save"), true );
 		}
 	}
 	else
 	{
 		if (document.getElementById('action').value == 'copy')
 		{
-			dojo.widget.byId("copy.save").setDisabled(false);
+			btnSetDisabled( dojo.widget.byId("copy.save"), false );
 		}else{
-			dojo.widget.byId("move.save").setDisabled(false);
+			btnSetDisabled( dojo.widget.byId("move.save"), false );
 		}
 	}
 }
+function btnSetDisabled( btnWidget, /* Boolean */ disabled )
+{
+    if ( ! btnWidget ) return;
+    if ( btnWidget.disabled != disabled ) // bug in widget if called multiple times with same value
+        btnWidget.setDisabled( disabled );
+}
 function getFoldersResult(domainObjects, folderList,pagesList,linksList)
 {
     pages = pagesList;
 	links = linksList;
 	createAddressBar(document.getElementById("action").value);	
 	document.getElementById('destination').value = '';
-	dojo.widget.byId("copy.save").setDisabled(true);
+	btnSetDisabled( dojo.widget.byId("copy.save"), true );
     var folder_len = folderList.length
     var foldersTable;
 	if (document.getElementById("action").value =='copy')
@@ -459,13 +465,13 @@
 function getSelectedFolders(folder)
 {
    document.getElementById('path').value = folder;
-   jetspeed.getFolders(folder,getSelectionResult);
+   jetspeed.site.getFolders(folder,getSelectionResult);
 }
 
 function getFolders(folder)
 {
    document.getElementById('path').value = folder; 
-   jetspeed.getFolders(folder,getFoldersResult);
+   jetspeed.site.getFolders(folder,getFoldersResult);
 }
 function getNewMetaPrototype()
 {
@@ -575,8 +581,8 @@
         var names = new Array("folder");
         var values = new Array(node.widgetId);
         ajaxInvoke("getfolder", names, values, new FolderHandler() );     
-        dojo.widget.byId( "saveFInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertFInfoButton" ).setDisabled(true);
+        btnSetDisabled( dojo.widget.byId( "saveFInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertFInfoButton" ), true );
         displayTabs( [ "infoTabFolder", "securityTab", "metaTab", "menusTab", "orderTab","import","export"] );
 		populateImport(node);		
     }
@@ -585,8 +591,8 @@
         var names = new Array("page", "fragments");
         var values = new Array(node.widgetId, "false");
         ajaxInvoke("getpage", names, values, new PageHandler() );     
-        dojo.widget.byId( "savePInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertPInfoButton" ).setDisabled(true);
+        btnSetDisabled( dojo.widget.byId( "savePInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertPInfoButton" ), true );
         displayTabs( [ "infoTabPage", "securityTab", "metaTab","export" ] );
     }
     else if ( node.object == "Link" )
@@ -594,8 +600,8 @@
         var names = new Array("link");
         var values = new Array(node.widgetId);
         ajaxInvoke("getlink", names, values, new LinkHandler() );         
-        dojo.widget.byId( "saveLInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertLInfoButton" ).setDisabled(true);        
+        btnSetDisabled( dojo.widget.byId( "saveLInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertLInfoButton" ), true );        
 		displayTabs( [ "infoTabLinks", "securityTab", "metaTab","export" ] );
     }
 	populateExport(node);
@@ -624,7 +630,7 @@
 
 function validateNewField()
 {
-    dojo.widget.byId("res.save").setDisabled(disableNewSave());    
+    btnSetDisabled( dojo.widget.byId("res.save"), disableNewSave( ));    
 }
 function validateName(kind,name,action)
 {
@@ -657,10 +663,10 @@
 	if(valid == false)
 	{
 		if (action =='copy'){
-			dojo.widget.byId("copy.save").setDisabled(true);
+			btnSetDisabled( dojo.widget.byId("copy.save"), true );
 			return true;
 		}else{
-			dojo.widget.byId("move.save").setDisabled(true);    		
+			btnSetDisabled( dojo.widget.byId("move.save"), true );    		
 			return  true;
 		}
 	}
@@ -694,10 +700,10 @@
         if (isDupe(kind, name))
         {
              alert(kind + " name " + name + " is already in use. Please chose another name.");
-             dojo.widget.byId("res.save").setDisabled(true);    
+             btnSetDisabled( dojo.widget.byId("res.save"), true );    
         }
     }
-    dojo.widget.byId("res.save").setDisabled(disableNewSave());    
+    btnSetDisabled( dojo.widget.byId("res.save"), disableNewSave( ));    
 }
 function disableNewSave()
 {
@@ -802,7 +808,7 @@
 	document.getElementById("c.name").innerHTML = node.title
 	document.getElementById("cType").value = node.object	
 	createpopUpTable('copy');
-    dojo.widget.byId( "CopyResourceDialog" ).show();	
+    jetspeed.widget.openDialog( dojo.widget.byId( "CopyResourceDialog" ) );
 }
 
 function copyAction()
@@ -882,7 +888,7 @@
 	document.getElementById("mName").value = node.title.substring(0,node.title.lastIndexOf('.'));
 	document.getElementById("mType").value = node.object	
 	createpopUpTable('move');
-    dojo.widget.byId( "MoveResourceDialog" ).show();	
+    jetspeed.widget.openDialog( dojo.widget.byId( "MoveResourceDialog" ) );
 }
 
 function moveAction()
@@ -1079,30 +1085,57 @@
   this.node = node;
   this.populate = function(data) 
   { 
-    // insert in sorted order
-    for(var i=0; i<parent.children.length; i++) 
+    var controller = dojo.widget.byId('treeController');
+    if ( parent.state != parent.loadStates.LOADED )
     {
-        var child = parent.children[i];
-        if (child.object == node.object)
+        controller.loadRemote( parent, true );
+        controller.expand( parent ) ;
+    }
+    else
+    {   // insert among already populated child tree nodes of parent
+        // insert in sorted order
+        var addAtIndex = -1;
+        var alreadyExists = false;
+        for(var i=0; i<parent.children.length; i++) 
         {
-             if (child.title > node.title)
-             {
-                break;
-             }
+            var child = parent.children[i];
+            if ( addAtIndex == -1 )
+            {
+                if (child.object == node.object)
+                {
+                     if (child.title > node.title)
+                     {
+                        addAtIndex = i;
+                     }
+                }
+                else
+                {
+                    if (node.object == "Folder")
+                        addAtIndex = i;
+                    if (node.object == "Page" && child.object == "Link")
+                        addAtIndex = i;
+                }
+            }
+            if ( child.object == node.object )
+            {
+                if ( child.title == node.title )
+                {
+                    alreadyExists = true;
+                    break;
+                }
+            }
         }
-        else
+        if ( ! alreadyExists )
         {
-            if (node.object == "Folder")
-                break;
-            if (node.object == "Page" && child.object == "Link")
-                break;
+            if ( addAtIndex == -1 )
+                addAtIndex = parent.children.length;
+            var controller = dojo.widget.byId('treeController');
+            var res = controller.createChild(parent, addAtIndex, node);
+            var selector = dojo.widget.byId('treeSelector');
+            selector.select({ source: parent, event: {} });
+            editResource(parent);
         }
     }
-    var controller = dojo.widget.byId('treeController');
-    var res = controller.createChild(parent, i, node);
-    var selector = dojo.widget.byId('treeSelector');
-    selector.select({ source: parent, event: {} });
-    editResource(parent);
   }
   this.failure = function(data)
   {
@@ -1163,8 +1196,8 @@
     document.getElementById("res.short-title").value = "";
     document.getElementById("del.kind").innerHTML = node.object;
     document.getElementById("del.name").innerHTML = node.title;    
-    dojo.widget.byId("res.save").setDisabled(true);
-    dojo.widget.byId( "DeleteResourceDialog" ).show();
+    btnSetDisabled( dojo.widget.byId("res.save"), true );
+    jetspeed.widget.openDialog( dojo.widget.byId( "DeleteResourceDialog" ) );
 }
 function viewResource(xnode)
 {
@@ -1225,8 +1258,8 @@
         document.getElementById("res.link").style.display = "";
     else
         document.getElementById("res.link").style.display = "none";
-    dojo.widget.byId("res.save").setDisabled(true);
-    dojo.widget.byId( "NewResourceDialog" ).show();
+    btnSetDisabled( dojo.widget.byId("res.save"), true );
+    jetspeed.widget.openDialog( dojo.widget.byId( "NewResourceDialog" ) ) ;
 }
 // single click node handler
 var TreeNodeSelectionHandler = function(notUsed) 
@@ -1898,7 +1931,7 @@
     },    
     error: function( type, error )
     {
-        var msg = "Portal Communication Error: " + requestUrl + " type: " + type + jetspeed.url.formatBindError( error );
+        var msg = "Portal Communication Error: " + requestUrl + " type: " + type + jetspeed.formatError( error );
         // dojo.raise(msg);
         alert(msg);
         handler.failure(msg);
@@ -1980,18 +2013,18 @@
     var currentTabName = dojo.widget.byId( "mainTabContainer" ).selectedChildWidget.widgetId;
     if (currentTabName == "infoTabFolder")
     {
-        dojo.widget.byId( "saveFInfoButton" ).setDisabled(false);
-        dojo.widget.byId( "revertFInfoButton" ).setDisabled(false);
+        btnSetDisabled( dojo.widget.byId( "saveFInfoButton" ), false );
+        btnSetDisabled( dojo.widget.byId( "revertFInfoButton" ), false );
     }
     else if (currentTabName == "infoTabPage")
     {
-        dojo.widget.byId( "savePInfoButton" ).setDisabled(false);
-        dojo.widget.byId( "revertPInfoButton" ).setDisabled(false);
+        btnSetDisabled( dojo.widget.byId( "savePInfoButton" ), false );
+        btnSetDisabled( dojo.widget.byId( "revertPInfoButton" ), false );
     }
     else
     {
-        dojo.widget.byId( "saveLInfoButton" ).setDisabled(false);
-        dojo.widget.byId( "revertLInfoButton" ).setDisabled(false);
+        btnSetDisabled( dojo.widget.byId( "saveLInfoButton" ), false );
+        btnSetDisabled( dojo.widget.byId( "revertLInfoButton" ), false );
     }
 }
 function newEntry()
@@ -2012,7 +2045,7 @@
     {
         dojo.byId("security.list").options[0].selected = true;
         dojo.byId("security.list").disabled = false;
-        dojo.widget.byId("security.owner").setDisabled(false);
+        btnSetDisabled( dojo.widget.byId("security.owner"), false );
         changeButtonState("security", true, true, true, false);
     }
 }
@@ -2116,7 +2149,7 @@
     var securityList = dojo.byId("security.list");
     securityList.value = "";
     securityList.disabled = true;
-    dojo.widget.byId("security.owner").setDisabled(true);
+    btnSetDisabled( dojo.widget.byId("security.owner"), true );
     changeButtonState("security", false, true, true, true);
 }
 function populateSecurity(xmlName, xml, kind)
@@ -2144,7 +2177,7 @@
        count = count + 1;
        data.push( { name: owner, kind: "Owner", Id: count } );
    }
-   dojo.widget.byId("security.owner").setDisabled(true);       
+   btnSetDisabled( dojo.widget.byId("security.owner"), true );       
    path = xml.getElementsByTagName("security-def");
    if (path != null && path.length > 0)
    {    
@@ -2192,10 +2225,10 @@
 }
 function changeButtonState(prefix, newState, deleteState, saveState, revertState)
 {
-    dojo.widget.byId(prefix + "NewButton").setDisabled(newState);
-    dojo.widget.byId(prefix + "DeleteButton").setDisabled(deleteState);
-    dojo.widget.byId(prefix + "SaveButton").setDisabled(saveState);
-    dojo.widget.byId(prefix + "RevertButton").setDisabled(revertState);
+    btnSetDisabled( dojo.widget.byId(prefix + "NewButton"), newState );
+    btnSetDisabled( dojo.widget.byId(prefix + "DeleteButton"), deleteState );
+    btnSetDisabled( dojo.widget.byId(prefix + "SaveButton"), saveState );
+    btnSetDisabled( dojo.widget.byId(prefix + "RevertButton"), revertState );
 }
 function getTableWidget( containedInTab )
 {
@@ -2223,7 +2256,7 @@
     {
         if (rowData.kind == "Security Reference")
         {
-            dojo.widget.byId("security.owner").setDisabled(true);       
+            btnSetDisabled( dojo.widget.byId("security.owner"), true );       
             var el = dojo.byId("security.list");
             for (var ix=0; ix < el.options.length; ix++)
             {
@@ -2421,18 +2454,18 @@
      var node = dojo.widget.manager.getWidgetById('treeSelector').selectedNode;
      if ( node.object == "Folder" )
      {   
-        dojo.widget.byId( "saveFInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertFInfoButton" ).setDisabled(true);
+        btnSetDisabled( dojo.widget.byId( "saveFInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertFInfoButton" ), true );
      }
      else if ( node.object == "Page" )
      {   
-        dojo.widget.byId( "savePInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertPInfoButton" ).setDisabled(true);
+        btnSetDisabled( dojo.widget.byId( "savePInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertPInfoButton" ), true );
      }
      else if ( node.object == "Link" )
      {   
-        dojo.widget.byId( "saveLInfoButton" ).setDisabled(true);
-        dojo.widget.byId( "revertLInfoButton" ).setDisabled(true);
+        btnSetDisabled( dojo.widget.byId( "saveLInfoButton" ), true );
+        btnSetDisabled( dojo.widget.byId( "revertLInfoButton" ), true );
      }
   }     
   this.failure = function(data)
@@ -2494,8 +2527,8 @@
         }
     }
     document.getElementById("owner.name").value = path;
-    dojo.widget.byId("owner.save").setDisabled(path == "");
-    dojo.widget.byId( "NewOwnerDialog" ).show();
+    btnSetDisabled( dojo.widget.byId("owner.save"), path == "" );
+    jetspeed.widget.openDialog( dojo.widget.byId( "NewOwnerDialog" ) );
 }
 function validateOwnerName()
 {
@@ -2503,11 +2536,11 @@
     var disabled = false;    
     if (name == null || dojo.string.trim(name) == "")
         disabled = true;
-    dojo.widget.byId("owner.save").setDisabled(disabled);
+    btnSetDisabled( dojo.widget.byId("owner.save"), disabled );
 }
 function disableCopySave()
 {
-	dojo.widget.byId("copy.save").setDisabled(true);
+	btnSetDisabled( dojo.widget.byId("copy.save"), true );
 }
 
 var ExportHandler = function()



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org