658 lines
24 KiB
HTML
658 lines
24 KiB
HTML
<!--
|
|
|
|
General Network Preferences
|
|
Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
|
|
|
|
$Id: settingsGlobalNetwork.html 597 2015-04-20 11:41:28Z imoore76 $
|
|
|
|
-->
|
|
<ul>
|
|
<li><a href="#vboxGlobalNATNetworks"><span class='translate'>NAT Networks</span></a>
|
|
<li><a href="#vboxGlobalHostNetworking"><span class='translate'>Host-only Networks</span></a>
|
|
</ul>
|
|
<div id='vboxGlobalNATNetworks'>
|
|
<table style='width: 100%; margin-left:auto; margin-right:auto;' class='vboxInvisible'>
|
|
<tr style='vertical-align:top'>
|
|
<td>
|
|
<div class='vboxBordered' style='height: 280px'>
|
|
<table style='width:100%; border-spacing: 0px;' class='vboxList vboxHover'>
|
|
<thead>
|
|
<tr>
|
|
<th style='width: 140px; padding-left: 4px;text-align:left' class='translate'>Active</th>
|
|
<th style='text-align:left' class='translate'>Name</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id='vboxSettingsGlobalNATNetList'>
|
|
<tr><td>asdf</td><td>asdf</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
<td style='width: 1%; padding: 4px;' id='vboxSettingsGlobalNATNetToolbar'></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div id='vboxGlobalHostNetworking'>
|
|
<table style='width: 100%; margin-left:auto; margin-right:auto;' class='vboxInvisible'>
|
|
<tr style='vertical-align:top'>
|
|
<td >
|
|
<ul id='vboxSettingsGlobalNetList' class='vboxBordered vboxList vboxHover' style='width: 100%; margin-top: 0px;'>
|
|
<li>interface</li>
|
|
</ul>
|
|
</td>
|
|
<td style='width: 1%; padding: 4px;' id='vboxSettingsGlobalNetToolbar'></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Edit Host Networking Properties Dialog -->
|
|
<div id='vboxSettingsGlobalNetEditDialog' style='display: none'>
|
|
|
|
<div id='vboxSettingsGlobalNetEdit' class='vboxTabbed'>
|
|
<ul>
|
|
<li><a href="#vboxSettingsGlobalNetEditAdapter"><span class='translate'>Adapter</span></a></li>
|
|
<li><a href="#vboxSettingsGlobalNetEditDHCP"><span class='translate'>DHCP Server</span></a></li>
|
|
</ul>
|
|
<div id="vboxSettingsGlobalNetEditAdapter" class="vboxDialogContent vboxTabContent">
|
|
<table class="vboxSettingsTable">
|
|
<tr>
|
|
<th><span class='translate'>IPv4 Address:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetIPv4' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>IPv4 Network Mask:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetIPv4Mask' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>IPv6 Address:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetIPv6' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>IPv6 Network Mask Length:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetIPv6Mask' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div id="vboxSettingsGlobalNetEditDHCP" class='vboxDialogContent vboxTabContent'>
|
|
<table class="vboxSettingsTable">
|
|
<tr>
|
|
<td colspan='2'><label><input type='checkbox' class='vboxCheckbox vboxEnablerCheckbox' id='vboxSettingsGlobalNetDHCPEnabled' /> <span class='translate'>Enable Server</span></label></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Server Address:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetServerAddress' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Server Mask:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetServerMask' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Lower Address Bound:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetLower' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Upper Address Bound:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNetUpper' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Edit NAT NET Networking Properties Dialog -->
|
|
<div id='vboxSettingsGlobalNATNetworkEditDialog' style='display: none'>
|
|
|
|
|
|
<div class='vboxDialogContent'>
|
|
<table class="vboxSettingsTable">
|
|
<tr>
|
|
<td colspan='2'><label><input type='checkbox' class='vboxCheckbox vboxEnablerCheckbox' id='vboxSettingsGlobalNATNetEnabled' /> <span class='translate'>Enable Network</span></label></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Network Name:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNATNetName' style='width:200px' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Network CIDR:</span></th>
|
|
<td><input type='text' class='vboxText' id='vboxSettingsGlobalNATNetNetwork' style='width:200px' /></td>
|
|
</tr>
|
|
<tr>
|
|
<th><span class='translate'>Network Options:</span></th>
|
|
<td><label><input type='checkbox' class='vboxCheckbox' id='vboxSettingsGlobalNATNetDHCP' /> <span class='translate vboxEnablerListen'>Supports DHCP</span></label></td>
|
|
</tr>
|
|
<tr>
|
|
<th></th>
|
|
<td><label><input type='checkbox' class='vboxCheckbox vboxEnablerTrigger' id='vboxSettingsGlobalNATNetIPv6' /> <span class='translate vboxEnablerListen'>Supports IPv6</span></label></td>
|
|
</tr>
|
|
<tr>
|
|
<th></th>
|
|
<td><label><input type='checkbox' class='vboxCheckbox' id='vboxSettingsGlobalNATNetIPv6Route' /> <span class='translate vboxEnablerListen'>Advertise Default IPv6 Route</span></label></td>
|
|
</tr>
|
|
<tr>
|
|
<th></th>
|
|
<td><input type='button' class='vboxButton' id='vboxSettingsGlobalNATNetRules' value='Port Forwarding' /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script type='text/javascript'>
|
|
|
|
/* Build Host interface Toolbar */
|
|
|
|
var sButtons = new Array(
|
|
|
|
{
|
|
'name' : 'addNet',
|
|
'label' : 'Add host-only network',
|
|
'icon' : 'add_host_iface',
|
|
'enabled' : function () { return true; },
|
|
'click' : function () {
|
|
|
|
var refreshInterfaces = function(){
|
|
var l = new vboxLoader();
|
|
l.add('hostOnlyInterfacesGet',function(d){$('#vboxSettingsDialog').data('vboxHostOnlyInterfaces',d.responseData);});
|
|
l.onLoad = function(){
|
|
vboxSettingsGlobalNetworkAddAdpaters();
|
|
vboxVMDataMediator.refreshVMData('host');
|
|
};
|
|
l.run();
|
|
};
|
|
|
|
var l = new vboxLoader();
|
|
l.add('hostOnlyInterfaceCreate',function(d){
|
|
|
|
if(d && d.responseData && d.responseData.progress) {
|
|
vboxProgress({'progress':d.responseData.progress,'persist':d.persist},function(){
|
|
$('#vboxSettingsGlobalNetList').html('<li><img src="images/spinner.gif" /></li>');
|
|
setTimeout(refreshInterfaces,2000);
|
|
},null,trans('Add host-only network','UIGlobalSettingsNetwork'),'',true);
|
|
}
|
|
|
|
});
|
|
|
|
l.run();
|
|
|
|
}
|
|
},
|
|
|
|
{
|
|
'name' : 'delNet',
|
|
'label' : 'Remove host-only network',
|
|
'icon' : 'remove_host_iface',
|
|
'enabled' : function (item) { return ($(item).data('interface')); },
|
|
'click' : function () {
|
|
|
|
var item = $('#vboxSettingsGlobalNetList').children('li.vboxListItemSelected').first();
|
|
|
|
var buttons = {};
|
|
buttons[trans('OK','QIMessageBox')] = function() {
|
|
|
|
var dialog = this;
|
|
var item = $('#vboxSettingsGlobalNetList').children('li.vboxListItemSelected').first();
|
|
|
|
var l = new vboxLoader();
|
|
l.add('hostOnlyInterfaceRemove',function(d){
|
|
|
|
if(d && d.responseData && d.responseData.progress) {
|
|
vboxProgress({'progress':d.responseData.progress,'persist':d.persist},function(){
|
|
var l2 = new vboxLoader();
|
|
l2.add('hostOnlyInterfacesGet',function(d){$('#vboxSettingsDialog').data('vboxHostOnlyInterfaces',d.responseData);});
|
|
l2.onLoad = function(){
|
|
vboxSettingsGlobalNetworkAddAdpaters();
|
|
vboxVMDataMediator.refreshVMData('host');
|
|
};
|
|
l2.run();
|
|
},null,trans('Remove host-only network','UIGlobalSettingsNetwork'),'',true);
|
|
}
|
|
|
|
},{'id':$(item).data('interface').id});
|
|
|
|
l.onLoad = function(){$(dialog).empty().remove();};
|
|
l.run();
|
|
};
|
|
vboxConfirm(trans("<p>Deleting this host-only network will remove " +
|
|
"the host-only interface this network is based on. Do you want to " +
|
|
"remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p>" +
|
|
"<p><b>Note:</b> this interface may be in use by one or more " +
|
|
"virtual network adapters belonging to one of your VMs. " +
|
|
"After it is removed, these adapters will no longer be usable until " +
|
|
"you correct their settings by either choosing a different interface " +
|
|
"name or a different adapter attachment type.</p>",'UIMessageCenter').replace('%1',$(item).data('interface').name),buttons);
|
|
}
|
|
},
|
|
{
|
|
'name' : 'editNet',
|
|
'label' : 'Edit host-only network',
|
|
'icon' : 'guesttools',
|
|
'enabled' : function (item) { return ($(item).data('interface')); },
|
|
'click' : function () {
|
|
vboxSettingsGlobalNetEditDialog();
|
|
}
|
|
},{
|
|
name : 'refreshNet',
|
|
'label' : 'Refresh',
|
|
'language_context': 'UIVMLogViewer',
|
|
'icon' : 'refresh',
|
|
click: function() {
|
|
var l = new vboxLoader();
|
|
l.add('hostOnlyInterfacesGet',function(d){$('#vboxSettingsDialog').data('vboxHostOnlyInterfaces',d.responseData);});
|
|
l.onLoad = function(){
|
|
vboxSettingsGlobalNetworkAddAdpaters();
|
|
};
|
|
l.run();
|
|
}
|
|
}
|
|
);
|
|
|
|
var netToolbar = new vboxToolbarSmall({buttons: sButtons, language_context: 'UIGlobalSettingsNetwork'});
|
|
netToolbar.renderTo('vboxSettingsGlobalNetToolbar');
|
|
|
|
$('#vboxSettingsGlobalNetList').on('select',function(e,i){
|
|
netToolbar.update(i);
|
|
});
|
|
|
|
|
|
/* Build nat network Toolbar */
|
|
|
|
var sButtons = new Array(
|
|
|
|
{
|
|
'name' : 'addNet',
|
|
'label' : 'Add NAT network',
|
|
'icon' : 'add_host_iface',
|
|
'click' : function () {
|
|
|
|
// Elect name...
|
|
var netNameTpl = 'NatNetwork';
|
|
var number = 1;
|
|
var netName = netNameTpl + number++;
|
|
|
|
while($('#vboxSettingsGlobalNATNetList').find('td:contains("'+netName+'")').length) {
|
|
netName = netNameTpl + number++;
|
|
}
|
|
vboxSettingsGlobalNATNetworksAddNet({'enabled':false,'networkName':netName,'portForwardRules4':[],'portForwardRules6':[]});
|
|
|
|
|
|
}
|
|
},
|
|
|
|
{
|
|
'name' : 'delNet',
|
|
'label' : 'Remove NAT network',
|
|
'icon' : 'remove_host_iface',
|
|
'enabled' : function (item) { return (item); },
|
|
'click' : function () {
|
|
|
|
var item = $('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first();
|
|
|
|
var buttons = {};
|
|
buttons[trans('OK','QIMessageBox')] = function() {
|
|
|
|
$(item).remove();
|
|
$('#vboxSettingsGlobalNATNetList').trigger('select', null);
|
|
$(this).empty().remove();
|
|
};
|
|
vboxConfirm(trans("<p>Deleting this host-only network will remove " +
|
|
"the host-only interface this network is based on. Do you want to " +
|
|
"remove the (host-only network) interface <nobr><b>%1</b>?</nobr></p>" +
|
|
"<p><b>Note:</b> this interface may be in use by one or more " +
|
|
"virtual network adapters belonging to one of your VMs. " +
|
|
"After it is removed, these adapters will no longer be usable until " +
|
|
"you correct their settings by either choosing a different interface " +
|
|
"name or a different adapter attachment type.</p>",'UIMessageCenter').replace('%1',$(item).data('NATNetwork').networkName),buttons);
|
|
}
|
|
},
|
|
{
|
|
'name' : 'editNet',
|
|
'label' : 'Edit NAT network',
|
|
'icon' : 'guesttools',
|
|
'enabled' : function (item) { return (item); },
|
|
'click' : function () {
|
|
vboxSettingsGlobalNATNetworkEditDialog();
|
|
}
|
|
},{
|
|
name : 'refreshNet',
|
|
'label' : 'Refresh',
|
|
'language_context': 'UIVMLogViewer',
|
|
'icon' : 'refresh',
|
|
click: function() {
|
|
var l = new vboxLoader();
|
|
l.add('vboxNATNetworksGet',function(d){$('#vboxSettingsDialog').data('vboxNATNetworks',d.responseData);});
|
|
l.onLoad = function(){
|
|
vboxSettingsGlobalNATNetworksAdd();
|
|
};
|
|
l.run();
|
|
}
|
|
}
|
|
);
|
|
|
|
var natNetToolbar = new vboxToolbarSmall({buttons: sButtons, language_context: 'UIGlobalSettingsNetwork'});
|
|
natNetToolbar.renderTo('vboxSettingsGlobalNATNetToolbar');
|
|
|
|
$('#vboxSettingsGlobalNATNetList').on('select',function(e,i){
|
|
natNetToolbar.update(i);
|
|
});
|
|
|
|
/*
|
|
*
|
|
* Function to fill network adapters
|
|
*
|
|
*/
|
|
function vboxSettingsGlobalNetworkAddAdpater(n) {
|
|
|
|
// If the adapter exists, don't add it
|
|
var exists = false;
|
|
$('#vboxSettingsGlobalNetList').children('li').each(function(){
|
|
if($(this).data('interface').id == n.id) {
|
|
exists = true;
|
|
return false;
|
|
}
|
|
});
|
|
|
|
if(exists) return;
|
|
|
|
$('<li />').attr({'class':'vboxListItem'}).html($('<div />').text(n.name).html()).hoverClass('vboxHover').data('interface',n).click(function(){
|
|
$(this).parent().children('li.vboxListItemSelected').removeClass('vboxListItemSelected').addClass('vboxListItem');
|
|
$(this).addClass('vboxListItemSelected').removeClass('vboxListItem');
|
|
$('#vboxSettingsGlobalNetList').trigger('select',this);
|
|
}).appendTo($('#vboxSettingsGlobalNetList'));
|
|
|
|
}
|
|
|
|
/*
|
|
*
|
|
* Fill network adapters
|
|
*
|
|
*/
|
|
function vboxSettingsGlobalNetworkAddAdpaters() {
|
|
$('#vboxSettingsGlobalNetList').children().remove();
|
|
var nics = $('#vboxSettingsDialog').data('vboxHostOnlyInterfaces').networkInterfaces;
|
|
for(var i = 0; i < nics.length; i++) {
|
|
vboxSettingsGlobalNetworkAddAdpater(nics[i]);
|
|
}
|
|
$('#vboxSettingsGlobalNetList').trigger('select',null);
|
|
}
|
|
vboxSettingsGlobalNetworkAddAdpaters();
|
|
|
|
/*
|
|
*
|
|
* FIll nat networks
|
|
*/
|
|
function vboxSettingsGlobalNATNetworksAdd() {
|
|
var nets = $('#vboxSettingsDialog').data('vboxNATNetworks');
|
|
$('#vboxSettingsGlobalNATNetList').empty();
|
|
for(var i = 0; i < nets.length; i++) {
|
|
nets[i].orig_networkName = nets[i].networkName;
|
|
vboxSettingsGlobalNATNetworksAddNet(nets[i]);
|
|
}
|
|
$('#vboxSettingsGlobalNATNetList').trigger('select',null);
|
|
}
|
|
|
|
function vboxSettingsGlobalNATNetworksAddNet(net) {
|
|
|
|
$('<tr />').data({'NATNetwork':net}).hoverClass('vboxHover').addClass('vboxListItem').append(
|
|
$('<td />').append(
|
|
$('<input />').attr({'type':'checkbox'}).click(function(){
|
|
$(this).closest('tr').data('NATNetwork').enabled = this.checked;
|
|
$(this).closest('tr').data('NATNetwork')._modified = true;
|
|
}).prop('checked', net.enabled)
|
|
|
|
).click(function(){
|
|
$(this).parent().parent().children('tr.vboxListItemSelected').removeClass('vboxListItemSelected').addClass('vboxListItem');
|
|
$(this).parent().addClass('vboxListItemSelected').removeClass('vboxListItem');
|
|
$('#vboxSettingsGlobalNATNetList').trigger('select',this);
|
|
})
|
|
).append(
|
|
$('<td />').html($('<div />').html(net.networkName).text()).click(function(){
|
|
$(this).parent().parent().children('tr.vboxListItemSelected').removeClass('vboxListItemSelected').addClass('vboxListItem');
|
|
$(this).parent().addClass('vboxListItemSelected').removeClass('vboxListItem');
|
|
$('#vboxSettingsGlobalNATNetList').trigger('select',this);
|
|
})
|
|
).appendTo($('#vboxSettingsGlobalNATNetList'));
|
|
|
|
}
|
|
|
|
vboxSettingsGlobalNATNetworksAdd();
|
|
|
|
/*
|
|
*
|
|
* Edit Network Interface Dialog
|
|
*
|
|
*/
|
|
vboxInitDisplay('vboxSettingsGlobalNetEditDialog','UIGlobalSettingsNetworkDetails');
|
|
|
|
var buttons = {};
|
|
buttons[trans('OK','QIMessageBox')] = function(){
|
|
|
|
var nic = $('#vboxSettingsGlobalNetList').children('li.vboxListItemSelected').first().data('interface');
|
|
|
|
nic.IPAddress = $('#vboxSettingsGlobalNetIPv4').val();
|
|
nic.networkMask = $('#vboxSettingsGlobalNetIPv4Mask').val();
|
|
nic.IPV6Address = $('#vboxSettingsGlobalNetIPv6').val();
|
|
nic.IPV6NetworkMaskPrefixLength = $('#vboxSettingsGlobalNetIPv6Mask').val();
|
|
nic.dhcpServer = {};
|
|
nic.dhcpServer.networkName = nic.networkName;
|
|
nic.dhcpServer.enabled = $('#vboxSettingsGlobalNetDHCPEnabled').prop('checked');
|
|
nic.dhcpServer.IPAddress = $('#vboxSettingsGlobalNetServerAddress').val();
|
|
nic.dhcpServer.networkMask = $('#vboxSettingsGlobalNetServerMask').val();
|
|
nic.dhcpServer.lowerIP = $('#vboxSettingsGlobalNetLower').val();
|
|
nic.dhcpServer.upperIP = $('#vboxSettingsGlobalNetUpper').val();
|
|
|
|
$('#vboxSettingsGlobalNetList').children('li.vboxListItemSelected').first().data('interface',nic);
|
|
|
|
$(this).dialog("close");
|
|
};
|
|
buttons[trans('Cancel','QIMessageBox')] = function(){$(this).dialog("close");};
|
|
$('#vboxSettingsGlobalNetEditDialog').dialog({'buttons':buttons,'width':500,'modal':true,'autoOpen':false,'dialogClass':'vboxDialogContent','title':'<img src="images/vbox/nw_16px.png" class="vboxDialogTitleIcon" /> ' +trans('Host-only Network Details','UIGlobalSettingsNetworkDetails')});
|
|
|
|
|
|
function vboxSettingsGlobalNetEditDialog() {
|
|
|
|
var nic = $('#vboxSettingsGlobalNetList').children('li.vboxListItemSelected').first().data('interface');
|
|
|
|
// Set Form Values
|
|
$('#vboxSettingsGlobalNetIPv4').val(nic.IPAddress);
|
|
$('#vboxSettingsGlobalNetIPv4Mask').val(nic.networkMask);
|
|
|
|
if(nic.IPV6Supported) {
|
|
$('#vboxSettingsGlobalNetIPv6').prop('disabled',false).val(nic.IPV6Address).closest('tr').find('span').removeClass('vboxDisabled');
|
|
$('#vboxSettingsGlobalNetIPv6Mask').prop('disabled',false).val(nic.IPV6NetworkMaskPrefixLength).closest('tr').find('span').removeClass('vboxDisabled');
|
|
} else {
|
|
$('#vboxSettingsGlobalNetIPv6').prop('disabled',true).val('').closest('tr').find('span').addClass('vboxDisabled');
|
|
$('#vboxSettingsGlobalNetIPv6Mask').prop('disabled',true).val('').closest('tr').find('span').addClass('vboxDisabled');
|
|
}
|
|
|
|
if(nic.dhcpServer && nic.dhcpServer.networkName) {
|
|
$('#vboxSettingsGlobalNetServerAddress').val(nic.dhcpServer.IPAddress);
|
|
$('#vboxSettingsGlobalNetServerMask').val(nic.dhcpServer.networkMask);
|
|
$('#vboxSettingsGlobalNetLower').val(nic.dhcpServer.lowerIP);
|
|
$('#vboxSettingsGlobalNetUpper').val(nic.dhcpServer.upperIP);
|
|
} else {
|
|
$('#vboxSettingsGlobalNetServerAddress').val('');
|
|
$('#vboxSettingsGlobalNetServerMask').val('');
|
|
$('#vboxSettingsGlobalNetLower').val('');
|
|
$('#vboxSettingsGlobalNetUpper').val('');
|
|
}
|
|
|
|
|
|
$('#vboxSettingsGlobalNetEdit').tabs('option','active',0);
|
|
$('#vboxSettingsGlobalNetDHCPEnabled').trigger('click');
|
|
|
|
if(nic.dhcpServer && nic.dhcpServer.enabled && !$('#vboxSettingsGlobalNetDHCPEnabled').prop('checked')) {
|
|
$('#vboxSettingsGlobalNetDHCPEnabled').trigger('click');
|
|
} else if(nic.dhcpServer && !nic.dhcpServer.enabled && $('#vboxSettingsGlobalNetDHCPEnabled').prop('checked')) {
|
|
$('#vboxSettingsGlobalNetDHCPEnabled').trigger('click');
|
|
}
|
|
|
|
$('#vboxSettingsGlobalNetEditDialog').dialog('open');
|
|
|
|
}
|
|
|
|
/*
|
|
*
|
|
* Edit NAT Network Interface Dialog
|
|
*
|
|
*/
|
|
vboxInitDisplay('vboxSettingsGlobalNATNetworkEditDialog', 'UIGlobalSettingsNetworkDetailsNAT');
|
|
|
|
var buttons = {};
|
|
buttons[trans('OK','QIMessageBox')] = function(){
|
|
|
|
var net = $('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first().data('NATNetwork');
|
|
|
|
// Get Form Values
|
|
net.enabled = $('#vboxSettingsGlobalNATNetEnabled').prop('checked');
|
|
net.networkName = $('#vboxSettingsGlobalNATNetName').val();
|
|
net.network = $('#vboxSettingsGlobalNATNetNetwork').val();
|
|
net.needDhcpServer = $('#vboxSettingsGlobalNATNetDHCP').prop('checked');
|
|
net.IPv6Enabled = $('#vboxSettingsGlobalNATNetIPv6').prop('checked');
|
|
net.advertiseDefaultIPv6RouteEnabled = $('#vboxSettingsGlobalNATNetIPv6Route').prop('checked');
|
|
net._modified = true;
|
|
|
|
$('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first().data('NATNetwork',net).find('input').prop('checked', net.enabled);
|
|
|
|
$(this).dialog("close");
|
|
};
|
|
buttons[trans('Cancel','QIMessageBox')] = function(){$(this).dialog("close");};
|
|
$('#vboxSettingsGlobalNATNetworkEditDialog').dialog({'buttons':buttons,'width':500,'modal':true,'autoOpen':false,'dialogClass':'vboxDialogContent','title':'<img src="images/vbox/nw_16px.png" class="vboxDialogTitleIcon" /> ' +trans('Host-only Network Details','UIGlobalSettingsNetworkDetails')});
|
|
$('#vboxSettingsGlobalNATNetIPv6').on('enable',function() {
|
|
if(this.checked) {
|
|
$('#vboxSettingsGlobalNATNetIPv6Route').prop('disabled', false).siblings().removeClass('vboxDisabled');
|
|
} else {
|
|
$('#vboxSettingsGlobalNATNetIPv6Route').prop('disabled', true).siblings().addClass('vboxDisabled');
|
|
}
|
|
}).on('click',function(){
|
|
$(this).trigger('enable');
|
|
});
|
|
|
|
function vboxSettingsGlobalNATNetworkEditDialog() {
|
|
|
|
var net = $('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first().data('NATNetwork');
|
|
|
|
// Set Form Values
|
|
$('#vboxSettingsGlobalNATNetEnabled').prop('checked', net.enabled);
|
|
$('#vboxSettingsGlobalNATNetName').val(net.networkName);
|
|
$('#vboxSettingsGlobalNATNetNetwork').val(net.network);
|
|
$('#vboxSettingsGlobalNATNetDHCP').prop('checked', net.needDhcpServer)
|
|
$('#vboxSettingsGlobalNATNetIPv6').prop('checked', net.IPv6Enabled)
|
|
$('#vboxSettingsGlobalNATNetIPv6Route').prop('checked', net.advertiseDefaultIPv6RouteEnabled)
|
|
|
|
$('#vboxSettingsGlobalNATNetEnabled').triggerHandler('click');
|
|
$('#vboxSettingsGlobalNATNetIPv6').triggerHandler('click');
|
|
|
|
$('#vboxSettingsGlobalNATNetRules').val(trans('Port Forwarding', 'UIGlobalSettingsNetworkDetailsNAT')).off('click').on('click',function(){
|
|
vboxSettingsGlobalNetworkNatPortForwardingDialog(net, $('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first());
|
|
});
|
|
|
|
$('#vboxSettingsGlobalNATNetworkEditDialog').dialog('open');
|
|
|
|
}
|
|
|
|
|
|
function vboxSettingsGlobalNetworkNatPortForwardingDialog(net, row) {
|
|
|
|
if($('#vboxSettingsGlobalNetworkNatPortForwardingDialog')[0])
|
|
$('#vboxSettingsGlobalNetworkNatPortForwardingDialog').empty().remove();
|
|
|
|
var l = new vboxLoader();
|
|
l.addFileToDOM("panes/settingsGlobalNetworkNATPortForwarding.html");
|
|
l.onLoad = function(){
|
|
|
|
vboxSettingsGlobalNetworkNatPortForwardingInit(net.portForwardRules4, false);
|
|
vboxSettingsGlobalNetworkNatPortForwardingInit(net.portForwardRules6, true);
|
|
|
|
var buttons = {};
|
|
buttons[trans('OK','QIMessageBox')] = function(){
|
|
|
|
// wrap ips in []
|
|
var wrapIp = function(ip) {
|
|
ip = ip.trim();
|
|
if(!ip) return '[]';
|
|
if(ip[0] != '[') $ip = '[' + ip;
|
|
if(ip[ip.length-1] != ']') ip += ']';
|
|
return ip;
|
|
}
|
|
|
|
// Get rules
|
|
var none=0;
|
|
do {
|
|
var ruleNum = 4 + (none*2);
|
|
var rules = $('#vboxSettingsGlobalNetworkNatPortForwardingListIPv'+ruleNum).children('tr');
|
|
var rulesToPass = new Array();
|
|
for(var i = 0; i < rules.length; i++) {
|
|
if($(rules[i]).data('vboxRule')[3] == 0 || $(rules[i]).data('vboxRule')[5] == 0) {
|
|
vboxAlert(trans("The current port forwarding rules are not valid. " +
|
|
"None of the host or guest port values may be set to zero.",'UIMessageCenter'));
|
|
return;
|
|
}
|
|
|
|
rulesToPass[i] = $(rules[i]).data('vboxRule');
|
|
|
|
rulesToPass[i][0] = rulesToPass[i][0].replace(':','');
|
|
rulesToPass[i][2] = wrapIp(rulesToPass[i][2]);
|
|
rulesToPass[i][4] = wrapIp(rulesToPass[i][4]);
|
|
|
|
rulesToPass[i] = rulesToPass[i].join(':');
|
|
}
|
|
$('#vboxSettingsGlobalNATNetList').children('tr.vboxListItemSelected').first().data('NATNetwork')['portForwardRules'+ruleNum] = rulesToPass;
|
|
|
|
} while(none++ < 1)
|
|
|
|
$(this).trigger('close').empty().remove();
|
|
|
|
|
|
};
|
|
buttons[trans('Cancel','QIMessageBox')] = function(){
|
|
$(this).trigger('close').empty().remove();
|
|
};
|
|
|
|
vboxInitDisplay($('#vboxSettingsGlobalNetworkNatPortForwardingDialog'), 'UIPortForwardingModel');
|
|
|
|
$('#vboxSettingsGlobalNetworkNatPortForwardingDialog').tabs();
|
|
|
|
$('#vboxSettingsGlobalNetworkNatPortForwardingDialog').dialog({'closeOnEscape':true,'width':840,'height':400,'buttons':buttons,'modal':true,'autoOpen':true,'dialogClass':'vboxDialogContent','title':'<img src="images/vbox/nw_16px.png" class="vboxDialogTitleIcon" /> ' + trans('Port Forwarding Rules','UIMachineSettingsPortForwardingDlg')}).on("dialogbeforeclose",function(){
|
|
$(this).parent().find('span:contains("'+trans('Cancel','QIMessageBox')+'")').trigger('click');
|
|
});
|
|
|
|
|
|
};
|
|
l.run();
|
|
|
|
}
|
|
|
|
/*
|
|
*
|
|
* Update Data onSave()
|
|
*
|
|
*/
|
|
$('#vboxSettingsDialog').on('save',function(){
|
|
|
|
$('#vboxSettingsDialog').data('vboxHostOnlyInterfaces').networkInterfaces = new Array();
|
|
|
|
$('#vboxSettingsGlobalNetList').children('li').each(function(){
|
|
$('#vboxSettingsDialog').data('vboxHostOnlyInterfaces').networkInterfaces.push($(this).data('interface'));
|
|
});
|
|
|
|
var nets = [];
|
|
|
|
$('#vboxSettingsGlobalNATNetList').children('tr').each(function(){
|
|
nets.push($(this).data('NATNetwork'));
|
|
});
|
|
$('#vboxSettingsDialog').data('vboxNATNetworks',nets);
|
|
|
|
});
|
|
|
|
/*
|
|
* Remove dialogs on close
|
|
*/
|
|
$('#vboxSettingsDialog').on('close',function(){
|
|
$('#vboxSettingsGlobalNetEditDialog').remove();
|
|
$('#vboxSettingsGlobalNATNetworkEditDialog').remove();
|
|
});
|
|
|
|
</script> |