Author: jfthomps
Date: Mon Mar 19 14:01:22 2012
New Revision: 1302456

URL: http://svn.apache.org/viewvc?rev=1302456&view=rev
Log:
VCL-385
Hide noimage from showing in the list of images in Edit Image Profiles

VCL-463
add ability to deploy images as servers

added names to server reservations; removed several items from current 
reservations for server reservations and added a details popup to show the 
additional info

requests.php:
-modified newReservation - missed this one on VCL-385 last time - if image name 
is "No Image" do not include it in the list of environments for check out
-modified viewRequests and added getViewRequestHTMLitem - broke out each 
element from the current reservations page to be generated by a call to 
getViewRequestHTMLitem to reduce duplicated code and make it easier to include 
different portions in different sections of the page
-modified AJeditRequest - added servername
-modified AJsubmitEditRequest - added processing of servername; added some 
extra code for determining when admin and login groups should be updated

serverprofiles.php:
-modified deployHTML - added Name section
-modified AJdeployServer - added profilename; changed usergroups to include all 
user groups instead of just the ones the user can manage
-modifed processProfileInput - added underscore as an allowed character in the 
profile name

utils.php:
-modified getRequestInfo - added servername to returned array
-modified getUserRequests - added servername to returned array

requests.js:
-modified hideEditResDlg - destroy servername widget if exists
-modified submitEditReservation - added servername to submitted data

serverprofiles.js:
-modified getServerProfileDataDeployCB - added deployname; get admin and login 
groups by either dijit select or normal select, depending on what exists
-modified submitDeploy - added deployname to submitted data

Modified:
    incubator/vcl/trunk/web/.ht-inc/requests.php
    incubator/vcl/trunk/web/.ht-inc/serverprofiles.php
    incubator/vcl/trunk/web/.ht-inc/utils.php
    incubator/vcl/trunk/web/js/requests.js
    incubator/vcl/trunk/web/js/serverprofiles.js

Modified: incubator/vcl/trunk/web/.ht-inc/requests.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/requests.php?rev=1302456&r1=1302455&r2=1302456&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/requests.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/requests.php Mon Mar 19 14:01:22 2012
@@ -134,11 +134,14 @@ function newReservation() {
                        print "onChange=\"selectEnvironment();\" tabIndex=1 
style=\"width: 400px\" ";
                        print "queryExpr=\"*\${0}*\" highlightMatch=\"all\" 
autoComplete=\"false\" ";
                        print "name=imageid>\n";
-                       foreach($resources['image'] as $id => $image)
+                       foreach($resources['image'] as $id => $image) {
+                               if($image == 'No Image')
+                                       continue;
                                if($id == $imageid)
                                        print "        <option value=\"$id\" 
selected>$image</option>\n";
                                else
                                        print "        <option 
value=\"$id\">$image</option>\n";
+                       }
                        print "      </select>\n";
                }
                else
@@ -856,55 +859,21 @@ function viewRequests() {
                        if(requestIsReady($requests[$i]) && 
$requests[$i]['useraccountready']) {
                                $connect = 1;
                                # request is ready, print Connect! and End 
buttons
-                               $text .= "    <TD>\n";
-                               $text .= "      <FORM action=\"" . BASEURL . 
SCRIPT . "\" method=post>\n";
                                $cont = addContinuationsEntry('connectRequest', 
$cdata, SECINDAY);
-                               $text .= "      <INPUT type=hidden 
name=continuation value=\"$cont\">\n";
-                               $text .= "      <button type=submit 
dojoType=\"dijit.form.Button\">\n";
-                               $text .= "      Connect!\n";
-                               $text .= "      </button>\n";
-                               $text .= "      </FORM>\n";
-                               $text .= "    </TD>\n";
+                               $text .= getViewRequestHTMLitem('connectbtn', 
$cont);
                                if($requests[$i]['serveradmin']) {
-                                       $text .= "    <TD>\n";
                                        $cont = 
addContinuationsEntry('AJconfirmDeleteRequest', $cdata, SECINDAY);
-                                       $text .= "      <button 
dojoType=\"dijit.form.Button\">\n";
-                                       $text .= "        Delete\n";
-                                       $text .= "            <script 
type=\"dojo/method\" event=\"onClick\">\n";
-                                       $text .= "          
endReservation('$cont');\n";
-                                       $text .= "        </script>\n";
-                                       $text .= "      </button>\n";
-                                       $text .= "    </TD>\n";
+                                       $text .= 
getViewRequestHTMLitem('deletebtn', $cont);
                                }
                                else
                                        $text .= "    <TD></TD>\n";
-                               $startstamp = 
datetimeToUnix($requests[$i]["start"]);
                        }
                        elseif($requests[$i]["currstateid"] == 5) {
                                # request has failed
-                               $text .= "    <TD nowrap>\n";
-                               $text .= "      <span class=scriptonly>\n";
-                               $text .= "      <span class=compstatelink>";
-                               $text .= "<a 
onClick=\"showResStatusPane({$requests[$i]['id']}); ";
-                               $text .= "return false;\" 
href=\"#\">Reservation failed</a></span>\n";
-                               $text .= "      </span>\n";
-                               $text .= "      <noscript>\n";
-                               $text .= "      <span class=scriptoff>\n";
-                               $text .= "      <span class=compstatelink>";
-                               $text .= "Reservation failed</span>\n";
-                               $text .= "      </span>\n";
-                               $text .= "      </noscript>\n";
-                               $text .= "    </TD>\n";
+                               $text .= getViewRequestHTMLitem('failedblock', 
$requests[$i]['id']);
                                if($requests[$i]['serveradmin']) {
-                                       $text .= "    <TD>\n";
                                        $cont = 
addContinuationsEntry('AJconfirmRemoveRequest', $cdata, SECINDAY);
-                                       $text .= "      <button 
dojoType=\"dijit.form.Button\">\n";
-                                       $text .= "        Remove\n";
-                                       $text .= "            <script 
type=\"dojo/method\" event=\"onClick\">\n";
-                                       $text .= "          
removeReservation('$cont');\n";
-                                       $text .= "        </script>\n";
-                                       $text .= "      </button>\n";
-                                       $text .= "    </TD>\n";
+                                       $text .= 
getViewRequestHTMLitem('removebtn', $cont);
                                }
                                else
                                        $text .= "    <TD></TD>\n";
@@ -918,24 +887,11 @@ function viewRequests() {
                                        ($requests[$i]["currstateid"] == 14 &&
                                        $requests[$i]["laststateid"] == 11)) {
                                        # request has timed out
-                                       if($requests[$i]['forimaging'])
-                                               $text .= "    <TD colspan=2>\n";
-                                       else
-                                               $text .= "    <TD>\n";
-                                       $text .= "      <span 
class=compstatelink>Reservation has ";
-                                       $text .= "timed out</span>\n";
+                                       $text .= 
getViewRequestHTMLitem('timeoutblock');
                                        $timedout = 1;
-                                       $text .= "    </TD>\n";
                                        if($requests[$i]['serveradmin']) {
-                                               $text .= "    <TD>\n";
                                                $cont = 
addContinuationsEntry('AJconfirmRemoveRequest', $cdata, SECINDAY);
-                                               $text .= "      <button 
dojoType=\"dijit.form.Button\">\n";
-                                               $text .= "        Remove\n";
-                                               $text .= "            <script 
type=\"dojo/method\" event=\"onClick\">\n";
-                                               $text .= "          
removeReservation('$cont');\n";
-                                               $text .= "        </script>\n";
-                                               $text .= "      </button>\n";
-                                               $text .= "    </TD>\n";
+                                               $text .= 
getViewRequestHTMLitem('removebtn', $cont);
                                        }
                                        else
                                                $text .= "    <TD></TD>\n";
@@ -962,18 +918,7 @@ function viewRequests() {
                                                        $remaining = 1;
                                                }
                                        }
-                                       $text .= "    <TD>\n";
-                                       $text .= "      <span 
class=scriptonly>\n";
-                                       $text .= "      <span 
class=compstatelink><i>";
-                                       $text .= "<a 
onClick=\"showResStatusPane({$requests[$i]['id']}); ";
-                                       $text .= "return false;\" 
href=\"#\">Pending...</a></i></span>\n";
-                                       $text .= "      </span>\n";
-                                       $text .= "      <noscript>\n";
-                                       $text .= "      <span 
class=scriptoff>\n";
-                                       $text .= "      <span 
class=compstatelink>";
-                                       $text .= "<i>Pending...</i></span>\n";
-                                       $text .= "      </span>\n";
-                                       $text .= "      </noscript>\n";
+                                       $data = array('text' => '');
                                        if($requests[$i]['currstateid'] != 26 &&
                                           $requests[$i]['currstateid'] != 27 &&
                                           $requests[$i]['currstateid'] != 28 &&
@@ -981,19 +926,12 @@ function viewRequests() {
                                           ($requests[$i]['laststateid'] != 26 
&&
                                            $requests[$i]['laststateid'] != 27 
&&
                                            $requests[$i]['laststateid'] != 
28)))
-                                               $text .= 
"<br>Est:&nbsp;$remaining&nbsp;min remaining\n";
+                                               $data['text'] = 
"<br>Est:&nbsp;$remaining&nbsp;min remaining\n";
+                                       $text .= 
getViewRequestHTMLitem('pendingblock', $requests[$i]['id'], $data);
                                        $refresh = 1;
-                                       $text .= "    </TD>\n";
                                        if($requests[$i]['serveradmin']) {
-                                               $text .= "    <TD>\n";
                                                $cont = 
addContinuationsEntry('AJconfirmDeleteRequest', $cdata, SECINDAY);
-                                               $text .= "      <button 
dojoType=\"dijit.form.Button\">\n";
-                                               $text .= "        Delete\n";
-                                               $text .= "            <script 
type=\"dojo/method\" event=\"onClick\">\n";
-                                               $text .= "          
endReservation('$cont');\n";
-                                               $text .= "        </script>\n";
-                                               $text .= "      </button>\n";
-                                               $text .= "    </TD>\n";
+                                               $text .= 
getViewRequestHTMLitem('deletebtn', $cont);
                                        }
                                        else
                                                $text .= "    <TD></TD>\n";
@@ -1003,15 +941,8 @@ function viewRequests() {
                                # reservation is in the future
                                $text .= "    <TD></TD>\n";
                                if($requests[$i]['serveradmin']) {
-                                       $text .= "    <TD>\n";
                                        $cont = 
addContinuationsEntry('AJconfirmDeleteRequest', $cdata, SECINDAY);
-                                       $text .= "      <button 
dojoType=\"dijit.form.Button\">\n";
-                                       $text .= "        Delete\n";
-                                       $text .= "            <script 
type=\"dojo/method\" event=\"onClick\">\n";
-                                       $text .= "          
endReservation('$cont');\n";
-                                       $text .= "        </script>\n";
-                                       $text .= "      </button>\n";
-                                       $text .= "    </TD>\n";
+                                       $text .= 
getViewRequestHTMLitem('deletebtn', $cont);
                                }
                                else
                                        $text .= "    <TD></TD>\n";
@@ -1022,53 +953,30 @@ function viewRequests() {
                                $imgcont = addContinuationsEntry('startImage', 
$cdata, SECINDAY);
                                $imgurl = BASEURL . SCRIPT . 
"?continuation=$imgcont";
                                if($requests[$i]['serveradmin']) {
-                                       $text .= "    <TD align=right>\n";
-                                       $text .= "      <div 
dojoType=\"dijit.form.DropDownButton\">\n";
-                                       $text .= "        <span>More 
Options...</span>\n";
-                                       $text .= "        <div 
dojoType=\"dijit.Menu\">\n";
-                                       $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                       $text .= "               
iconClass=\"noicon\"\n";
-                                       $text .= "               
label=\"Edit\"\n";
-                                       $text .= "               
onClick=\"editReservation('$editcont');\">\n";
-                                       $text .= "          </div>\n";
+                                       $text .= 
getViewRequestHTMLitem('openmoreoptions');
+                                       $text .= 
getViewRequestHTMLitem('editoption', $editcont);
                                        if(array_key_exists($imageid, 
$resources['image']) && ! $cluster &&            # imageAdmin access, not a 
cluster,
                                           ($requests[$i]['currstateid'] == 8 
|| $requests[$i]['laststateid'] == 8)) { # reservation has been in inuse state
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"End Reservation & Create Image\"\n";
-                                               if($mode != 'AJviewRequests')
-                                                       $text .= "              
 onClick=\"window.location.href='$imgurl';\">\n";
-                                               else
-                                                       $text .= "              
 onClick=\"window.location.href=\'$imgurl\';\">\n";
-                                               $text .= "          </div>\n";
+                                               $data = array('doescape' => 0);
+                                               if($mode == 'AJviewRequests')
+                                                       $data['doescape'] = 1;
+                                               $text .= 
getViewRequestHTMLitem('endcreateoption', $imgurl, $data);
                                        }
-                                       /*else {
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"End Reservation & Create Image\" disabled>\n";
-                                               $text .= "          </div>\n";
-                                       }*/
+                                       /*else
+                                               $text .= 
getViewRequestHTMLitem('endcreateoptiondisable');*/
                                        // todo uncomment the following when 
live imaging works
                                        // todo add a check to ensure it is a VM
                                        /*if($requests[$i]['server'] && 
($requests[$i]['currstateid'] == 8 ||
                                                ($requests[$i]['currstateid'] 
== 14 && $requests[$i]['laststateid'] == 8))) {
                                                $cont = 
addContinuationsEntry('startCheckpoint', $cdata, SECINDAY);
                                                $url = BASEURL . SCRIPT . 
"?continuation=$cont";
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Create Image\"\n";
-                                               if($mode != 'AJviewRequests')
-                                                       $text .= "              
 onClick=\"window.location.href='$url';\">\n";
-                                               else
-                                                       $text .= "              
 onClick=\"window.location.href=\'$url\';\">\n";
-                                               $text .= "          </div>\n";
+                                               $data = array('doescape' => 0);
+                                               if($mode == 'AJviewRequests')
+                                                       $data['doescape'] = 1;
+                                               $text .= 
getViewRequestHTMLitem('checkpointoption', $imgurl, $data);
                                        }
-                                       elseif($requests[$i]['server'] && 
$requests[$i]['currstateid'] == 24) {
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Create Image\" disabled>\n";
-                                               $text .= "          </div>\n";
-                                       }*/
+                                       elseif($requests[$i]['server'] && 
$requests[$i]['currstateid'] == 24)
+                                               $text .= 
getViewRequestHTMLitem('checkpointoptiondisable');*/
                                        if(! $cluster &&
                                           $requests[$i]['OSinstalltype'] != 
'none' &&
                                           $requests[$i]['currstateid'] != 13 &&
@@ -1084,31 +992,13 @@ function viewRequests() {
                                           $requests[$i]['currstateid'] != 27 &&
                                           $requests[$i]['laststateid'] != 27) {
                                                $cont = 
addContinuationsEntry('AJrebootRequest', $cdata, SECINDAY);
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Reboot\">\n";
-                                               $text .= "                
<script type=\"dojo/method\" event=\"onClick\">\n";
-                                               $text .= "              
rebootRequest('$cont');\n";
-                                               $text .= "            
</script>\n";
-                                               $text .= "          </div>\n";
+                                               $text .= 
getViewRequestHTMLitem('rebootoption', $cont);
                                                $cont = 
addContinuationsEntry('AJreinstallRequest', $cdata, SECINDAY);
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Reinstall\">\n";
-                                               $text .= "                
<script type=\"dojo/method\" event=\"onClick\">\n";
-                                               $text .= "              
reinstallRequest('$cont');\n";
-                                               $text .= "            
</script>\n";
-                                               $text .= "          </div>\n";
+                                               $text .= 
getViewRequestHTMLitem('reinstalloption', $cont);
                                        }
                                        else {
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Reboot\" disabled>\n";
-                                               $text .= "          </div>\n";
-                                               $text .= "          <div 
dojoType=\"dijit.MenuItem\"\n";
-                                               $text .= "               
iconClass=\"noicon\"\n";
-                                               $text .= "               
label=\"Reinstall\" disabled>\n";
-                                               $text .= "          </div>\n";
+                                               $text .= 
getViewRequestHTMLitem('rebootoptiondisable');
+                                               $text .= 
getViewRequestHTMLitem('reinstalloptiondisable');
                                        }
                                        $text .= "       </div>\n";
                                        $text .= "     </div>\n";
@@ -1120,29 +1010,47 @@ function viewRequests() {
                        else
                                $text .= "    <TD></TD>\n";
 
+                       # print name of server request
+                       if($requests[$i]['server']) {
+                               if($requests[$i]['servername'] == '')
+                                       $text .= 
getViewRequestHTMLitem('servername', $requests[$i]['prettyimage']);
+                               else
+                                       $text .= 
getViewRequestHTMLitem('servername', $requests[$i]['servername']);
+                       }
+
                        # print name of image, add (Testing) if it is the test 
version of an image
-                       $text .= "    <TD>" . str_replace("'", "&#39;", 
$requests[$i]["prettyimage"]);
-                       if($requests[$i]["test"])
-                               $text .= " (Testing)";
-                       $text .= "</TD>\n";
+                       if(!$requests[$i]['server']) {
+                               $data = array('addtest' => 0);
+                               if($requests[$i]["test"])
+                                       $data['addtest'] = 1;
+                               $text .= getViewRequestHTMLitem('imagename', 
$requests[$i]['prettyimage'], $data);
+                       }
 
                        # print start time
-                       if(datetimeToUnix($requests[$i]["start"]) < 
-                          datetimeToUnix($requests[$i]["daterequested"])) {
-                               $text .= "    <TD>" . 
prettyDatetime($requests[$i]["daterequested"], 1) . "</TD>\n";
-                       }
-                       else {
-                               $text .= "    <TD>" . 
prettyDatetime($requests[$i]["start"], 1) . "</TD>\n";
+                       if(! $requests[$i]['server']) {
+                               $data = array('start' => $requests[$i]['start'],
+                                             'requested' => 
$requests[$i]['daterequested']);
+                               $text .= getViewRequestHTMLitem('starttime', 
'', $data);
                        }
 
                        # print end time
-                       if($requests[$i]['server'] && $requests[$i]['end'] == 
'2038-01-01 00:00:00')
-                               $text .= "    <TD>(none)</TD>\n";
-                       else
-                               $text .= "    <TD>" . 
prettyDatetime($requests[$i]["end"], 1) . "</TD>\n";
+                       $data = array('end' => $requests[$i]['end']);
+                       $text .= getViewRequestHTMLitem('endtime', '', $data);
 
                        # print date requested
-                       $text .= "    <TD>" . 
prettyDatetime($requests[$i]["daterequested"], 1) . "</TD>\n";
+                       if(! $requests[$i]['server'])
+                               $text .= getViewRequestHTMLitem('requesttime', 
$requests[$i]['daterequested']);
+
+                       # print server request details
+                       if($requests[$i]['server']) {
+                               $data = array('owner' => 
getUserUnityID($requests[$i]['userid']),
+                                             'requesttime' => 
$requests[$i]['daterequested'],
+                                             'admingroup' => 
$requests[$i]['serveradmingroup'],
+                                             'logingroup' => 
$requests[$i]['serverlogingroup'],
+                                             'image' => 
$requests[$i]['prettyimage'],
+                                             'starttime' => 
$requests[$i]['start']);
+                               $text .= 
getViewRequestHTMLitem('serverdetails', $requests[$i]['id'], $data);
+                       }
 
                        if(checkUserHasPerm('View Debug Information')) {
                                if(! is_null($requests[$i]['vmhostid'])) {
@@ -1155,19 +1063,19 @@ function viewRequests() {
                                        $row = mysql_fetch_assoc($qh);
                                        $vmhost = $row['hostname'];
                                }
-                               $text .= "    <TD align=center><span 
id=\"req{$requests[$i]['id']}\">";
-                               $text .= "{$requests[$i]["id"]}</span>\n";
+                               $text .= "    <TD align=center><a 
id=\"req{$requests[$i]['id']}\" ";
+                               $text .= 
"tabindex=0>{$requests[$i]["id"]}</a>\n";
                                $text .= "<div 
dojoType=\"vcldojo.HoverTooltip\" connectId=\"req{$requests[$i]['id']}\">";
-                               $text .= "Mgmt node: 
{$nodes[$requests[$i]["managementnodeid"]]['hostname']}<br>\n";
-                               $text .= "Computer ID: 
{$requests[$i]['computerid']}<br>\n";
-                               $text .= "Comp hostname: 
{$computers[$requests[$i]["computerid"]]["hostname"]}<br>\n";
-                               $text .= "Comp IP: 
{$requests[$i]["IPaddress"]}<br>\n";
-                               $text .= "Comp State ID: 
{$computers[$requests[$i]["computerid"]]["stateid"]}<br>\n";
-                               $text .= "Comp Type: 
{$requests[$i]['comptype']}<br>\n";
+                               $text .= "<strong>Mgmt node</strong>: 
{$nodes[$requests[$i]["managementnodeid"]]['hostname']}<br>\n";
+                               $text .= "<strong>Computer ID</strong>: 
{$requests[$i]['computerid']}<br>\n";
+                               $text .= "<strong>Comp hostname</strong>: 
{$computers[$requests[$i]["computerid"]]["hostname"]}<br>\n";
+                               $text .= "<strong>Comp IP</strong>: 
{$requests[$i]["IPaddress"]}<br>\n";
+                               $text .= "<strong>Comp State ID</strong>: 
{$computers[$requests[$i]["computerid"]]["stateid"]}<br>\n";
+                               $text .= "<strong>Comp Type</strong>: 
{$requests[$i]['comptype']}<br>\n";
                                if(! is_null($requests[$i]['vmhostid']))
-                                       $text .= "VM Host: $vmhost<br>\n";
-                               $text .= "Current State ID: 
{$requests[$i]["currstateid"]}<br>\n";
-                               $text .= "Last State ID: 
{$requests[$i]["laststateid"]}<br>\n";
+                                       $text .= "<strong>VM Host</strong>: 
$vmhost<br>\n";
+                               $text .= "<strong>Current State ID</strong>: 
{$requests[$i]["currstateid"]}<br>\n";
+                               $text .= "<strong>Last State ID</strong>: 
{$requests[$i]["laststateid"]}<br>\n";
                                $text .= "</div></TD>\n";
                        }
                        $text .= "  </TR>\n";
@@ -1250,11 +1158,10 @@ function viewRequests() {
                $text .= "<table id=\"longreslisttable\" summary=\"lists server 
reservations you currently have\" cellpadding=5>\n";
                $text .= "  <TR>\n";
                $text .= "    <TD colspan=3></TD>\n";
-               $text .= "    <TH>Environment</TH>\n";
-               $text .= "    <TH>Starting</TH>\n";
+               $text .= "    <TH>Name</TH>\n";
                $text .= "    <TH>Ending</TH>\n";
-               $text .= "    <TH>Initially requested</TH>\n";
                $computers = getComputers();
+               $text .= "    <TH>Details</TH>\n";
                if(checkUserHasPerm('View Debug Information'))
                        $text .= "    <TH>Req ID</TH>\n";
                $text .= "  </TR>\n";
@@ -1284,6 +1191,7 @@ function viewRequests() {
                $text .= "this may have caused.\n";
        }
 
+       # TODO problem with auto refresh not happening when server load not 
ready due to user account?
        $cont = addContinuationsEntry('AJviewRequests', array(), SECINDAY);
        $text .= "<INPUT type=hidden id=resRefreshCont value=\"$cont\">\n";
 
@@ -1481,6 +1389,233 @@ function viewRequests() {
 
 
////////////////////////////////////////////////////////////////////////////////
 ///
+/// \fn getViewRequestHTMLitem($item, $var1, $data)
+///
+/// \param $item - name of HTML section to be generated
+/// \param $var1 - generic variable to be used in HTML
+/// \param $data - an array of any extra data to be used in HTML
+///
+/// \return a string of HTML
+///
+/// \brief generates HTML for a specific portion of the current reservations
+/// page
+///
+////////////////////////////////////////////////////////////////////////////////
+function getViewRequestHTMLitem($item, $var1='', $data=array()) {
+       $r = '';
+       if($item == 'connectbtn') {
+               $r .= "    <TD>\n";
+               $r .= "      <FORM action=\"" . BASEURL . SCRIPT . "\" 
method=post>\n";
+               $r .= "      <INPUT type=hidden name=continuation 
value=\"$var1\">\n";
+               $r .= "      <button type=submit 
dojoType=\"dijit.form.Button\">\n";
+               $r .= "      Connect!\n";
+               $r .= "      </button>\n";
+               $r .= "      </FORM>\n";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'deletebtn') {
+               $r .= "    <TD>\n";
+               $r .= "      <button dojoType=\"dijit.form.Button\">\n";
+               $r .= "        Delete\n";
+               $r .= "       <script type=\"dojo/method\" 
event=\"onClick\">\n";
+               $r .= "          endReservation('$var1');\n";
+               $r .= "        </script>\n";
+               $r .= "      </button>\n";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'failedblock') {
+               $r .= "    <TD nowrap>\n";
+               $r .= "      <span class=scriptonly>\n";
+               $r .= "      <span class=compstatelink>";
+               $r .= "<a onClick=\"showResStatusPane($var1); return false;\" ";
+               $r .= "href=\"#\">Reservation failed</a></span>\n";
+               $r .= "      </span>\n";
+               $r .= "      <noscript>\n";
+               $r .= "      <span class=scriptoff>\n";
+               $r .= "      <span class=compstatelink>";
+               $r .= "Reservation failed</span>\n";
+               $r .= "      </span>\n";
+               $r .= "      </noscript>\n";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'removebtn') {
+               $r .= "    <TD>\n";
+               $r .= "      <button dojoType=\"dijit.form.Button\">\n";
+               $r .= "        Remove\n";
+               $r .= "       <script type=\"dojo/method\" 
event=\"onClick\">\n";
+               $r .= "          removeReservation('$var1');\n";
+               $r .= "        </script>\n";
+               $r .= "      </button>\n";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'timeoutblock') {
+               $r .= "    <TD>\n";
+               $r .= "      <span class=compstatelink>Reservation has timed 
out</span>\n";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'pendingblock') {
+               $r .= "    <TD>\n";
+               $r .= "      <span class=scriptonly>\n";
+               $r .= "      <span class=compstatelink><i>";
+               $r .= "<a onClick=\"showResStatusPane($var1); ";
+               $r .= "return false;\" href=\"#\">Pending...</a></i></span>\n";
+               $r .= "      </span>\n";
+               $r .= "      <noscript>\n";
+               $r .= "      <span class=scriptoff>\n";
+               $r .= "      <span class=compstatelink>";
+               $r .= "<i>Pending...</i></span>\n";
+               $r .= "      </span>\n";
+               $r .= "      </noscript>\n";
+               if(! empty($data['text']))
+                       $r .= "      {$data['text']}";
+               $r .= "    </TD>\n";
+               return $r;
+       }
+       if($item == 'openmoreoptions') {
+               $r .= "    <TD align=right>\n";
+               $r .= "      <div dojoType=\"dijit.form.DropDownButton\">\n";
+               $r .= "        <span>More Options...</span>\n";
+               $r .= "        <div dojoType=\"dijit.Menu\">\n";
+               return $r;
+       }
+       if($item == 'editoption') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Edit\"\n";
+               $r .= "               onClick=\"editReservation('$var1');\">\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'endcreateoption') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"End Reservation & Create 
Image\"\n";
+               if($data['doescape'])
+                       $r .= "               
onClick=\"window.location.href=\'$var1\';\">\n";
+               else
+                       $r .= "               
onClick=\"window.location.href='$var1';\">\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'endcreateoptiondisable') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"End Reservation & Create Image\" 
disabled\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'checkpointoption') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Create Image\"\n";
+               if($data['doescape'])
+                       $r .= "               
onClick=\"window.location.href=\'$var1\';\">\n";
+               else
+                       $r .= "               
onClick=\"window.location.href='$var1';\">\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'checkpointoptiondisable') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Create Image\" disabled\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'rebootoption') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Reboot\">\n";
+               $r .= "           <script type=\"dojo/method\" 
event=\"onClick\">\n";
+               $r .= "              rebootRequest('$var1');\n";
+               $r .= "            </script>\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'rebootoptiondisable') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Reboot\" disabled>\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'reinstalloption') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Reinstall\">\n";
+               $r .= "           <script type=\"dojo/method\" 
event=\"onClick\">\n";
+               $r .= "              reinstallRequest('$var1');\n";
+               $r .= "            </script>\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'reinstalloptiondisable') {
+               $r .= "          <div dojoType=\"dijit.MenuItem\"\n";
+               $r .= "               iconClass=\"noicon\"\n";
+               $r .= "               label=\"Reinstall\" disabled>\n";
+               $r .= "          </div>\n";
+               return $r;
+       }
+       if($item == 'imagename') {
+               $r .= "    <TD>" . str_replace("'", "&#39;", $var1);
+               if($data['addtest'])
+                       $r .= " (Testing)";
+               $r .= "</TD>\n";
+               return $r;
+       }
+       if($item == 'starttime') {
+               if(datetimeToUnix($data['start']) < 
datetimeToUnix($data['requested']))
+                       $r .= "    <TD>" . prettyDatetime($data['requested'], 
1) . "</TD>\n";
+               else
+                       $r .= "    <TD>" . prettyDatetime($data['start'], 1) . 
"</TD>\n";
+               return $r;
+       }
+       if($item == 'endtime') {
+               if($data['end'] == '2038-01-01 00:00:00')
+                       $r .= "    <TD>(none)</TD>\n";
+               else
+                       $r .= "    <TD>" . prettyDatetime($data['end'], 1) . 
"</TD>\n";
+               return $r;
+       }
+       if($item == 'requesttime') {
+               $r .= "    <TD>" . prettyDatetime($var1, 1) . "</TD>\n";
+               return $r;
+       }
+       if($item == 'servername') {
+               $r .= "    <TD>$var1</TD>\n";
+               return $r;
+       }
+       if($item == 'serverdetails') {
+               $r .= "<TD>\n";
+               $r .= "<a id=\"serverdetails$var1\" tabindex=0>";
+               $r .= "<img alt=\"details\" src=\"images/list.gif\"></a>\n";
+               $r .= "<div dojoType=\"vcldojo.HoverTooltip\" connectId=\"";
+               $r .= "serverdetails$var1\">\n";
+               $r .= "<strong>Owner</strong>: {$data['owner']}<br>\n";
+               $r .= "<strong>Environment</strong>: {$data['image']}<br>\n";
+               $r .= "<strong>Start Time</strong>: " . 
prettyDatetime($data['starttime'], 1) . "<br>\n";
+               $r .= "<strong>Initially Requested</strong>: " . 
prettyDatetime($data['requesttime'], 1) . "<br>\n";
+               if(empty($data['admingroup']))
+                       $r .= "<strong>Admin User Group</strong>: (none)<br>\n";
+               else
+                       $r .= "<strong>Admin User Group</strong>: 
{$data['admingroup']}<br>\n";
+               if(empty($data['logingroup']))
+                       $r .= "<strong>Access User Group</strong>: (none)\n";
+               else
+                       $r .= "<strong>Access User Group</strong>: 
{$data['logingroup']}\n";
+               $r .= "</div>\n";
+               $r .= "</TD>\n";
+               return $r;
+       }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+///
 /// \fn detailStatusHTML($reqid)
 ///
 /// \param $reqid - a request id
@@ -1917,10 +2052,15 @@ function AJeditRequest() {
                       'modifystart' => 0,
                       'allowindefiniteend' => 0);
        if($request['serverrequest']) {
+               if(empty($request['servername']))
+                       $request['servername'] = 
$request['reservations'][0]['prettyimage'];
+               $h .= "Name: <input type=\"text\" name=\"servername\" 
id=\"servername\" ";
+               $h .= "dojoType=\"dijit.form.TextBox\" style=\"width: 400px\" ";
+               $h .= "value=\"{$request['servername']}\"><br>";
                if($user['showallgroups'])
-                       $groups = getUserGroups(1);
+                       $groups = getUserGroups();
                else
-                       $groups = getUserGroups(1, $user['affiliationid']);
+                       $groups = getUserGroups(0, $user['affiliationid']);
                $h .= "Admin User Group: ";
                if(USEFILTERINGSELECT && count($groups) < 
FILTERINGSELECTTHRESHOLD) {
                        $h .= "<select dojoType=\"dijit.form.FilteringSelect\" 
id=\"admingrpsel\" ";
@@ -2384,6 +2524,7 @@ function AJsubmitEditRequest() {
                return;
        }
        $updategroups = 0;
+       $updateservername = 0;
        if($request['serverrequest']) {
                if($user['showallgroups'])
                        $groups = getUserGroups(1);
@@ -2400,9 +2541,30 @@ function AJsubmitEditRequest() {
                                       'cont' => $cont));
                        return;
                }
-               if($admingroupid != $request['admingroupid'] ||
-                       $logingroupid != $request['logingroupid'])
+               $testadmingroupid = $admingroupid;
+               if($admingroupid == 0)
+                       $testadmingroupid = '';
+               $testlogingroupid = $logingroupid;
+               if($logingroupid == 0)
+                       $testlogingroupid = '';
+               if($testadmingroupid != $request['admingroupid'] ||
+                       $testlogingroupid != $request['logingroupid'])
                        $updategroups = 1;
+               $servername = processInputVar('servername', ARG_STRING);
+               if(! preg_match('/^([-a-zA-Z0-9\. ]){3,255}$/', $servername)) {
+                       $cdata = getContinuationVar();
+                       $cont = addContinuationsEntry('AJsubmitEditRequest', 
$cdata, SECINDAY, 1, 0);
+                       sendJSON(array('status' => 'error',
+                                      'errmsg' => "The name can only contain 
letters, numbers, "
+                                               .  "spaces, dashes(-), and 
periods(.) and can "
+                                               .  "be from 3 to 255 characters 
long",
+                                      'cont' => $cont));
+                       return;
+               }
+               if($servername != $request['servername']) {
+                       $servername = mysql_real_escape_string($servername);
+                       $updateservername = 1;
+               }
        }
 
        // get semaphore lock
@@ -2512,6 +2674,10 @@ function AJsubmitEditRequest() {
        elseif($rc > 0) {
                updateRequest($requestid);
                if($updategroups) {
+                       if($admingroupid == 0)
+                               $admingroupid = 'NULL';
+                       if($logingroupid == 0)
+                               $logingroupid = 'NULL';
                        $query = "UPDATE serverrequest "
                               . "SET admingroupid = $admingroupid, "
                               .     "logingroupid = $logingroupid "
@@ -2522,6 +2688,12 @@ function AJsubmitEditRequest() {
                               . "WHERE id = $requestid";
                        doQuery($query, 101);
                }
+               if($updateservername) {
+                       $query = "UPDATE serverrequest "
+                              . "SET name = '$servername' "
+                              . "WHERE requestid = $requestid";
+                       doQuery($query, 101);
+               }
                sendJSON(array('status' => 'success'));
                semUnlock();
                return;

Modified: incubator/vcl/trunk/web/.ht-inc/serverprofiles.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/serverprofiles.php?rev=1302456&r1=1302455&r2=1302456&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/serverprofiles.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/serverprofiles.php Mon Mar 19 14:01:22 2012
@@ -91,6 +91,11 @@ function deployHTML() {
        $h .= "<div id=\"deployprofilediv\">\n";
        $h .= "<table summary=\"\">\n";
        $h .= "  <tr>\n";
+       $h .= "    <th align=right>Name:</th>\n";
+       $h .= "    <td><input type=\"text\" name=\"deployname\" 
id=\"deployname\" ";
+       $h .= "dojoType=\"dijit.form.TextBox\" style=\"width: 400px\"></td>\n";
+       $h .= "  </tr>\n";
+       $h .= "  <tr>\n";
        $h .= "    <th align=right>Environment:</th>\n";
        $h .= "    <td>\n";
        $resources = getUserResources(array("imageAdmin", "imageCheckOut"));
@@ -678,6 +683,7 @@ function AJserverProfileStoreData() {
 
////////////////////////////////////////////////////////////////////////////////
 function AJdeployServer() {
        global $user, $remoteIP;
+       $profilename = processInputVar('name', ARG_STRING);
        $profileid = processInputVar('profileid', ARG_NUMERIC);
        $imageid = processInputVar('imageid', ARG_NUMERIC);
        $resources = getUserResources(array("imageAdmin", "imageCheckOut"));
@@ -692,6 +698,15 @@ function AJdeployServer() {
                sendJSON($data);
                return;
        }
+       if(! preg_match('/^([-a-zA-Z0-9_\. ]){0,255}$/', $profilename)) {
+               $cont = addContinuationsEntry('AJdeployServer', array(), 
SECINDAY, 1, 0);
+               $data = array('error' => 1,
+                             'cont' => $cont,
+                             'msg' => "The name can only contain letters, 
numbers, spaces, dashes(-), "
+                                   . "underscores(_), and periods(.) and can 
be up to 255 characters long");
+               sendJSON($data);
+               return;
+       }
        $ipaddr = processInputVar('ipaddr', ARG_STRING);
        $ipaddrArr = explode('.', $ipaddr);
        if($ipaddr != '' && (! 
preg_match('/^(([0-9]){1,3}\.){3}([0-9]){1,3}$/', $ipaddr) ||
@@ -718,10 +733,11 @@ function AJdeployServer() {
                return;
        }
        $admingroupid = processInputVar('admingroupid', ARG_NUMERIC);
-       $usergroups = getUserEditGroups($user['id']);
-       $extraadmingroups = getServerProfileGroups($user['id'], 'admin');
-       if($admingroupid != 0 && ! array_key_exists($admingroupid, $usergroups) 
&&
-          ! array_key_exists($admingroupid, $extraadmingroups)) {
+       $usergroups = getUserGroups();
+       /*$usergroups = getUserEditGroups($user['id']);
+       $extraadmingroups = getServerProfileGroups($user['id'], 'admin');*/
+       if($admingroupid != 0 && ! array_key_exists($admingroupid, $usergroups) 
/*&&
+               ! array_key_exists($admingroupid, $extraadmingroups)*/) {
                $cont = addContinuationsEntry('AJdeployServer', array(), 
SECINDAY, 1, 0);
                $data = array('error' => 1,
                              'cont' => $cont,
@@ -730,9 +746,9 @@ function AJdeployServer() {
                return;
        }
        $logingroupid = processInputVar('logingroupid', ARG_NUMERIC);
-       $extralogingroups = getServerProfileGroups($user['id'], 'login');
-       if($logingroupid != 0 && ! array_key_exists($logingroupid, $usergroups) 
&&
-          ! array_key_exists($logingroupid, $extralogingroups)) {
+       #$extralogingroups = getServerProfileGroups($user['id'], 'login');
+       if($logingroupid != 0 && ! array_key_exists($logingroupid, $usergroups) 
/*&&
+               ! array_key_exists($logingroupid, $extralogingroups)*/) {
                $cont = addContinuationsEntry('AJdeployServer', array(), 
SECINDAY, 1, 0);
                $data = array('error' => 1,
                              'cont' => $cont,
@@ -907,8 +923,17 @@ function AJdeployServer() {
               . "WHERE requestid = $requestid";
        doQuery($query);
        $fields = array('requestid', 'serverprofileid');
-       #       TODO test deploying server with various combinations of profile 
items changed
        $values = array($requestid, $profileid);
+       if($profilename == '') {
+               $fields[] = 'name';
+               $profilename = $images[$imageid]['prettyname'];
+               $values[] = "'$profilename'";
+       }
+       else {
+               $fields[] = 'name';
+               $profilename = mysql_real_escape_string($profilename);
+               $values[] = "'$profilename'";
+       }
        if($ipaddr != '') {
                $fields[] = 'fixedIP';
                $values[] = "'$ipaddr'";
@@ -1090,9 +1115,9 @@ function processProfileInput() {
                return $err;
        }
 
-       if(! preg_match('/^([-a-zA-Z0-9\. ]){3,255}$/', $ret['name'])) {
+       if(! preg_match('/^([-a-zA-Z0-9_\. ]){3,255}$/', $ret['name'])) {
                $err['msg'] = "The name can only contain letters, numbers, 
spaces, dashes(-), "
-                           . "and periods(.) and can be from 3 to 255 
characters long";
+                           . "underscores(_), and periods(.) and can be from 3 
to 255 characters long";
                $err['field'] = 'name';
                $err['error'] = 1;
                return $err;

Modified: incubator/vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/utils.php?rev=1302456&r1=1302455&r2=1302456&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/utils.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/utils.php Mon Mar 19 14:01:22 2012
@@ -4702,6 +4702,7 @@ function findManagementNode($compid, $st
 /// \b test - test flag\n
 /// \b forimaging - 0 if request is normal, 1 if it is for imaging\n
 /// \b serverrequest - 0 if request is normal, 1 if it is a server request\n
+/// \b servername - name of server if server request\n
 /// \b admingroupid - id of admin user group if server request\n
 /// \b logingroupid - id of login user group if server request\n
 /// \b fixedIP - possible fixed IP address if server request\n
@@ -4803,6 +4804,7 @@ function getRequestInfo($id, $returnNULL
                $data['passwds'][$row['reservationid']][$data['userid']] = 
$row['password'];
        }
        $query = "SELECT id, "
+              .        "name, "
               .        "admingroupid, "
               .        "logingroupid, "
               .        "fixedIP, "
@@ -4812,6 +4814,7 @@ function getRequestInfo($id, $returnNULL
        $qh = doQuery($query, 101);
        if($row = mysql_fetch_assoc($qh)) {
                $data['serverrequest'] = 1;
+               $data['servername'] = $row['name'];
                $data['admingroupid'] = $row['admingroupid'];
                $data['logingroupid'] = $row['logingroupid'];
                $data['fixedIP'] = $row['fixedIP'];
@@ -5168,6 +5171,7 @@ function getCompFinalReservationTime($co
 /// \b vmhostid - if VM, id of host's entry in vmhost table, NULL otherwise\n
 /// the following additional items if a server request (values will be NULL
 /// if not a server request), some values can be NULL:\n
+/// \b servername - name of server request\n
 /// \b serverrequestid - from server request table\n
 /// \b fixedIP - if specified for request\n
 /// \b fixedMAC - if specified for request\n
@@ -5231,6 +5235,7 @@ function getUserRequests($type, $id=0) {
               .        "rs.managementnodeid, "
               .        "rs.imagerevisionid, "
               .        "rq.test,"
+              .        "sp.name AS servername, "
               .        "sp.requestid AS serverrequestid, "
               .        "sp.fixedIP, "
               .        "sp.fixedMAC, "

Modified: incubator/vcl/trunk/web/js/requests.js
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/js/requests.js?rev=1302456&r1=1302455&r2=1302456&view=diff
==============================================================================
--- incubator/vcl/trunk/web/js/requests.js (original)
+++ incubator/vcl/trunk/web/js/requests.js Mon Mar 19 14:01:22 2012
@@ -421,6 +421,8 @@ function hideEditResDlg() {
                dijit.byId('openenddate').destroy();
        if(dijit.byId('openendtime'))
                dijit.byId('openendtime').destroy();
+       if(dijit.byId('servername'))
+               dijit.byId('servername').destroy();
        if(dijit.byId('admingrpsel'))
                dijit.byId('admingrpsel').destroy();
        if(dijit.byId('logingrpsel'))
@@ -514,6 +516,8 @@ function submitEditReservation() {
                var tmp = 
dijit.byId('day').value.match(/([0-9]{4})([0-9]{2})([0-9]{2})/);
                var teststart = new Date(tmp[1], tmp[2] - 1, tmp[3], 
t.getHours(), t.getMinutes(), 0, 0);
        }
+       if(dijit.byId('servername'))
+               data.servername = dijit.byId('servername').get('value');
        if(dijit.byId('admingrpsel')) {
                data.admingroupid = dijit.byId('admingrpsel').get('value');
                data.logingroupid = dijit.byId('logingrpsel').get('value');

Modified: incubator/vcl/trunk/web/js/serverprofiles.js
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/js/serverprofiles.js?rev=1302456&r1=1302455&r2=1302456&view=diff
==============================================================================
--- incubator/vcl/trunk/web/js/serverprofiles.js (original)
+++ incubator/vcl/trunk/web/js/serverprofiles.js Mon Mar 19 14:01:22 2012
@@ -210,14 +210,19 @@ function getServerProfileDataDeployCB(da
                alert('You do not have access to apply this server profile.');
                return;
        }
+       dijit.byId('deployname').set('value', data.items.name);
        dojo.byId('appliedprofileid').value = data.items.id;
        dijit.byId('deployimage').set('value', data.items.imageid);
        //dijit.byId('deployfixedIP').set('value', data.items.fixedIP);
        //dijit.byId('deployfixedMAC').set('value', data.items.fixedMAC);
-       //dijit.byId('deployadmingroup').set('value', data.items.admingroupid);
-       //dijit.byId('deploylogingroup').set('value', data.items.logingroupid);
-       dojo.byId('deployadmingroup').value = data.items.admingroupid;
-       dojo.byId('deploylogingroup').value = data.items.logingroupid;
+       if(dijit.byId('deployadmingroup'))
+               dijit.byId('deployadmingroup').set('value', 
data.items.admingroupid);
+       else
+               dojo.byId('deployadmingroup').value = data.items.admingroupid;
+       if(dijit.byId('deploylogingroup'))
+               dijit.byId('deploylogingroup').set('value', 
data.items.logingroupid);
+       else
+               dojo.byId('deploylogingroup').value = data.items.logingroupid;
        dijit.byId('deploymonitored').set('value', 
parseInt(data.items.monitored));
 }
 
@@ -643,6 +648,7 @@ function submitDeploy() {
        }
        var data = {continuation: cont,
                    profileid: dojo.byId('appliedprofileid').value};
+       data.name = dijit.byId('deployname').get('value');
        if(dijit.byId('deployimage'))
                data.imageid = dijit.byId('deployimage').get('value');
        else


Reply via email to