You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2014/09/26 19:28:09 UTC
svn commit: r1627833 - in /vcl/trunk/web: .ht-inc/computer.php
.ht-inc/states.php .ht-inc/utils.php js/resources/computer.js
Author: jfthomps
Date: Fri Sep 26 17:28:09 2014
New Revision: 1627833
URL: http://svn.apache.org/r1627833
Log:
VCL-174 - NAT - support for sites that have small IP address ranges
VCL-780 - combine new reservation and current reservations pages
computer.php:
-modified fieldWidth: added nathost
-modified fieldDisplayName: added nathost and natenabled fields
-modified extraResourceFilters: added section for changing NAT
-modified addEditDialogHTML, AJsaveResource, validateResourceData, and addResource: added sections for natenabled and nathostid
-modified addResource: $values array for adding multiple computers was missing predictivemoduleid
-added AJcompNATchange
-added AJsubmitCompNATchange
states.php: added AJcompNATchange and AJsubmitCompNATchange to resource section
utils.php:
-modified getComputers: added natenabled and nathostid to returned data
-added getNAThosts
computer.js:
-modified colformatter: added natenabled
-modified addNewResource: added nathostid
-added toggleNAT
-modified inlineEditResourceCB, resetEditResource, saveResource, and saveResourceCB: added natenabled and nathostid
-added confirmNATchange
Modified:
vcl/trunk/web/.ht-inc/computer.php
vcl/trunk/web/.ht-inc/states.php
vcl/trunk/web/.ht-inc/utils.php
vcl/trunk/web/js/resources/computer.js
Modified: vcl/trunk/web/.ht-inc/computer.php
URL: http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/computer.php?rev=1627833&r1=1627832&r2=1627833&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/computer.php (original)
+++ vcl/trunk/web/.ht-inc/computer.php Fri Sep 26 17:28:09 2014
@@ -93,6 +93,7 @@ class Computer extends Resource {
$w = 8.5;
break;
case 'vmhost':
+ case 'nathost':
$w = 8;
break;
case 'location':
@@ -154,6 +155,10 @@ class Computer extends Resource {
return 'Provisioning Engine';
case 'predictivemodule':
return 'Predictive Loading Module';
+ case 'natenabled':
+ return 'Connect Using NAT';
+ case 'nathost':
+ return 'NAT Host';
}
return ucfirst($field);
}
@@ -176,6 +181,24 @@ class Computer extends Resource {
$h .= "<span>" . _("Actions for selected computers") . "</span>\n";
$h .= "<div dojoType=\"dijit.Menu\" id=\"actionmenu\">\n";
+ # change NAT
+ $h .= " <div dojoType=\"dijit.PopupMenuItem\">\n";
+ $h .= " <span>Change NAT</span>\n";
+ $h .= " <div dojoType=\"dijit.layout.ContentPane\"\n";
+ $h .= " style=\"background-color: white; padding: 5px; border: 1px solid black;\">\n";
+ $extra = array('onChange' => "toggleNAT('newnatenabled', 'newnathostid');");
+ $h .= labeledFormItem('newnatenabled', 'Connect Using NAT', 'check', '', '', '1', '', '', $extra);
+ $nathosts = getNAThosts(0, 1);
+ $disabled = array('disabled' => 'true');
+ $h .= labeledFormItem('newnathostid', 'NAT Host', 'select', $nathosts,
+ '', '', '', '', $disabled);
+ $cdata = $this->basecdata;
+ $cont = addContinuationsEntry('AJcompNATchange', $cdata);
+ $h .= " <input type=\"hidden\" id=\"natchangecont\" value=\"$cont\"><br>\n";
+ $h .= dijitButton('', 'Confirm NAT Change', 'confirmNATchange();', 0);
+ $h .= " </div>\n";
+ $h .= " </div>\n";
+
# change predictive loading module
$premodules = getPredictiveModules();
$h .= " <div dojoType=\"dijit.PopupMenuItem\">\n";
@@ -634,6 +657,16 @@ class Computer extends Resource {
$vals = getPredictiveModules();
$h .= labeledFormItem('predictivemoduleid', 'Predictive Loading Module', 'select', $vals);
+ # NAT
+ $h .= "<div class=\"boxedoptions\">\n";
+ # use NAT
+ $extra = array('onChange' => "toggleNAT('natenabled', 'nathostid');");
+ $h .= labeledFormItem('natenabled', 'Connect Using NAT', 'check', '', '', '1', '', '', $extra);
+ # NAT host
+ $nathosts = getNAThosts(0, 1);
+ $h .= labeledFormItem('nathostid', 'NAT Host', 'select', $nathosts);
+ $h .= "</div>\n"; # NAT
+
# compid
$h .= "<div id=\"compidspan\">\n";
$h .= "<label for=\"compid\">Computer ID:</label>\n";
@@ -788,6 +821,30 @@ class Computer extends Resource {
$updates[] = "eth1macaddress = '{$data['eth1macaddress']}'";
}
+ # NAT
+ if($data['natenabled'] != $olddata['natenabled']) {
+ if($data['natenabled']) {
+ $query = "INSERT INTO natmap "
+ . "(computerid, "
+ . "nathostid) "
+ . "VALUES ({$data['rscid']}, "
+ . "{$data['nathostid']})";
+ doQuery($query);
+ }
+ else {
+ $query = "DELETE FROM natmap "
+ . "WHERE computerid = {$data['rscid']}";
+ doQuery($query);
+ }
+ }
+ elseif($data['natenabled'] &&
+ $olddata['nathostid'] != $data['nathostid']) {
+ $query = "UPDATE natmap "
+ . "SET nathostid = {$data['nathostid']} "
+ . "WHERE computerid = {$data['rscid']}";
+ doQuery($query);
+ }
+
# other fields
$fields = array('type', 'IPaddress', 'privateIPaddress',
'provisioningid', 'platformid', 'scheduleid', 'ram',
@@ -1470,6 +1527,8 @@ class Computer extends Resource {
/// \b procspeed\n
/// \b network\n
/// \b predictivemoduleid - id of module to use when preloading nodes\n
+ /// \b natenabled - 1 to use NAT for this computer, 0 not to\n
+ /// \b nathostid - id of NAT host for this computer\n
/// \b location - free string describing location\n
/// \b mode - 'edit' or 'add'\n
/// \b addmode - 'single' or 'multiple'\n
@@ -1519,6 +1578,8 @@ class Computer extends Resource {
$return['procspeed'] = processInputVar('procspeed', ARG_NUMERIC);
$return['network'] = processInputVar('network', ARG_NUMERIC);
$return['predictivemoduleid'] = processInputVar('predictivemoduleid', ARG_NUMERIC);
+ $return['natenabled'] = processInputVar('natenabled', ARG_NUMERIC);
+ $return['nathostid'] = processInputVar('nathostid', ARG_NUMERIC);
$return['location'] = processInputVar('location', ARG_STRING);
$addmode = processInputVar('addmode', ARG_STRING);
@@ -1810,6 +1871,18 @@ class Computer extends Resource {
$return['error'] = 1;
$errormsg[] = "Invalid value submitted for Predictive Loading Module";
}
+ # natenabled
+ if($return['natenabled'] != 0 && $return['natenabled'] != 1) {
+ $return['error'] = 1;
+ $errormsg[] = "Invalid value for Connect Using NAT";
+ }
+ # nathostid
+ $nathosts = getNAThosts();
+ if(($return['natenabled'] && $return['nathostid'] == 0) ||
+ ($return['nathostid'] != 0 && ! array_key_exists($return['nathostid'], $nathosts))) {
+ $return['error'] = 1;
+ $errormsg[] = "Invalid value submitted for NAT Host";
+ }
# location
if(! preg_match('/^([-a-zA-Z0-9_\. ,@#\(\)]{0,255})$/', $return['location'])) {
$return['error'] = 1;
@@ -1972,6 +2045,16 @@ class Computer extends Resource {
. "{$data['vmprofileid']})";
doQuery($query);
}
+
+ # NAT
+ if($data['natenabled']) {
+ $query = "INSERT INTO natmap "
+ . "(computerid, "
+ . "nathostid) "
+ . "VALUES ($rscid, "
+ . "{$data['nathostid']})";
+ doQuery($query);
+ }
// add entry in resource table
$query = "INSERT INTO resource "
@@ -2006,7 +2089,8 @@ class Computer extends Resource {
$data['scheduleid'], $data['ram'],
$data['cores'], $data['procspeed'],
$data['network'], $noimageid,
- $norevid, "'{$data['location']}'");
+ $norevid, "'{$data['location']}'",
+ $data['predictivemoduleid']);
$query = "INSERT INTO computer ("
. implode(', ', $keys) . ") VALUES ("
@@ -2026,6 +2110,16 @@ class Computer extends Resource {
. "{$data['vmprofileid']})";
doQuery($query);
}
+
+ # NAT
+ if($data['natenabled']) {
+ $query = "INSERT INTO natmap "
+ . "(computerid, "
+ . "nathostid) "
+ . "VALUES ($rscid, "
+ . "{$data['nathostid']})";
+ doQuery($query);
+ }
// add entry in resource table
$query = "INSERT INTO resource "
@@ -3976,12 +4070,6 @@ class Computer extends Resource {
$msg .= "</span>\n";
}
- # clear user resource cache for this type
- $key = getKey(array(array($this->restype . "Admin"), array("administer"), 0, 1, 0));
- unset($_SESSION['userresources'][$key]);
- $key = getKey(array(array($this->restype . "Admin"), array("administer"), 0, 0, 0));
- unset($_SESSION['userresources'][$key]);
-
$ret = array('status' => 'success',
'title' => "Change Provisioning Engine",
'clearselection' => 1,
@@ -4054,10 +4142,7 @@ class Computer extends Resource {
$predictivename = getContinuationVar('predictivemodulename');
$compids = getContinuationVar('compids');
- $startcheck = time() + 900;
- $startcheckdt = unixToDatetime($startcheck);
$allids = implode(',', $compids);
-
$query = "UPDATE computer "
. "SET predictivemoduleid = $predictivemoduleid "
. "WHERE id in ($allids)";
@@ -4071,12 +4156,6 @@ class Computer extends Resource {
$msg .= "{$compdata[$compid]}<br>\n";
$msg .= "<br>";
- # clear user resource cache for this type
- $key = getKey(array(array($this->restype . "Admin"), array("administer"), 0, 1, 0));
- unset($_SESSION['userresources'][$key]);
- $key = getKey(array(array($this->restype . "Admin"), array("administer"), 0, 0, 0));
- unset($_SESSION['userresources'][$key]);
-
$ret = array('status' => 'success',
'title' => "Change Predictive Loading Module",
'clearselection' => 0,
@@ -4087,6 +4166,114 @@ class Computer extends Resource {
/////////////////////////////////////////////////////////////////////////////
///
+ /// \fn AJcompNATchange()
+ ///
+ /// \brief confirms changing provisioning engine of submitted computers
+ ///
+ /////////////////////////////////////////////////////////////////////////////
+ function AJcompNATchange() {
+ $natenabled = processInputVar('natenabled', ARG_NUMERIC);
+ $nathostid = processInputVar('nathostid', ARG_NUMERIC);
+ $nathosts = getNAThosts();
+ if(($natenabled != 0 && $natenabled != 1) ||
+ ($nathostid != 0 && ! array_key_exists($nathostid, $nathosts))) {
+ $ret = array('status' => 'error',
+ 'errormsg' => 'Invalid value submitted.');
+ sendJSON($ret);
+ return;
+ }
+ $compids = $this->validateCompIDs();
+ if(array_key_exists('error', $compids)) {
+ $ret = array('status' => 'error', 'errormsg' => $compids['msg']);
+ sendJSON($ret);
+ return;
+ }
+ if(count($compids) == 0) {
+ $ret = array('status' => 'noaction');
+ sendJSON($ret);
+ return;
+ }
+
+ $tmp = getUserResources(array($this->restype . "Admin"), array("administer"), 0, 1);
+ $computers = $tmp['computer'];
+
+ if($natenabled) {
+ $msg = "<strong>Enable</strong> Connect Using NAT and set the NAT ";
+ $msg .= "host<br>to <strong>{$nathosts[$nathostid]['hostname']}";
+ $msg .= "</strong> for the following computers?<br><br>";
+ }
+ else {
+ $msg = "<strong>Disable</strong> Connect Using NAT for the following ";
+ $msg .= "computers?<br><br>";
+ }
+ $complist = '';
+ foreach($compids as $compid)
+ $complist .= $computers[$compid] . "<br>\n";
+ $complist .= "<br>\n";
+
+ $cdata = $this->basecdata;
+ $cdata['compids'] = $compids;
+ $cdata['natenabled'] = $natenabled;
+ $cdata['nathostid'] = $nathostid;
+ $cont = addContinuationsEntry('AJsubmitCompNATchange', $cdata, SECINDAY, 1, 0);
+ $ret = array('status' => 'success',
+ 'title' => "Connect Using NAT Change",
+ 'btntxt' => 'Submit Connect Using NAT Change',
+ 'cont' => $cont,
+ 'actionmsg' => $msg,
+ 'complist' => $complist);
+ sendJSON($ret);
+ }
+
+ /////////////////////////////////////////////////////////////////////////////
+ ///
+ /// \fn AJsubmitCompNATchange
+ ///
+ /// \brief changes provisioning engine of submitted computers
+ ///
+ /////////////////////////////////////////////////////////////////////////////
+ function AJsubmitCompNATchange() {
+ $natenabled = getContinuationVar('natenabled');
+ $nathostid = getContinuationVar('nathostid');
+ $compids = getContinuationVar('compids');
+
+ $allids = implode(',', $compids);
+ $query = "DELETE FROM natmap "
+ . "WHERE computerid IN ($allids)";
+ doQuery($query);
+ if($natenabled) {
+ $query = "INSERT INTO natmap "
+ . "SELECT id, "
+ . "$nathostid "
+ . "FROM computer "
+ . "WHERE id IN ($allids)";
+ doQuery($query);
+ }
+
+ $resources = getUserResources(array($this->restype . "Admin"), array("administer"));
+ $compdata = $resources[$this->restype];
+
+ $msg = "Connect Using NAT was <strong>";
+ if($natenabled)
+ $msg .= "Enabled";
+ else
+ $msg .= "Disabled";
+ $msg .= "</strong> for the following computers:<br><br>\n";
+ foreach($compids as $compid)
+ $msg .= "{$compdata[$compid]}<br>\n";
+ $msg .= "<br>";
+
+ $ret = array('status' => 'success',
+ 'title' => "Change Connect Using NAT",
+ 'clearselection' => 0,
+ 'refreshcount' => 1,
+ 'nathostid' => $nathostid, # todo
+ 'msg' => $msg);
+ sendJSON($ret);
+ }
+
+ /////////////////////////////////////////////////////////////////////////////
+ ///
/// \fn AJcompScheduleChange()
///
/// \brief confirms changing schedule of submitted computers
Modified: vcl/trunk/web/.ht-inc/states.php
URL: http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/states.php?rev=1627833&r1=1627832&r2=1627833&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/states.php (original)
+++ vcl/trunk/web/.ht-inc/states.php Fri Sep 26 17:28:09 2014
@@ -199,6 +199,8 @@ $noHTMLwrappers = array('sendRDPfile',
'AJsubmitCompProvisioningChange',
'AJcompPredictiveModuleChange',
'AJsubmitCompPredictiveModuleChange',
+ 'AJcompNATchange',
+ 'AJsubmitCompNATchange',
'AJsubmitCompStateChange',
'AJsubmitComputerStateLater',
'AJconnectRequest',
@@ -614,6 +616,8 @@ $actions['mode']['AJcompProvisioningChan
$actions['mode']['AJsubmitCompProvisioningChange'] = "AJsubmitCompProvisioningChange";
$actions['mode']['AJcompPredictiveModuleChange'] = "AJcompPredictiveModuleChange";
$actions['mode']['AJsubmitCompPredictiveModuleChange'] = "AJsubmitCompPredictiveModuleChange";
+$actions['mode']['AJcompNATchange'] = "AJcompNATchange";
+$actions['mode']['AJsubmitCompNATchange'] = "AJsubmitCompNATchange";
$actions['mode']['AJsubmitCompStateChange'] = "AJsubmitCompStateChange";
$actions['mode']['AJsubmitComputerStateLater'] = "AJsubmitComputerStateLater";
$actions['mode']['jsonImageConnectMethods'] = "jsonImageConnectMethods";
@@ -670,6 +674,8 @@ $actions['pages']['AJcompProvisioningCha
$actions['pages']['AJsubmitCompProvisioningChange'] = "resource";
$actions['pages']['AJcompPredictiveModuleChange'] = "resource";
$actions['pages']['AJsubmitCompPredictiveModuleChange'] = "resource";
+$actions['pages']['AJcompNATchange'] = "resource";
+$actions['pages']['AJsubmitCompNATchange'] = "resource";
$actions['pages']['AJsubmitCompStateChange'] = "resource";
$actions['pages']['AJsubmitComputerStateLater'] = "resource";
$actions['pages']['jsonImageConnectMethods'] = "resource";
Modified: vcl/trunk/web/.ht-inc/utils.php
URL: http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1627833&r1=1627832&r2=1627833&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Fri Sep 26 17:28:09 2014
@@ -8121,12 +8121,16 @@ function sortAvailableTimesByStart($a, $
/// \b provisioningid - id of provisioning engine\n
/// \b provisioning - pretty name of provisioning engine\n
/// \b vmprofileid - if vmhost, id of vmprofile
-/// need to be used to manage computer
+/// need to be used to manage computer\n
+/// \b natenabled - 0 or 1; if NAT is enabled for this computer\n
+/// \b nathostid - id from nathost table if NAT is enabled or empty string if
+/// not
///
/// \brief builds an array of computers
///
////////////////////////////////////////////////////////////////////////////////
function getComputers($sort=0, $includedeleted=0, $compid="") {
+ $nathosts = getNAThosts();
$return = array();
$query = "SELECT c.id AS id, "
. "st.name AS state, "
@@ -8163,7 +8167,8 @@ function getComputers($sort=0, $included
. "pr.prettyname AS provisioning, "
. "vh2.vmprofileid, "
. "c.predictivemoduleid, "
- . "m.prettyname AS predictivemodule "
+ . "m.prettyname AS predictivemodule, "
+ . "nh.id AS nathostid "
. "FROM state st, "
. "platform p, "
. "schedule sc, "
@@ -8179,6 +8184,8 @@ function getComputers($sort=0, $included
. "LEFT JOIN computer c2 ON (c2.id = vh.computerid) "
. "LEFT JOIN image next ON (c.nextimageid = next.id) "
. "LEFT JOIN provisioning pr ON (c.provisioningid = pr.id) "
+ . "LEFT JOIN natmap nm ON (nm.computerid = c.id) "
+ . "LEFT JOIN nathost nh ON (nm.nathostid = nh.id) "
. "WHERE c.stateid = st.id AND "
. "c.platformid = p.id AND "
. "c.scheduleid = sc.id AND "
@@ -8196,6 +8203,14 @@ function getComputers($sort=0, $included
$query .= "ORDER BY c.hostname";
$qh = doQuery($query, 180);
while($row = mysql_fetch_assoc($qh)) {
+ if(is_null($row['nathostid'])) {
+ $row['natenabled'] = 0;
+ $row['nathost'] = '';
+ }
+ else {
+ $row['natenabled'] = 1;
+ $row['nathost'] = $nathosts[$row['nathostid']]['hostname'];
+ }
$return[$row['id']] = $row;
}
if($sort) {
@@ -8607,6 +8622,42 @@ function getUsedBlockComputerids($start,
return $compids;
}
+
+////////////////////////////////////////////////////////////////////////////////
+///
+/// \fn getNAThosts($id=0, $sort=0)
+///
+/// \param $id - (optional) only get info for this NAT host
+/// \param $sort - (optional) 1 to sort; 0 not to
+///
+/// \return an array with info about the NAT hosts; each element's index is the
+/// id from the table; each element has the following items\n
+/// \b hostname\n
+/// \b natIP - IP to which users will connect
+///
+/// \brief builds an array of NAT hosts
+///
+////////////////////////////////////////////////////////////////////////////////
+function getNAThosts($id=0, $sort=0) {
+ $nathosts = array();
+ $query = "SELECT n.id, "
+ . "n.natIP, "
+ . "COALESCE(c.hostname, m.hostname) AS hostname "
+ . "FROM nathost n "
+ . "LEFT JOIN resource r ON (n.resourceid = r.id) "
+ . "LEFT JOIN resourcetype rt ON (r.resourcetypeid = rt.id) "
+ . "LEFT JOIN computer c ON (c.id = r.subid AND rt.name = 'computer') "
+ . "LEFT JOIN managementnode m ON (m.id = r.subid AND rt.name = 'managementnode')";
+ if($id)
+ $query .= " WHERE n.id = $id";
+ $qh = doQuery($query);
+ while($row = mysql_fetch_assoc($qh))
+ $nathosts[$row['id']] = $row;
+ if($sort)
+ uasort($nathosts, "sortKeepIndex");
+ return $nathosts;
+}
+
////////////////////////////////////////////////////////////////////////////////
///
/// \fn getBlockTimeData($start, $end)
Modified: vcl/trunk/web/js/resources/computer.js
URL: http://svn.apache.org/viewvc/vcl/trunk/web/js/resources/computer.js?rev=1627833&r1=1627832&r2=1627833&view=diff
==============================================================================
--- vcl/trunk/web/js/resources/computer.js (original)
+++ vcl/trunk/web/js/resources/computer.js Fri Sep 26 17:28:09 2014
@@ -93,7 +93,8 @@ Computer.prototype.colformatter = functi
else if(obj.field == 'notes' && value) {
return value.replace('@', '<br>').replace(/\n/g, '<br>');
}
- else if(obj.field == 'deleted') {
+ else if(obj.field == 'deleted' ||
+ obj.field == 'natenabled') {
if(value == "0")
return '<span class="rederrormsg">false</span>';
if(value == "1")
@@ -515,6 +516,7 @@ function addNewResource(title) {
dojo.addClass('vmprofilespan', 'hidden');
dojo.addClass('curimgspan', 'hidden');
dojo.addClass('compidspan', 'hidden');
+ dijit.byId('nathostid').set('disabled', true);
dijit.byId('addeditdlg').show();
}
@@ -545,6 +547,15 @@ function toggleAddMultiple() {
recenterDijitDialog('addeditdlg');
}
+function toggleNAT(chkid, selid) {
+ if(dijit.byId(chkid).checked) {
+ dijit.byId(selid).set('disabled', false);
+ }
+ else {
+ dijit.byId(selid).set('disabled', true);
+ }
+}
+
function inlineEditResourceCB(data, ioArgs) {
dojo.addClass('singlemultiplediv', 'hidden');
toggleAddSingle();
@@ -603,6 +614,15 @@ function inlineEditResourceCB(data, ioAr
dijit.byId('predictivemoduleid').set('value', data.items.data.predictivemoduleid);
dojo.byId('compid').innerHTML = data.items.data.id;
dijit.byId('location').set('value', data.items.data.location);
+ if(data.items.data.natenabled == 1) {
+ dijit.byId('natenabled').set('checked', true);
+ dijit.byId('nathostid').set('disabled', false);
+ dijit.byId('nathostid').set('value', data.items.data.nathostid);
+ }
+ else {
+ dijit.byId('natenabled').set('checked', false);
+ dijit.byId('nathostid').set('disabled', true);
+ }
dojo.byId('addeditdlgerrmsg').innerHTML = '';
dijit.byId('addeditdlg').show();
}
@@ -707,6 +727,8 @@ function resetEditResource() {
dojo.removeClass('vmprofilespan', 'hidden');
dojo.removeClass('curimgspan', 'hidden');
dojo.removeClass('compidspan', 'hidden');
+ dijit.byId('natenabled').set('checked', false);
+ dijit.byId('nathostid').set('disabled', true);
}
function saveResource() {
@@ -750,6 +772,13 @@ function saveResource() {
data['scheduleid'] = dijit.byId('scheduleid').get('value');
data['network'] = dijit.byId('network').get('value');
data['predictivemoduleid'] = dijit.byId('predictivemoduleid').get('value');
+ data['natenabled'] = dijit.byId('natenabled').get('value');
+ if(data['natenabled'] == 1)
+ data['nathostid'] = dijit.byId('nathostid').get('value');
+ else {
+ data['natenabled'] = 0;
+ data['nathostid'] = 0;
+ }
data['addmode'] = dijit.byId('mode').get('value');
dijit.byId('addeditbtn').set('disabled', true);
@@ -835,6 +864,8 @@ function saveResourceCB(data, ioArgs) {
resourcegrid.store.setValue(item, 'predictivemodule', data.items.data.predictivemodule);
resourcegrid.store.setValue(item, 'location', data.items.data.location);
resourcegrid.store.setValue(item, 'provisioning', data.items.data.provisioning);
+ resourcegrid.store.setValue(item, 'natenabled', data.items.data.natenabled);
+ resourcegrid.store.setValue(item, 'nathost', data.items.data.nathost);
},
onComplete: function(items, result) {
// when call resourcegrid.sort directly, the table contents disappear; not sure why
@@ -918,6 +949,19 @@ function confirmPredictiveModuleChange()
confirmAction(data);
}
+function confirmNATchange() {
+ var data = {continuation: dojo.byId('natchangecont').value};
+ if(dijit.byId('newnatenabled').get('value') == 1) {
+ data['natenabled'] = 1;
+ data['nathostid'] = dijit.byId('newnathostid').get('value');
+ }
+ else {
+ data['natenabled'] = 0;
+ data['nathostid'] = 0;
+ }
+ confirmAction(data);
+}
+
function generateDHCPdata(type) {
var data = {continuation: dojo.byId(type + 'dhcpcont').value,
type: type};