Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/HtmlPages/static/frames.js
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/HtmlPages/static/frames.js	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/HtmlPages/static/frames.js	(revision 11093)
@@ -11,7 +11,7 @@
 
 $("#left_bottom").ready(function(){
-	$("#apps").load("/~webdemo/django/WebDash/running/");
+	loadHrefToDiv("#apps","/~webdemo/django/WebDash/running/");
 	$("a.ajax").click(function(){
-  		$("#apps").load("/~webdemo/django/WebDash/running/");
+  		loadHrefToDiv("#apps","/~webdemo/django/WebDash/running/");
   	});
   	$('#apps a').click(function(e){
@@ -53,6 +53,10 @@
 });
 
+$("#console").ready(function(){
+	loadHrefToDiv("#console",$("#currentView").attr("value"));
+});
+
 function install(waveform){
-	$("#apps").load("/~webdemo/django/WebDash/install/"+waveform+"/", function(){
+	$("#apps").load("/~webdem/django/WebDash/install/"+waveform+"/", function(){
 		$("a").click($(this).attr("onclick"));
 	});
@@ -78,11 +82,11 @@
 }
 
-function reloadNode(link){
-	$("#workspace").load(link);
-}
-
 function display(instance){
 	$("#workspace").load("/~webdemo/django/WebDash/"+instance+"/display/");
 	//$("#workspace").load("/WebDash/"+instance+"/display/");
+}
+
+function openWindow(href){
+	window.open(href, href, "status=1,height=300,width=400");
 }
 
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/static/frames.js
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/static/frames.js	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/static/frames.js	(revision 11093)
@@ -74,6 +74,6 @@
 }
 
-function loadHrefToDiv(div){
-	$(div).load($(this).attr("href"));
+function loadHrefToDiv(div,href){
+	$(div).load(href);
 }
 
@@ -87,4 +87,8 @@
 }
 
+function openWindow(href){
+	window.open(href, "status=1,height=300,width=400");
+}
+
 /**
 
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/README
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/README	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/README	(revision 11093)
@@ -1,3 +1,3 @@
-TODO: installation and setup and howto develop instructions for someone whos never used it
+TODO: installation and setup and howto develop instructions for someone whos never used itinstallation paragraph for local server
 explain ./manage 
 define what functionality is in which files
@@ -5,8 +5,7 @@
 add refresh status of nodes
 remove passwords from url -> put in SESSION variable
-add ip and which node is running
 choose which node to start domain manager on
 pick the nodeBooter from dev/nodes/
-installation paragraph for local server
+load connect to node in console view
 #############
 Django setup
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/runningNodebooter.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/runningNodebooter.html	(revision 11087)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/runningNodebooter.html	(revision 11093)
@@ -1,10 +1,13 @@
+<p>{{node}}</p>
+<p>IP address: {{ip}}</p>
+<p>Port: {{port}}</p>
+
 <p>The naming service is: 
 {% if runningNodebooter %}
-	<span style="color: green;">running</span>
-	<a href='{{MEDIA_URL}}/stopNodeBooter/{{ip}}/{{port}}/{{user}}/{{password}}'>Stop Nodebooter</a>
+	<span style="color: green;">running</span></p>
+	<p><a href='{{MEDIA_URL}}/stopNodeBooter/{{floor}}/{{num}}/{{user}}/{{password}}'>Stop Nodebooter</a></p>
 {% endif %}
 {% if not runningNodebooter %}
-	<span style="color: red;">not running</span>
-	<a href='{{MEDIA_URL}}/startNodeBooter/{{ip}}/{{port}}/{{user}}/{{password}}'>Start Nodebooter</a>
+	<span style="color: red;">not running</span></p>
+	<p><a href='{{MEDIA_URL}}/startNodeBooter/{{floor}}/{{num}}/{{user}}/{{password}}'>Start Nodebooter</a></p>
 {% endif %}
-</p>
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/console.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/console.html	(revision 11071)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/console.html	(revision 11093)
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/nodes.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/nodes.html	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/nodes.html	(revision 11093)
@@ -1,1 +1,2 @@
-<p>Node:  {{node}} IP: {{ip}} Port: {{port}}</p>
+<p>{{node}}<p> <p>IP: {{ip}} Port: {{port}}</p>
+<a href='javascript:openWindow("{{MEDIA_URL}}/connect/{{floor}}/{{num}}");'>Check Nodebooter</a>
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/connect.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/connect.html	(revision 11091)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/DomainMan/connect.html	(revision 11093)
@@ -2,15 +2,23 @@
 <body>
 <form action="{{MEDIA_URL}}/connect_to_node/" method="post">{% csrf_token %}
-	<p>Floor: 
+	<p>floor: 
 		<select name = "floor">
 			{% for floor in number_of_floors %}
-				<option value="{{floor}}">Floor {{floor}}</option>
+				{% ifequal floor selectedFloor %}
+					<option selected value="{{floor}}">Floor {{floor}}</option>
+				{% else %}
+					<option value="{{floor}}">Floor {{floor}}</option>
+				{% endifequal %}
 			{% endfor %}
 		</select>
 	</p>
-	<p>Number: 
+	<p>number: 
 		<select name="number">
 			{% for node in number_of_nodes %}
-				<option value="{{node}}">Node {{node}}</option>
+				{% ifequal node selectedNum %}
+					<option selected value="{{node}}">Node {{node}}</option>
+				{% else %}
+					<option value="{{node}}">Node {{node}}</option>
+				{% endifequal %}
 			{% endfor %}
 		</select>
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/running.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/running.html	(revision 10817)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/running.html	(revision 11093)
@@ -6,5 +6,8 @@
 		<td>	<a href='/WebDash/{{ instance.getName }}/display/'>{{ instance.getName }}</a>&nbsp;</td>
 		<!--<td>	<button onClick="window.location='/WebDash/{{ instance.getName }}/uninstall/'">Uninstall </button></td>-->
-		<td><button onClick="javascript:uninstall('{{ instance.getName }}');">Uninstall</button></td>
+		<td><button onClick=
+			'javascript:loadHrefToDiv("#apps","{{MEDIA_URL}}/WebDash/uninstall/{{ instance.getName }}/");
+						loadHrefToDiv("#apps","{{MEDIA_URL}}/WebDash/running/");'>
+			Uninstall</button></td>
 		</tr>
 	{% endfor %}
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/ossie.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/ossie.html	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/ossie.html	(revision 11093)
@@ -9,9 +9,19 @@
  <div id="column_left">
   <div id="left_top">
-    <p>
-   		<a href="{{MEDIA_URL}}"><img src="{{STATIC_URL}}pics/home.png" title="Home"/></a> 
-   		<a href="{{MEDIA_URL}}/logout/"><img src="{{STATIC_URL}}pics/logout.png" title="Logout"/></a>
-	</p>
-	<div id="directory">	</div>{#end menu div#}
+   	 <a href="{{MEDIA_URL}}"><img src="{{STATIC_URL}}pics/home.png" title="Home"/></a> 
+   	 <a href="{{MEDIA_URL}}/logout/"><img src="{{STATIC_URL}}pics/logout.png" title="Logout"/></a>
+  	 
+  	 &nbsp;&nbsp;&nbsp;&nbsp;
+  	 
+  	 Select view: <select name="view_type" onchange='javascript:loadHrefToDiv("#console",this.value);'>
+    	<option id="currentView" value="{{MEDIA_URL}}/grid/">Grid View</option>
+    	<option value="{{MEDIA_URL}}/map/1/">Floor 1 View</option>
+    	<option value="{{MEDIA_URL}}/map/2/">Floor 2 View</option>
+    	<option value="{{MEDIA_URL}}/map/3/">Floor 3 View</option>
+    	<option value="{{MEDIA_URL}}/map/4/">Floor 4 View</option>
+     </select>
+     <div id="console">
+	</div>	
+     {#end menu div#}
   </div><!--end #left_top-->
   <div id="left_bottom">
@@ -22,16 +32,6 @@
  <div id="column_right">
  <div id="right_top">
-	<ul class="tabs">
-		<li class="current"><a href="../grid/">Grid View</a></li>
-		<li><a href="{{MEDIA_URL}}/map/1/">Floor 1</a></li>
-		<li><a href="{{MEDIA_URL}}/map/2/">Floor 2</a></li>
-		<li><a href="{{MEDIA_URL}}/map/3/">Floor 3</a></li>
-		<li><a href="{{MEDIA_URL}}/map/4/">Floor 4</a></li>
-        <li id="task manager"><a href="../tasks/">Task Manager</a></li>        
-    </ul>
-    <br/>
-    <p><img id="loader" src="{{STATIC_URL}}loading.gif" style="position:absolute;"/></p>
-	<div id="console"></div>
-  </div><!--end #right_top-->
+  <div id="directory">	</div>
+ </div><!--end #right_top-->
   <div id="right_bottom">
 	<div id="workspace" class="tabs-container">Work space </div>
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/grid2.html
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/grid2.html	(revision 11093)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/templates/HtmlPages/grid2.html	(revision 11093)
@@ -0,0 +1,24 @@
+<!--Make a table of floors versus nodes-->
+
+<table border="0">
+	<tr>
+		<th>Nodes</th>
+		{% for count in number_of_nodes %}
+		<th>{{count}}</th>
+		{% endfor %}
+	</tr>
+	{% for floor in floor_list %}
+	<tr>
+		<th>{{forloop.counter}}</th>
+		{% for node in floor %}
+			{% if node %}
+				<!--<td><a id="node" href="javascript:loadNode({{node}});" title="{{forloop.parentloop.counter}}-{{forloop.counter}}"><img src="{{STATIC_URL}}green_ball.gif"/></a></td>-->
+				<td><a id="node" href='javascript:loadHrefToDiv("#directory","{{MEDIA_URL}}/loadNode/{{forloop.parentloop.counter}}/{{node}}/");' title="{{forloop.parentloop.counter}}-{{forloop.counter}}" onclick=''><img src="{{STATIC_URL}}green_ball.gif"/></a></td>
+			{% else %}
+				<td><img title="{{forloop.parentloop.counter}}-{{forloop.counter}}" src="{{STATIC_URL}}grey_ball.gif"/></td>
+			{% endif %}
+		{% endfor %}
+	</tr>
+	{% endfor %}
+
+</table>
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/DomainMan/views.py
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/DomainMan/views.py	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/DomainMan/views.py	(revision 11093)
@@ -58,5 +58,10 @@
 @param password: The user's password
 '''
-def startNodebooter(request, ip, port, user, password):
+def startNodebooter(request, floor, num, user, password):
+    floor = int(floor)
+    num = int(num)
+    node = Node(floor, num)
+    ip = node.ip
+    port = node.port
     client = connect(ip, port, user, password)
     #stdin, stdout, stderr = client.exec_command('cd /sdr; nodeBooter -D -d dev/nodes/default_GPP_node/DeviceManager.dcd.xml')
@@ -82,5 +87,10 @@
 @param password: The user's password
 '''
-def stopNodebooter(request, ip, port, user, password):
+def stopNodebooter(request, floor, num, user, password):
+    floor = int(floor)
+    num = int(num)
+    node = Node(floor, num)
+    ip = node.ip
+    port = node.port
     client = connect(ip, port, user, password)
     stdin, stdout, stderr = client.exec_command('killall nodeBooter && killall GPP')
@@ -106,22 +116,18 @@
     return render_to_response('DomainMan/console.html', locals(), context_instance=RequestContext(request))
 
-"""Connect to a nodebooter through a form
+"""
+Connect to a node through a form
 """
 def connect_to_node(request):
     if 'floor' in request.POST and 'number' in request.POST and 'user' in request.POST and 'pass' in request.POST:
-        postFloor = int(request.POST['floor'])
-        postNum = int(request.POST['number'])
+        floor = int(request.POST['floor'])
+        num = int(request.POST['number'])
         user = str(request.POST['user'])
         password = str(request.POST['pass'])
         
-        thisNode = Node(postFloor, postNum)
-        ip = thisNode.ip
-        port = thisNode.port
-        #thisNode.save()
-        #thisNode.setClient(user, password)
-        #node = Node.objects.get(floor=4, num=1)
+        node = Node(floor, num)
+        ip = node.ip
+        port = node.port
         client = connect(ip, port, user, password)
-        #stdin, stdout, stderr = client.exec_command('ls')
-        print 'calling runningNodebooter'
         runningNodebooter = nodeBooter_running(client)
     else:
@@ -130,23 +136,34 @@
     return render_to_response('DomainMan/runningNodebooter.html', locals(), context_instance=RequestContext(request))
 
+"""
+Raise exception if the inputs of the floor and node number are invalid
+"""
+def testValidInputs(floor, num):
+    if floor < 1 or floor > 4:
+        raise Exception("Floor must be between 1 and 4")
+    if num < 1 or num > 12:
+        raise Exception("Node must be between 1 and 12")
+
 #@login_required
 def loadNode(request, floor_num, node_num):
     floor = int(floor_num)
     num = int(node_num)
-    if floor < 1 or floor > 4:
-        raise Exception("Floor must be between 1 and 4")
-    if num < 1 or num > 12:
-        raise Exception("Node must be between 1 and 12")
+    testValidInputs(floor, num)
     node = Node(floor, num)
     ip = node.ip
     port = node.port
-    index2(request, ip)
+    address = str(ip)+":"+str(port)
+    index2(request, address)
     return render_to_response("DomainMan/nodes.html", locals(), context_instance=RequestContext(request))
 
-"""Returns connection form
 """
-def connect_to_node_view(request):
+Returns connection form
+"""
+def connect_to_node_view(request, selectFloor, selectNum):
     number_of_floors = range(1,5)
     number_of_nodes = range(1,13)
+    selectedFloor=int(selectFloor)
+    selectedNum=int(selectNum)
+    testValidInputs(selectedFloor, selectedNum)
     return render_to_response('DomainMan/connect.html', locals(), RequestContext(request))
 
Index: /ossiedev/branches/jsnyder/trunk/tools/cornetApps/urls.py
===================================================================
--- /ossiedev/branches/jsnyder/trunk/tools/cornetApps/urls.py	(revision 11092)
+++ /ossiedev/branches/jsnyder/trunk/tools/cornetApps/urls.py	(revision 11093)
@@ -37,7 +37,7 @@
     url(r'^domain_login/$', 'DomainMan.views.cornet_login'),
     url(r'^checkNodeBooter/(?P<ip>.*)/(?P<port>\d+)/(?P<user>.*)/(?P<password>.*)/$', 'DomainMan.views.nodeBooter_page'),
-    url(r'^startNodeBooter/(?P<ip>.*)/(?P<port>\d+)/(?P<user>.*)/(?P<password>.*)/$', 'DomainMan.views.startNodebooter'),
-    url(r'^stopNodeBooter/(?P<ip>.*)/(?P<port>\d+)/(?P<user>.*)/(?P<password>.*)/$', 'DomainMan.views.stopNodebooter'),
-    url(r'^connect/$', 'DomainMan.views.connect_to_node_view'),
+    url(r'^startNodeBooter/(?P<floor>\d{1})/(?P<num>\d+)/(?P<user>.*)/(?P<password>.*)/$', 'DomainMan.views.startNodebooter'),
+    url(r'^stopNodeBooter/(?P<floor>\d{1})/(?P<num>\d+)/(?P<user>.*)/(?P<password>.*)/$', 'DomainMan.views.stopNodebooter'),
+    url(r'^connect/(\d{1})/(\d+)/$', 'DomainMan.views.connect_to_node_view'),
     url(r'^connect_to_node/$', 'DomainMan.views.connect_to_node'),
     url(r'^xhr_test/$', 'DomainMan.views.xhr_test'),
