Let me clarify scenario in front of you all.
Here is my leftpanel page code
[HTML] <html>
<head>
<title>nHosts Manager </title>
<script type="text/javascript" src="./resources/libs/dojo/version.4.1/dojo.js"> </script>
<script type="text/javascript" src="./javascript/common.js"></script>
<script type="text/javascript" src="./javascript/main.js"></script>
<script type="text/javascript" src="./javascript/leftpanel.js"></script>
<script type="text/javascript">
dojo.require("dojo.lang.*");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.Tree");
dojo.require("dojo.widget.TreeNode");
dojo.require("dojo.event.*");
dojo.require("dojo.widget.TreeSelector");
dojo.require("dojo.widget.TreeRPCController");
dojo.require("dojo.widget.TreeContextMenu");
dojo.require("dojo.widget.TreeLoadingController");
dojo.require("dojo.widget.TreeControllerExtension" );
dojo.require("dojo.widget.Dialog");
dojo.hostenv.writeIncludes();
</script>
</head>
<body onload="call_loadtree();" onmousedown="closeMenu();" bgcolor="">
<div id="loading">Loading...</div>
<div dojoType="TreeContextMenu" toggle="explode" contextMenuForWindow="false" widgetId="treeContextMenu">
<div dojoType="TreeMenuItem" treeActions="disable" icornSrc="" widgetId="disableport" Caption="Disable"></div>
<div dojoType="TreeMenuItem" treeActions="enable" iconSrc="" widgetId="enableport" Caption="Enable"></div>
</div>
<div dojoType="dialog" id="process" bgColor="blue" bgOpacity="0.3" toggle="fade" toggleDuration="250" >
Wait while process completes....
</div>
</body>
</html>
[/HTML]The leftpanel.js is as follows
- function call_loadtree()
-
{
-
getHttpRequest() ;
-
xmlHttpRequest.onreadystatechange = leftpanel_load_tree_handleResponse;
-
sendRequest("controllerServlet?cal_show_ports");
-
}
-
-
function leftpanel_load_tree_handleResponse()
-
{
-
if (xmlHttpRequest.readyState == 4)
-
{
-
var response = xmlHttpRequest.responseText;
-
var treeController = dojo.widget.createWidget("TreeLoadingController", {id:"treeController",DNDcontroller:"create",RPCUrl:"controllerServlet?1"});
-
var treeSelector = dojo.widget.createWidget("TreeSelector", {id: "treeSelector"});
-
var tree = dojo.widget.createWidget("Tree", {toggle: "fade",id:"dojo_tree0",selector:"treeSelector",DNDMode: "between",controller:"treeController",expandLevel:"1",DNDacceptTypes:"dojo_tree0",menu:"treeContextMenu"});
-
var rootNode = dojo.widget.createWidget("TreeNode", {title: "nHosts",id: "root", expandLevel:"1",childIconSrc: "",actionsDisabled: "disable enable"});
-
document.body.appendChild(treeController.domNode);
-
document.body.appendChild(treeSelector.domNode);
-
document.body.appendChild(tree.domNode);
-
tree.addChild(rootNode);
-
-
if(response!=null)
-
{
-
var start_pos=1;
-
var counter=0;
-
while(1)
-
{
-
start_pos=response.indexOf("(",start_pos);
-
if(start_pos<0)
-
break;
-
start_pos++;
-
str=response.substring(start_pos,start_pos+4);
-
var name="Physical Port "+counter;
-
var node0 = dojo.widget.createWidget("TreeNode", {title: name, id:str, expandLevel:"1",childIconSrc:"./img/port_icon.gif",actionsDisabled: "",isFolder: "true"});
-
rootNode.addChild(node0);
-
counter++;
-
-
}//end of while
-
}//end of if response
-
-
var selectedEventName = dojo.widget.byId("dojo_tree0").selector.eventNames.select;
-
var eventSub = new Subscriber(document.getElementById("content"));
-
var selectionTopic = dojo.event.topic.getTopic(selectedEventName);
-
selectionTopic.subscribe(eventSub, "update");
-
var myTree=dojo.widget.manager.getWidgetById("dojo_tree0");
-
-
if( myTree != null )
-
{
-
dojo.event.topic.subscribe(myTree.eventNames.treeClick, treeNodeClicked);
-
dojo.event.topic.subscribe(myTree.eventNames.titleClick, onTitleClick);
-
dojo.event.topic.subscribe(myTree.eventNames.iconClick, onIconClick);
-
}
-
-
document.getElementById("loading").style.visibility="hidden";
-
document.getElementById("loading").style.height=0;
-
var node=dojo.widget.byId("root");
-
node.onTitleClick();
-
}//end of readystate
-
}//end of handleresponse
-
- function onTitleClick(treenode)
-
{
-
-
}
-
-
function onIconClick(treenode)
-
{
-
var id=treenode.source.id;
-
if( id== "root" )
-
{
-
loadLink('content','home.html');
-
}
-
else if ( id.charAt(0) == "p" )
-
{
-
loadLink('content','physicalport.jsp?param1='+id);
-
}
-
else
-
{
-
loadLink('content', 'vport.jsp?param1='+id);
-
}
-
}
-
-
-
function treeNodeClicked(treenode)
-
{
-
if(treenode.source.children.length == 0)
-
{
-
getHttpRequest() ;
-
// alert( treenode.source.id);
-
-
var command="cal_show_ports -"+treenode.source.id+" -svp";
-
sendRequest1("controllerServlet?"+command,"leftpanel_handleResponse");
-
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
-
response=response.split("\n");
-
for(i=5;i<response.length;i++)
-
{
-
if(response[i].indexOf("vp")>=0)
-
{
-
output=response[i].split(/\s*\s/);
-
name=output[0]+" "+output[1];
-
id_value=output[1];
-
var icon_name=dojo.widget.byId(treenode.source.id).childIconSrc;
-
if( (icon_name.search(/red.jpg/)>=0) || (output[3]=="Disabled") )
-
var node1 = dojo.widget.createWidget("TreeNode", {title: name, id:id_value, expandLevel:"0",childIconSrc: "./img/red.jpg",actionsDisabled: "disable"});
-
else
-
{
-
var node1 = dojo.widget.createWidget("TreeNode", {title: name, id:id_value, expandLevel:"0",childIconSrc: "./img/port.jpg",actionsDisabled: "enable"});
-
flag=1;
-
}
-
dojo.widget.byId(treenode.source.id).addChild(node1);
-
-
}//end of if
-
}//end of for
-
-
if (!treenode.source.isExpanded)
-
{
-
treenode.source.expand();
-
}
-
}//end fo readystateif
-
}//end fo childdrne==0if
-
}//end of treenode clicekd
-
- function sendRequest2(url, callback)
-
{
-
if(window.ActiveXObject)
-
{
-
xmlHttpRequest.open('GET', url,false);
-
}
-
else
-
{
-
xmlHttpRequest.open('GET', url,false);
-
}
-
// set the callback function //
-
xmlHttpRequest.onreadystatechange = handleResponse2;
-
// execute the GET //
-
xmlHttpRequest.send(null);
-
}
-
-
function handleResponse2(com)
-
{
-
}
-
-
function Subscriber(displayNode)
-
{
-
this.update= function(message)
-
{ <!--alert(message.node.title+" selected");-->
-
if( message.node.id == "root" )
-
{
-
loadLink('content','home.html');
-
}
-
else if ( message.node.title.charAt(0) == "P" )
-
{
-
loadLink('content','physicalport.jsp?param1='+message.node.id);
-
}
-
else
-
{
-
loadLink('content', 'vport.jsp?param1='+message.node.id);
-
}
-
}
-
} //end of function
-
-
-
//this function is called by vport.jsp page to expand the tree and given treenode selected
-
-
function call_expand(id,pid)
-
{
-
var pnode=dojo.widget.byId(pid);
-
-
if(pnode.children.length==0) //that is tree childs are not generated. SO generate it.
-
{
-
getHttpRequest() ;
-
var command="cal_show_ports -"+pid+" -svp";
-
sendRequest1("controllerServlet?"+command,"leftpanel_handleResponse");
-
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
response=response.split("\n");
-
for(i=5;i<response.length;i++)
-
{
-
if(response[i].indexOf("vp")>=0)
-
{
-
output=response[i].split(/\s*\s/);
-
name=output[0]+" "+output[1];
-
id_value=output[1];
-
var icon_name=pnode.childIconSrc;
-
if( (icon_name.search(/red.jpg/)>=0) || (output[3]=="Disabled") )
-
var node1 = dojo.widget.createWidget("TreeNode", {title: name, id:id_value, expandLevel:"0",childIconSrc: "./img/red.jpg",actionsDisabled: "disable"});
-
else
-
{
-
var node1 = dojo.widget.createWidget("TreeNode", {title: name, id:id_value, expandLevel:"0",childIconSrc: "./img/port.jpg",actionsDisabled: "enable"});
-
flag=1;
-
}
-
pnode.addChild(node1);
-
-
}//end of if
-
}//end of for
-
}//end fo readystateif
-
-
}//end of children length==0
-
-
if (!pnode.isExpanded)
-
{
-
pnode.expand();
-
}
-
var node=dojo.widget.byId(id);
-
var tree=dojo.widget.byId("root");
-
node.onTitleClick();
-
}//end of function
-
- function leftpanel_handleResponse(com)
-
{
-
}
-
-
function sendRequest1(url, callback)
-
{
-
if(window.ActiveXObject)
-
{
-
xmlHttpRequest.open('GET', url,false);
-
}
-
else
-
{
-
xmlHttpRequest.open('GET', url,false);
-
}
-
xmlHttpRequest.onreadystatechange = leftpanel_handleResponse;
-
xmlHttpRequest.send(null);
-
}
-
-
-
function function_called_from_main_page()
-
{
-
var node=dojo.widget.byId("root");
-
if(node!=null)
-
node.onTitleClick();
-
}
-
-
function closeMenu()
-
{
-
if(!dojo.widget.PopupManager.currentFocusMenu)
-
{
-
dojo.widget.PopupManager.onClick('onClick');
-
}
-
}
-
-
function closeMenu1()
-
{
-
dojo.widget.PopupManager.onClick('onClick');
-
}
-
-
-
-
dojo.addOnLoad(function() {
-
dojo.event.topic.subscribe('tcmReadWriteLoad/engage',
-
function (menuItem)
-
{
-
alert("Read Write loda menud clicked");
-
}
-
);
-
-
-
dojo.event.topic.subscribe('disableport/engage',
-
function(menuItem)
-
{
-
var id=menuItem.getTreeNode().id;
-
-
-
check_id=id.charAt(0);
-
-
if(check_id!="p")
-
{
-
getHttpRequest() ;
-
var command="cal_manage_ports -vp "+id+" disable";
-
sendRequest2("controllerServlet?"+command,"handleresponse2");
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
if(response!=null)
-
{
-
response=response.split("\n");
-
var txt="VP "+id+" disabled";
-
if(response[2].indexOf(txt)>=0)
-
{
-
menuItem.getTreeNode().childIconSrc='./img/red.jpg';
-
menuItem.getTreeNode().actionsDisabled="disable";
-
}
-
else
-
alert("Error while disabling VP "+id);
-
}
-
}
-
}//end of if
-
else
-
{
-
dlg = dojo.widget.byId("process");
-
dlg.show();
-
var node1=dojo.widget.byId(id);
-
-
for(var i=0;i < node1.children.length; i++)
-
{
-
getHttpRequest();
-
id=node1.children[i].widgetId;
-
child_icon= dojo.widget.byId(id).childIconSrc;
-
if(child_icon.indexOf("./img/red.jpg")<0)
-
{
-
var command="cal_manage_ports -vp "+id+" disable";
-
sendRequest2("controllerServlet?"+command,"handleresponse2");
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
if(response!=null)
-
{
-
response=response.split("\n");
-
var txt="VP "+id+" disabled";
-
-
if( (response[2].indexOf(txt)>=0) || (response[2].indexOf("WARNING: VP "+id+" is already Disabled")>=0) )
-
{
-
var child_node= dojo.widget.byId(id);
-
child_node.childIconSrc='./img/red.jpg';
-
child_node.actionsDisabled="disable";
-
child_node.buildChildIcon();
-
child_node.updateIcons();
-
// child_node.initialize();
-
}
-
else
-
alert("Error while disabling VP "+id);
-
}//end of if response not null
-
}//end ready state if
-
}//end of if
-
}//end of for
-
-
dlg.hide();
-
}//end of else
-
-
menuItem.getTreeNode().buildChildIcon();
-
menuItem.getTreeNode().updateIcons();
-
// menuItem.getTreeNode().initialize();
-
}
-
);
-
-
dojo.event.topic.subscribe('enableport/engage',
-
function(menuItem)
-
{
-
var id=menuItem.getTreeNode().id;
-
check_id=id.charAt(0);
-
if(check_id!="p")
-
{
-
getHttpRequest() ;
-
var command="cal_manage_ports -vp "+id+" enable";
-
sendRequest2("controllerServlet?"+command,"handleresponse2");
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
if(response!=null)
-
{
-
response=response.split("\n");
-
var txt="VP "+id+" enabled";
-
if(response[2].indexOf(txt)>=0)
-
{
-
menuItem.getTreeNode().childIconSrc='./img/port.jpg';
-
menuItem.getTreeNode().actionsDisabled="enable";
-
}
-
else
-
alert("Error while enabling VP "+id);
-
}//end of response not null if
-
}//end of ready state if
-
}//end of if
-
else
-
{
-
dlg = dojo.widget.byId("process");
-
dlg.show();
-
var node1=dojo.widget.byId(id);
-
for(var i=0;i < node1.children.length; i++)
-
{
-
getHttpRequest();
-
id=node1.children[i].widgetId;
-
child_icon= dojo.widget.byId(id).childIconSrc;
-
if(child_icon.indexOf("./img/port.jpg")<0)
-
{
-
var command="cal_manage_ports -vp "+id+" enable";
-
sendRequest2("controllerServlet?"+command,"handleresponse2");
-
if (xmlHttpRequest.readyState == 4)
-
{
-
response = xmlHttpRequest.responseText;
-
if(response!=null)
-
{
-
response=response.split("\n");
-
var txt="VP "+id+" enabled";
-
if( (response[2].indexOf(txt)>=0) || (response[2].indexOf("WARNING: VP "+id+" is already Enabled")>=0) )
-
{
-
var child_node= dojo.widget.byId(id);
-
child_node.childIconSrc='./img/port.jpg';
-
child_node.actionsDisabled="enable";
-
child_node.buildChildIcon();
-
child_node.updateIcons();
-
// child_node.initialize();
-
}
-
else
-
alert("Error while enabling VP "+id);
-
}//end of if response not null
-
}//end ready state if
-
}//end of if
-
}//end of for
-
-
dlg.hide();
-
}
-
menuItem.getTreeNode().buildChildIcon();
-
menuItem.getTreeNode().updateIcons();
-
// menuItem.getTreeNode().initialize();
-
}
-
);
-
dojo.event.topic.subscribe('tcmErrorInjection/engage',
-
function (menuItem)
-
{
-
alert("Error injection called");
-
}
-
);
-
-
});
-
My home.html which is loaded in content tag is as follows
[HTML]<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>nHosts Manager</title>
<script type="text/javascript" src="./resources/libs/dojo/version.4.1/dojo.js"> </script>
<script type="text/javascript" src="./javascript/common.js"></script>
<script type="text/javascript" src="./javascript/main.js"></script>
<script type="text/javascript">
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.TabContainer");
dojo.require("dojo.widget.Tooltip");
dojo.require("dojo.widget.LinkPane");
dojo.require("dojo.widget.ContentPane");
dojo.require("dojo.widget.Button");
</script>
<link rel="stylesheet" type="text/css" href="./css/tabbed_page.css" />
</head>
<body onload="" onmousedown="window.top.leftpanel.closeMenu1();">
<div id="mainTabContainer" dojoType="TabContainer" style="width: 100%; height: 100%;" selectedChild="tab1">
<div id="tab1" dojoType="ContentPane" href="nhostspropframe.html" refreshOnShow="true" label="Properties"></div>
<div id="tab2" dojoType="ContentPane" href="recordframe.html" refreshOnShow="true" label="Record"></div>
<div id="tab3" dojoType="ContentPane" href="replayframe.html" refreshOnShow="true" label="Replay"></div>
</div>
</body>
</html>
[/HTML]and the nhostspropframe.html,recordframe.html,replayframe. html
are the pages that contains the iframes which loads respective record, replay pages.
The home.html is loaded in the "main.jsp" frame when we clicks on the root node of the tree in "leftpanle.html". Leftpanel.html is loaded into another iframe in "main.jsp"
When we click on first level childs of root node the page physical properties is loaded which is quite similar to home.html. except file loaded are different.
It is as follows
[HTML]<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>nHosts Manager </title>
<script type="text/javascript" src="./resources/libs/dojo/version.4.1/dojo.js"></script>
<script type="text/javascript" src="./javascript/common.js"></script>
<script type="text/javascript" src="./javascript/main.js"></script>
<script type="text/javascript">
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.TabContainer");
dojo.require("dojo.widget.Tooltip");
dojo.require("dojo.widget.LinkPane");
dojo.require("dojo.widget.ContentPane");
dojo.require("dojo.widget.Button");
</script>
<link rel="stylesheet" type="text/css" href="./css/tabbed_page.css" />
</head>
<body onmousedown="window.top.leftpanel.closeMenu1();">
<div id="mainTabContainer" dojoType="TabContainer" style="width: 100%; height: 100%;" selectedChild="tab1">
<div id="tab1" dojoType="ContentPane" href="propertiesframe.jsp?param1=<%=request.getPar ameter("param1")%>" refreshOnShow="true" label="Properties"></div>
<div id="tab2" dojoType="ContentPane" href="ppframe.jsp?param1=<%=request.getParameter(" param1")%>" refreshOnShow="true" label="Ports" ></div>
<div id="tab3" dojoType="ContentPane" href="targetsframe.jsp?param1=<%=request.getParame ter("param1")%>" refreshOnShow="true" label="Targets"></div>
<div id="tab4" dojoType="ContentPane" href="statsframe.jsp?param1=<%=request.getParamete r("param1")%>" refreshOnShow="true" label="Statistics"></div>
<div id="tab5" dojoType="ContentPane" href="alllunsframe.jsp?param1=<%=request.getParame ter("param1")%>" refreshOnShow="true" label="Port-LUNs"></div>
</div>
</body>
</html>
[/HTML]So this is the scenario.
I also tried to put all of my javascript in one location that is in main.js
Then i included this file in my main page "main.jsp" which contains both the iframes. But still its giving error me that cannot execute code from freed script. On mozilla it works fine. But IE gives such error.
Close menu closes menu if any highlighted by right mouse clicking on tree.