summaryrefslogtreecommitdiffstats
path: root/panes/settingsNetwork.html
diff options
context:
space:
mode:
Diffstat (limited to 'panes/settingsNetwork.html')
-rw-r--r--panes/settingsNetwork.html1058
1 files changed, 529 insertions, 529 deletions
diff --git a/panes/settingsNetwork.html b/panes/settingsNetwork.html
index 526d4f3..a95a6b2 100644
--- a/panes/settingsNetwork.html
+++ b/panes/settingsNetwork.html
@@ -1,529 +1,529 @@
-<!--
-
- VM Network Settings
- Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
-
- $Id: settingsNetwork.html 597 2015-04-20 11:41:28Z imoore76 $
-
--->
-<div id='vboxSettingsTabNetAdapter' title='Adapter' style='display: none'>
-<table class='vboxVertical'>
- <tr>
- <td colspan='2'><label><input name='vboxSettingsNetEnabled' class='vboxCheckbox vboxEnablerCheckbox' type='checkbox' /> <span class='translate'>Enable Network Adapter</span></label></td>
- </tr>
- <tr>
- <th style='min-width: 120px'><span class='translate'>Attached to:</span></th>
- <td style='width: 100%' class='vboxEnablerTrigger'>
- <select name='vboxSettingsNetAttachedTo' onchange='vboxSettingsUpdateNetworkOptions(this);' style='width: 100%'>
- <option value='Null' class='translate'>Not attached</option>
- <option value='NAT' class='translate'>NAT</option>
- <option value='NATNetwork' class='translate'>NAT Network</option>
- <option value='Bridged' class='translate'>Bridged Adapter</option>
- <option value='Internal' class='translate'>Internal Network</option>
- <option value='HostOnly' class='translate'>Host-only Adapter</option>
- <option value='Generic' class='translate'>Generic Driver</option>
- <option value='VDE' class='translate'>VDE Adapter</option>
- </select>
- </td>
- </tr>
- <tr>
- <th class='vboxSettingsNetAdapterNamedLabel'><span class='translate'>Name:</span></th>
- <td>
- <select name='vboxSettingsNetName' class='vboxSettingsNetAdapterNamed' style='width: 100%'>
- <option value=''></option>
-
- </select>
- </td>
- </tr>
-
- <!-- Advanced NAT Settings -->
- <tr class='vboxSettingsAdvancedNat' style='display: none'>
- <th><span class='translate'>NAT Alias Mode:</span></th>
- <td>
- <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetAliasModeProxyOnly' /> <span class='translate vboxEnablerListen'>Proxy Only</span></label><br />
- <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetAliasModeSamePorts' /> <span class='translate vboxEnablerListen'>Same Ports</span></label><br />
- </td>
- </tr>
- <tr class='vboxSettingsAdvancedNat' style='display: none'>
- <th><span class='translate'>Advanced NAT Options</span> :</th>
- <td>
- <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetPassDNSDomain' /> <span class='translate vboxEnablerListen'>Pass DNS Domain</span></label><br />
- <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetDNSProxy' /> <span class='translate vboxEnablerListen'>DNS Proxy</span></label><br />
- <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetUseHostResolver' /> <span class='translate vboxEnablerListen'>Use Host Resolver</span></label><br />
- <span class='translate vboxEnablerListen'>Bind to IP</span> <input type='text' class='vboxTextbox' class='vboxEnablerListen' name='vboxSettingsNetBindIp' size='16'/>
- </td>
- </tr>
-
- <tr>
- <th>
- <input class="netImgAdvanced vboxImgButton" style='background: url(images/rightArrow.png) 3px 2px no-repeat; width: 14px; height: 14px;' type="button" value="" />
- <span class='translate'>Advanced</span></th>
- <td></td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
- <th><span class='translate'>Adapter Type:</span></th>
- <td>
- <select name='vboxSettingsNetAdapter' style='width: 100%'>
- </select>
- </td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
- <th><span class='translate'>MAC Address:</span></th>
- <td style='white-space: nowrap'><input type='text' class='vboxText' style='width: 200px' name='vboxSettingsNetMAC' size='40' />
- <input class="vboxSettingsNetMacGen vboxImgButton" style='background: url(images/vbox/refresh_16px.png) 1px 1px no-repeat; width: 18px; height: 18px; vertical-align:bottom' type="button" value="" />
- </td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetPromiscuousMode' style='display: none'>
- <th class='vboxSettingsNetPromiscuousMode'><span class='translate'>Promiscuous Mode:</span></th>
- <td>
- <select class='vboxSettingsNetPromiscuousMode' name='vboxSettingsNetAdapterPromiscuousMode' style='width: 100%'>
- <option value='Deny'>Deny</option>
- <option value='AllowNetwork'>Allow VMs</option>
- <option value='AllowAll'>Allow All</option>
- </select>
- </td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetGenPropsRow' style='display: none'>
- <th><span class='translate vboxRunningEnabled'>Generic Properties:</span></th>
- <td style='white-space: nowrap'>
- <textarea class='vboxRunningEnabled' rows='3' cols='20' name='vboxSettingsNetGenericProps'></textarea>
- </td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
- <th></th>
- <td><label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetConnected' /> <span class='translate vboxEnablerListen'>Cable Connected</span></label></td>
- </tr>
- <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetPFButton' style='display: none'>
- <th></th>
- <td><input type='button' class='vboxButton' class='vboxEnablerListen' name='vboxSettingsNetPF' value='Port Forwarding' /></td>
- </tr>
-
-</table>
-</div>
-<script type='text/javascript'>
-
-/* Translations */
-$(document.forms['frmVboxSettings'].vboxSettingsNetAttachedTo).find('option').html(function(i,h){return trans(h,'VBoxGlobal');});
-$(document.forms['frmVboxSettings'].vboxSettingsNetAdapterPromiscuousMode).find('option').html(function(i,h){return trans(h,'VBoxGlobal');});
-$('#vboxSettingsTabNetAdapter').find(".translate").html(function(i,h){return trans($('<div />').html(h).text(),'UIMachineSettingsNetwork');}).removeClass('translate');
-
-/*
- *
- * Setup data for networking options.
- *
- */
-var vboxSettingsNetAdaptersBridged = new Array();
-var vboxSettingsNetAdaptersHostOnly = new Array();
-var vboxSettingsNetNetworks = new Array();
-
-/*
- * Fill Adapter Types
- */
-var nics = $('#vboxSettingsDialog').data('vboxNetworkAdapterTypes');
-for(var i = 1; i < nics.length; i++) { // index 0 is 'Null' and not used
- var opt = new Option(trans(vboxNetworkAdapterType(nics[i]),'VBoxGlobal'),nics[i]);
- document.forms['frmVboxSettings'].vboxSettingsNetAdapter.options[document.forms['frmVboxSettings'].vboxSettingsNetAdapter.options.length] = opt;
-}
-
-
-// Shorthand
-var vboxNetworking = $('#vboxSettingsDialog').data('vboxNetworking');
-vboxNetworking.networkInterfaces = $('#vboxSettingsDialog').data('vboxHostDetails').networkInterfaces;
-
-for(var i = 0; i < vboxNetworking.networkInterfaces.length; i++) {
- if(vboxNetworking.networkInterfaces[i].interfaceType == 'Bridged') {
- vboxSettingsNetAdaptersBridged[vboxSettingsNetAdaptersBridged.length] = vboxNetworking.networkInterfaces[i].name;
- } else if(vboxNetworking.networkInterfaces[i].interfaceType == 'HostOnly') {
- vboxSettingsNetAdaptersHostOnly[vboxSettingsNetAdaptersHostOnly.length] = vboxNetworking.networkInterfaces[i].name;
- } else {
- vboxAlert('Unknown interface type :' + vboxNetworking.networkInterfaces[i].interfaceType);
- }
-}
-
-// Check for sub / virtual interfaces. These will not be reported by VirtualBox
-var vboxGuestNet = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters;
-for(var i = 0; i < vboxGuestNet.length; i++) {
- if(!vboxGuestNet[i].bridgedInterface || vboxGuestNet[i].bridgedInterface == '') continue;
- if(jQuery.inArray(vboxGuestNet[i].bridgedInterface,vboxSettingsNetAdaptersBridged) < 0) {
- vboxSettingsNetAdaptersBridged[vboxSettingsNetAdaptersBridged.length] = vboxGuestNet[i].bridgedInterface;
- }
-}
-
-
-var vboxSettingsNetTemplate = document.getElementById('vboxSettingsTabNetAdapter');
-var vboxSettingsNetContainer = $(vboxSettingsNetTemplate).parent();
-
-
-/* Network advanced show / hide */
-$('#vboxSettingsTabNetAdapter').find('input.netImgAdvanced').click(function(){
-
- if(!$(this).data('toggleClicked')) {
-
- $(this).data('toggleClicked', true);
- $(this).data('vboxAdvancedEnabled',true);
- $(this).closest('table').find('.vboxSettingsNetToggleAdvanced:not(.vboxForceHide)').css('display','');
- $(this).css('background-image','url(images/downArrow.png)');
-
- } else {
-
- $(this).data('toggleClicked', false);
- $(this).data('vboxAdvancedEnabled',false);
- $(this).closest('table').find('.vboxSettingsNetToggleAdvanced').css('display','none');
- $(this).css('background-image','url(images/rightArrow.png)');
-
- }
-});
-
-/* Mac address generator */
-$('#vboxSettingsTabNetAdapter').find('input.vboxSettingsNetMacGen').click(function(){
-
- var t = $(this).siblings('input').first();
- var oval = $(t).val();
- $(t).val('...').prop('disabled',true);
-
- var l = new vboxLoader();
- l.add('vboxGenerateMacAddress',function(d){
- if(d && d.success) $(t).val(d.responseData);
- else $(t).val(oval);
- $(t).prop('disabled',false);
- });
- l.noLoadingScreen = true;
- l.run();
-});
-
-
-/* Network adapter tab links */
-var ul = $('<ul />');
-$(vboxSettingsNetContainer).append(ul);
-
-for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
-
-
- /* tab */
- $(ul).append($('<li />').html('<a href="#' + vboxSettingsNetTemplate.id + (i + 1) +'"><span>' + trans('Adapter %1','VBoxGlobal').replace('%1',(i + 1)) + '</span></a>'));
-
- /* tab content */
- var newTab = $("#vboxSettingsTabNetAdapter").clone(true);
- newTab.attr({'id':vboxSettingsNetTemplate.id + (i + 1)}).css({'display':'block'}).find('.vboxEnablerTrigger').on('enable',function(){
- $(this).children('select').first().trigger('change');
- });
- newTab.appendTo(vboxSettingsNetContainer);
-
- /* Form elements must be unique */
- $("#vboxSettingsTabNetAdapter" + (i + 1)).find('[name]').each(function() {
- $(this).attr('name',$(this).attr('name') + (i + 1));
- });
-
-}
-
-
-/* Remove Template */
-$("#vboxSettingsTabNetAdapter").empty().remove();
-
-
-/* preload network 'advanced' down arrow image */
-var netDnAdvImg = new Image();
-netDnAdvImg.src = 'images/downArrow.png';
-
-/*
- * Called when network adpater 'attached to' changes
- */
-function vboxSettingsUpdateNetworkOptions(sel) {
-
- var ptable = $(sel).closest('table');
- var th = $(ptable).find('th.vboxSettingsNetAdapterNamedLabel').first();
- var nsel = $(ptable).find('.vboxSettingsNetAdapterNamed').first();
-
- var advEnabled = ptable.find('input.netImgAdvanced').first().data('vboxAdvancedEnabled');
-
- // Promiscuous mode selection
- if(sel.value == 'NAT' || sel.value == 'Null' || sel.value == 'Generic') {
- $(ptable).find('tr.vboxSettingsNetPromiscuousMode').addClass('vboxForceHide').hide();
- } else {
- $(ptable).find('tr.vboxSettingsNetPromiscuousMode').removeClass('vboxForceHide');
- if(advEnabled) $(ptable).find('tr.vboxSettingsNetPromiscuousMode').show();
- }
-
- // Generic properties
- if(sel.value == 'Generic') {
- $(ptable).find('tr.vboxSettingsNetGenPropsRow').removeClass('vboxForceHide');
- if(advEnabled) $(ptable).find('tr.vboxSettingsNetGenPropsRow').show();
- } else {
- $(ptable).find('tr.vboxSettingsNetGenPropsRow').hide().addClass('vboxForceHide');
- }
-
- // Port forward button
- if(sel.value == 'NAT') {
- $(ptable).find('tr.vboxSettingsNetPFButton').removeClass('vboxForceHide');
- if(advEnabled) $(ptable).find('tr.vboxSettingsNetPFButton').show();
- } else {
- $(ptable).find('tr.vboxSettingsNetPFButton').addClass('vboxForceHide').hide();
- }
-
- // Name box
- if(sel.value == 'Null' || sel.value == 'NAT') {
-
- $(th).addClass('vboxDisabled');
-
- $(nsel).children().remove();
- $(nsel).prop('disabled',true);
-
- if(sel.value == 'NAT' && $('#vboxPane').data('vboxConfig').enableAdvancedConfig) ptable.find('tr.vboxSettingsAdvancedNat').css('display','');
- else ptable.find('tr.vboxSettingsAdvancedNat').css('display','none');
-
-
- } else {
-
- ptable.find('tr.vboxSettingsAdvancedNat').css('display','none');
-
- $(th).removeClass('vboxDisabled');
-
- $(nsel).children().remove();
- $(nsel).prop('disabled',false);
-
- // Special case for certian network selects
- if(sel.value == 'Internal' || sel.value == 'VDE' || sel.value=='Generic' || sel.value=='Bridged' || sel.value=='NATNetwork') {
- var isel = $(nsel).clone(false);
- $(nsel).replaceWith(isel);
- nsel = isel;
- }
-
- var defaultSel = $(sel).data('vboxDefault');
-
- switch(sel.value) {
- case 'Bridged':
- src = vboxSettingsNetAdaptersBridged;
- break;
- case 'HostOnly':
- src = vboxSettingsNetAdaptersHostOnly;
- break;
- case 'Internal':
- src = $('#vboxSettingsDialog').data('vboxNetworking').networks;
- break;
- case 'Generic':
- src = $('#vboxSettingsDialog').data('vboxNetworking').genericDrivers;
- break;
- case 'NATNetwork':
- src = $('#vboxSettingsDialog').data('vboxNetworking').natNetworks;
- break;
- case 'VDE':
- src = $('#vboxSettingsDialog').data('vboxNetworking').vdenetworks;
- break;
- default:
- vboxAlert('Unknown network binding type: ' + sel.value);
- }
-
- for(var i = 0; i < src.length; i++) {
- var hSrc = $('<div />').text(src[i]).html();
- $(nsel).append('<option ' + (src[i] == defaultSel ? ' selected ' : '') + ' value="' + hSrc + '">' + hSrc + '</option>');
- }
- }
-
- // Special case for Internal, Generic, and VDE network selects
- if(sel.value == 'Internal' || sel.value == 'VDE' || sel.value == 'Generic' || sel.value == 'Bridged') {
- $(nsel).jec();
- }
-
-}
-
-/* Change settings onShow() when VM is running */
-$('#vboxSettingsDialog').on('dataLoaded',function(){
-
-
- /* Net values */
- var vboxVDEFound = false; // check for VDE attachments
- for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
-
- var a = (i + 1);
-
- // attached to
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType).trigger('change');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].options[document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].selectedIndex]).attr('selected','selected');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).change();
-
- // Device or network name, depending on what 'attached to' is
- var netName = '';
- switch($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType) {
- case 'Bridged':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].bridgedInterface;
- break;
- case 'HostOnly':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].hostOnlyInterface;
- break;
- case 'Internal':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].internalNetwork;
- break;
- case 'Generic':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].genericDriver;
- break;
- case 'NATNetwork':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATNetwork;
- break;
- case 'VDE':
- netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].VDENetwork;
- vboxVDEFound = true;
- break;
- }
-
- // hold default value
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).data('vboxDefault', netName);
-
- document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value = netName;
-
- document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].value = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].adapterType;
- document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].value = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].MACAddress;
- document.forms['frmVboxSettings'].elements['vboxSettingsNetConnected'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].cableConnected ? true : false);
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapterPromiscuousMode'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].promiscModePolicy);
-
- document.forms['frmVboxSettings'].elements['vboxSettingsNetGenericProps'+a].innerHTML = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].properties;
-
- // Enabled adapter
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).prop('checked',$('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].enabled).triggerHandler('click');;
-
-
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetPF'+a]).unbind('click');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetPF'+a]).click(function(){
-
- var nicIndex = (parseInt($(this).attr('name').substr(17))-1);
-
- $.when(vboxPortForwardConfigDialog($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[nicIndex].redirects))
- .done(function(rules){
- for(var i = 0; i < rules.length; i++) {
- rules[i] = rules[i].join(',');
- }
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[nicIndex].redirects = rules;
- });
-
- }).val(trans('Port Forwarding','UIMachineSettingsNetwork'));
-
- // Set Nat values
- if($('#vboxPane').data('vboxConfig').enableAdvancedConfig) {
- document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeProxyOnly'+a].checked = (($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 2) ? true : false);
- document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeSamePorts'+a].checked = (($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 4) ? true : false);
- document.forms['frmVboxSettings'].elements['vboxSettingsNetPassDNSDomain'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSPassDomain ? true : false);
- document.forms['frmVboxSettings'].elements['vboxSettingsNetDNSProxy'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSProxy ? true : false);
- document.forms['frmVboxSettings'].elements['vboxSettingsNetUseHostResolver'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSUseHostResolver ? true : false);
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetBindIp'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.hostIP);
- }
-
-
- }
- /* Disable VDE selection? */
- if(!vboxVDEFound && !$('#vboxPane').data('vboxConfig').enableVDE) {
- for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+(i+1)]).children("[value='VDE']").remove();
- }
- }
-
- if(!$('#vboxSettingsDialog').data('vboxFullEdit')) {
-
- for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
-
- var a = (i + 1);
-
- /* Disable these inputs */
- document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].disabled ='disabled';
- document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].disabled ='disabled';
- document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].disabled ='disabled';
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).siblings('input').css('display','none');
-
- /* Disable these labels */
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).closest('tr').children().addClass('vboxDisabled');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a]).closest('tr').children().addClass('vboxDisabled');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).closest('tr').children().addClass('vboxDisabled');
-
- }
- // Expand all advanced settings
- $('#vboxSettingsDialog').find('input.netImgAdvanced').each(function(){
- if(!$(this).data('vboxAdvancedEnabled')) $(this).trigger('click');
- });
-
- // Disable mac address generation
- $('#vboxSettingsDialog').find('input.vboxSettingsNetMacGen').prop('disabled',true);
-
- } else {
-
- for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
-
- var a = (i + 1);
-
- /* Enable these inputs */
- document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].disabled ='';
- document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].disabled ='';
- document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].disabled ='';
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).siblings('input').css('display','');
-
- /* Enable these labels */
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).closest('tr').children().removeClass('vboxDisabled');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a]).closest('tr').children().removeClass('vboxDisabled');
- $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).closest('tr').children().removeClass('vboxDisabled');
-
- }
-
- // Enable mac address generation
- $('#vboxSettingsDialog').find('input.vboxSettingsNetMacGen').prop('disabled',false);
-
- }
-
-/* Change settings onSave() */
-}).on('save',function(){
-
- /* Net */
- for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
-
- var a = (i + 1);
-
- // attached to
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType = document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].value;
-
- // Device or network name, depending on what 'attached to' is
- switch($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType) {
- case 'Bridged':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].bridgedInterface = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;;
- case 'HostOnly':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].hostOnlyInterface = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;;
- break;
- case 'Generic':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].genericDriver = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
- break;
- case 'Internal':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].internalNetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
- break;
- case 'NATNetwork':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATNetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
- break;
- case 'VDE':
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].VDENetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
- break;
- }
-
- // Set Nat values
- if($('#vboxPane').data('vboxConfig').enableAdvancedConfig) {
- var aliasMode = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 1;
- if(document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeProxyOnly'+a].checked) {
- aliasMode |= 2;
- }
- if(document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeSamePorts'+a].checked) {
- aliasMode |= 4;
- }
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode = aliasMode;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSPassDomain = document.forms['frmVboxSettings'].elements['vboxSettingsNetPassDNSDomain'+a].checked;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSProxy = document.forms['frmVboxSettings'].elements['vboxSettingsNetDNSProxy'+a].checked;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSUseHostResolver = document.forms['frmVboxSettings'].elements['vboxSettingsNetUseHostResolver'+a].checked;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.hostIP = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetBindIp'+a]).val();
- }
-
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].properties = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetGenericProps'+a]).val();
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].promiscModePolicy = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapterPromiscuousMode'+a]).val();
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].adapterType = document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].value;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].MACAddress = document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].value;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].cableConnected = document.forms['frmVboxSettings'].elements['vboxSettingsNetConnected'+a].checked;
- $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].enabled = document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].checked;
-
- }
-
-});
-
-</script>
-
-
+<!--
+
+ VM Network Settings
+ Copyright (C) 2010-2015 Ian Moore (imoore76 at yahoo dot com)
+
+ $Id: settingsNetwork.html 597 2015-04-20 11:41:28Z imoore76 $
+
+-->
+<div id='vboxSettingsTabNetAdapter' title='Adapter' style='display: none'>
+<table class='vboxVertical'>
+ <tr>
+ <td colspan='2'><label><input name='vboxSettingsNetEnabled' class='vboxCheckbox vboxEnablerCheckbox' type='checkbox' /> <span class='translate'>Enable Network Adapter</span></label></td>
+ </tr>
+ <tr>
+ <th style='min-width: 120px'><span class='translate'>Attached to:</span></th>
+ <td style='width: 100%' class='vboxEnablerTrigger'>
+ <select name='vboxSettingsNetAttachedTo' onchange='vboxSettingsUpdateNetworkOptions(this);' style='width: 100%'>
+ <option value='Null' class='translate'>Not attached</option>
+ <option value='NAT' class='translate'>NAT</option>
+ <option value='NATNetwork' class='translate'>NAT Network</option>
+ <option value='Bridged' class='translate'>Bridged Adapter</option>
+ <option value='Internal' class='translate'>Internal Network</option>
+ <option value='HostOnly' class='translate'>Host-only Adapter</option>
+ <option value='Generic' class='translate'>Generic Driver</option>
+ <option value='VDE' class='translate'>VDE Adapter</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th class='vboxSettingsNetAdapterNamedLabel'><span class='translate'>Name:</span></th>
+ <td>
+ <select name='vboxSettingsNetName' class='vboxSettingsNetAdapterNamed' style='width: 100%'>
+ <option value=''></option>
+
+ </select>
+ </td>
+ </tr>
+
+ <!-- Advanced NAT Settings -->
+ <tr class='vboxSettingsAdvancedNat' style='display: none'>
+ <th><span class='translate'>NAT Alias Mode:</span></th>
+ <td>
+ <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetAliasModeProxyOnly' /> <span class='translate vboxEnablerListen'>Proxy Only</span></label><br />
+ <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetAliasModeSamePorts' /> <span class='translate vboxEnablerListen'>Same Ports</span></label><br />
+ </td>
+ </tr>
+ <tr class='vboxSettingsAdvancedNat' style='display: none'>
+ <th><span class='translate'>Advanced NAT Options</span> :</th>
+ <td>
+ <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetPassDNSDomain' /> <span class='translate vboxEnablerListen'>Pass DNS Domain</span></label><br />
+ <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetDNSProxy' /> <span class='translate vboxEnablerListen'>DNS Proxy</span></label><br />
+ <label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetUseHostResolver' /> <span class='translate vboxEnablerListen'>Use Host Resolver</span></label><br />
+ <span class='translate vboxEnablerListen'>Bind to IP</span> <input type='text' class='vboxTextbox' class='vboxEnablerListen' name='vboxSettingsNetBindIp' size='16'/>
+ </td>
+ </tr>
+
+ <tr>
+ <th>
+ <input class="netImgAdvanced vboxImgButton" style='background: url(images/rightArrow.png) 3px 2px no-repeat; width: 14px; height: 14px;' type="button" value="" />
+ <span class='translate'>Advanced</span></th>
+ <td></td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
+ <th><span class='translate'>Adapter Type:</span></th>
+ <td>
+ <select name='vboxSettingsNetAdapter' style='width: 100%'>
+ </select>
+ </td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
+ <th><span class='translate'>MAC Address:</span></th>
+ <td style='white-space: nowrap'><input type='text' class='vboxText' style='width: 200px' name='vboxSettingsNetMAC' size='40' />
+ <input class="vboxSettingsNetMacGen vboxImgButton" style='background: url(images/vbox/refresh_16px.png) 1px 1px no-repeat; width: 18px; height: 18px; vertical-align:bottom' type="button" value="" />
+ </td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetPromiscuousMode' style='display: none'>
+ <th class='vboxSettingsNetPromiscuousMode'><span class='translate'>Promiscuous Mode:</span></th>
+ <td>
+ <select class='vboxSettingsNetPromiscuousMode' name='vboxSettingsNetAdapterPromiscuousMode' style='width: 100%'>
+ <option value='Deny'>Deny</option>
+ <option value='AllowNetwork'>Allow VMs</option>
+ <option value='AllowAll'>Allow All</option>
+ </select>
+ </td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetGenPropsRow' style='display: none'>
+ <th><span class='translate vboxRunningEnabled'>Generic Properties:</span></th>
+ <td style='white-space: nowrap'>
+ <textarea class='vboxRunningEnabled' rows='3' cols='20' name='vboxSettingsNetGenericProps'></textarea>
+ </td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced' style='display: none'>
+ <th></th>
+ <td><label><input type='checkbox' class='vboxCheckbox' class='vboxEnablerListen' name='vboxSettingsNetConnected' /> <span class='translate vboxEnablerListen'>Cable Connected</span></label></td>
+ </tr>
+ <tr class='vboxSettingsNetToggleAdvanced vboxSettingsNetPFButton' style='display: none'>
+ <th></th>
+ <td><input type='button' class='vboxButton' class='vboxEnablerListen' name='vboxSettingsNetPF' value='Port Forwarding' /></td>
+ </tr>
+
+</table>
+</div>
+<script type='text/javascript'>
+
+/* Translations */
+$(document.forms['frmVboxSettings'].vboxSettingsNetAttachedTo).find('option').html(function(i,h){return trans(h,'VBoxGlobal');});
+$(document.forms['frmVboxSettings'].vboxSettingsNetAdapterPromiscuousMode).find('option').html(function(i,h){return trans(h,'VBoxGlobal');});
+$('#vboxSettingsTabNetAdapter').find(".translate").html(function(i,h){return trans($('<div />').html(h).text(),'UIMachineSettingsNetwork');}).removeClass('translate');
+
+/*
+ *
+ * Setup data for networking options.
+ *
+ */
+var vboxSettingsNetAdaptersBridged = new Array();
+var vboxSettingsNetAdaptersHostOnly = new Array();
+var vboxSettingsNetNetworks = new Array();
+
+/*
+ * Fill Adapter Types
+ */
+var nics = $('#vboxSettingsDialog').data('vboxNetworkAdapterTypes');
+for(var i = 1; i < nics.length; i++) { // index 0 is 'Null' and not used
+ var opt = new Option(trans(vboxNetworkAdapterType(nics[i]),'VBoxGlobal'),nics[i]);
+ document.forms['frmVboxSettings'].vboxSettingsNetAdapter.options[document.forms['frmVboxSettings'].vboxSettingsNetAdapter.options.length] = opt;
+}
+
+
+// Shorthand
+var vboxNetworking = $('#vboxSettingsDialog').data('vboxNetworking');
+vboxNetworking.networkInterfaces = $('#vboxSettingsDialog').data('vboxHostDetails').networkInterfaces;
+
+for(var i = 0; i < vboxNetworking.networkInterfaces.length; i++) {
+ if(vboxNetworking.networkInterfaces[i].interfaceType == 'Bridged') {
+ vboxSettingsNetAdaptersBridged[vboxSettingsNetAdaptersBridged.length] = vboxNetworking.networkInterfaces[i].name;
+ } else if(vboxNetworking.networkInterfaces[i].interfaceType == 'HostOnly') {
+ vboxSettingsNetAdaptersHostOnly[vboxSettingsNetAdaptersHostOnly.length] = vboxNetworking.networkInterfaces[i].name;
+ } else {
+ vboxAlert('Unknown interface type :' + vboxNetworking.networkInterfaces[i].interfaceType);
+ }
+}
+
+// Check for sub / virtual interfaces. These will not be reported by VirtualBox
+var vboxGuestNet = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters;
+for(var i = 0; i < vboxGuestNet.length; i++) {
+ if(!vboxGuestNet[i].bridgedInterface || vboxGuestNet[i].bridgedInterface == '') continue;
+ if(jQuery.inArray(vboxGuestNet[i].bridgedInterface,vboxSettingsNetAdaptersBridged) < 0) {
+ vboxSettingsNetAdaptersBridged[vboxSettingsNetAdaptersBridged.length] = vboxGuestNet[i].bridgedInterface;
+ }
+}
+
+
+var vboxSettingsNetTemplate = document.getElementById('vboxSettingsTabNetAdapter');
+var vboxSettingsNetContainer = $(vboxSettingsNetTemplate).parent();
+
+
+/* Network advanced show / hide */
+$('#vboxSettingsTabNetAdapter').find('input.netImgAdvanced').click(function(){
+
+ if(!$(this).data('toggleClicked')) {
+
+ $(this).data('toggleClicked', true);
+ $(this).data('vboxAdvancedEnabled',true);
+ $(this).closest('table').find('.vboxSettingsNetToggleAdvanced:not(.vboxForceHide)').css('display','');
+ $(this).css('background-image','url(images/downArrow.png)');
+
+ } else {
+
+ $(this).data('toggleClicked', false);
+ $(this).data('vboxAdvancedEnabled',false);
+ $(this).closest('table').find('.vboxSettingsNetToggleAdvanced').css('display','none');
+ $(this).css('background-image','url(images/rightArrow.png)');
+
+ }
+});
+
+/* Mac address generator */
+$('#vboxSettingsTabNetAdapter').find('input.vboxSettingsNetMacGen').click(function(){
+
+ var t = $(this).siblings('input').first();
+ var oval = $(t).val();
+ $(t).val('...').prop('disabled',true);
+
+ var l = new vboxLoader();
+ l.add('vboxGenerateMacAddress',function(d){
+ if(d && d.success) $(t).val(d.responseData);
+ else $(t).val(oval);
+ $(t).prop('disabled',false);
+ });
+ l.noLoadingScreen = true;
+ l.run();
+});
+
+
+/* Network adapter tab links */
+var ul = $('<ul />');
+$(vboxSettingsNetContainer).append(ul);
+
+for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+
+
+ /* tab */
+ $(ul).append($('<li />').html('<a href="#' + vboxSettingsNetTemplate.id + (i + 1) +'"><span>' + trans('Adapter %1','VBoxGlobal').replace('%1',(i + 1)) + '</span></a>'));
+
+ /* tab content */
+ var newTab = $("#vboxSettingsTabNetAdapter").clone(true);
+ newTab.attr({'id':vboxSettingsNetTemplate.id + (i + 1)}).css({'display':'block'}).find('.vboxEnablerTrigger').on('enable',function(){
+ $(this).children('select').first().trigger('change');
+ });
+ newTab.appendTo(vboxSettingsNetContainer);
+
+ /* Form elements must be unique */
+ $("#vboxSettingsTabNetAdapter" + (i + 1)).find('[name]').each(function() {
+ $(this).attr('name',$(this).attr('name') + (i + 1));
+ });
+
+}
+
+
+/* Remove Template */
+$("#vboxSettingsTabNetAdapter").empty().remove();
+
+
+/* preload network 'advanced' down arrow image */
+var netDnAdvImg = new Image();
+netDnAdvImg.src = 'images/downArrow.png';
+
+/*
+ * Called when network adpater 'attached to' changes
+ */
+function vboxSettingsUpdateNetworkOptions(sel) {
+
+ var ptable = $(sel).closest('table');
+ var th = $(ptable).find('th.vboxSettingsNetAdapterNamedLabel').first();
+ var nsel = $(ptable).find('.vboxSettingsNetAdapterNamed').first();
+
+ var advEnabled = ptable.find('input.netImgAdvanced').first().data('vboxAdvancedEnabled');
+
+ // Promiscuous mode selection
+ if(sel.value == 'NAT' || sel.value == 'Null' || sel.value == 'Generic') {
+ $(ptable).find('tr.vboxSettingsNetPromiscuousMode').addClass('vboxForceHide').hide();
+ } else {
+ $(ptable).find('tr.vboxSettingsNetPromiscuousMode').removeClass('vboxForceHide');
+ if(advEnabled) $(ptable).find('tr.vboxSettingsNetPromiscuousMode').show();
+ }
+
+ // Generic properties
+ if(sel.value == 'Generic') {
+ $(ptable).find('tr.vboxSettingsNetGenPropsRow').removeClass('vboxForceHide');
+ if(advEnabled) $(ptable).find('tr.vboxSettingsNetGenPropsRow').show();
+ } else {
+ $(ptable).find('tr.vboxSettingsNetGenPropsRow').hide().addClass('vboxForceHide');
+ }
+
+ // Port forward button
+ if(sel.value == 'NAT') {
+ $(ptable).find('tr.vboxSettingsNetPFButton').removeClass('vboxForceHide');
+ if(advEnabled) $(ptable).find('tr.vboxSettingsNetPFButton').show();
+ } else {
+ $(ptable).find('tr.vboxSettingsNetPFButton').addClass('vboxForceHide').hide();
+ }
+
+ // Name box
+ if(sel.value == 'Null' || sel.value == 'NAT') {
+
+ $(th).addClass('vboxDisabled');
+
+ $(nsel).children().remove();
+ $(nsel).prop('disabled',true);
+
+ if(sel.value == 'NAT' && $('#vboxPane').data('vboxConfig').enableAdvancedConfig) ptable.find('tr.vboxSettingsAdvancedNat').css('display','');
+ else ptable.find('tr.vboxSettingsAdvancedNat').css('display','none');
+
+
+ } else {
+
+ ptable.find('tr.vboxSettingsAdvancedNat').css('display','none');
+
+ $(th).removeClass('vboxDisabled');
+
+ $(nsel).children().remove();
+ $(nsel).prop('disabled',false);
+
+ // Special case for certian network selects
+ if(sel.value == 'Internal' || sel.value == 'VDE' || sel.value=='Generic' || sel.value=='Bridged' || sel.value=='NATNetwork') {
+ var isel = $(nsel).clone(false);
+ $(nsel).replaceWith(isel);
+ nsel = isel;
+ }
+
+ var defaultSel = $(sel).data('vboxDefault');
+
+ switch(sel.value) {
+ case 'Bridged':
+ src = vboxSettingsNetAdaptersBridged;
+ break;
+ case 'HostOnly':
+ src = vboxSettingsNetAdaptersHostOnly;
+ break;
+ case 'Internal':
+ src = $('#vboxSettingsDialog').data('vboxNetworking').networks;
+ break;
+ case 'Generic':
+ src = $('#vboxSettingsDialog').data('vboxNetworking').genericDrivers;
+ break;
+ case 'NATNetwork':
+ src = $('#vboxSettingsDialog').data('vboxNetworking').natNetworks;
+ break;
+ case 'VDE':
+ src = $('#vboxSettingsDialog').data('vboxNetworking').vdenetworks;
+ break;
+ default:
+ vboxAlert('Unknown network binding type: ' + sel.value);
+ }
+
+ for(var i = 0; i < src.length; i++) {
+ var hSrc = $('<div />').text(src[i]).html();
+ $(nsel).append('<option ' + (src[i] == defaultSel ? ' selected ' : '') + ' value="' + hSrc + '">' + hSrc + '</option>');
+ }
+ }
+
+ // Special case for Internal, Generic, and VDE network selects
+ if(sel.value == 'Internal' || sel.value == 'VDE' || sel.value == 'Generic' || sel.value == 'Bridged') {
+ $(nsel).jec();
+ }
+
+}
+
+/* Change settings onShow() when VM is running */
+$('#vboxSettingsDialog').on('dataLoaded',function(){
+
+
+ /* Net values */
+ var vboxVDEFound = false; // check for VDE attachments
+ for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+
+ var a = (i + 1);
+
+ // attached to
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType).trigger('change');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].options[document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].selectedIndex]).attr('selected','selected');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).change();
+
+ // Device or network name, depending on what 'attached to' is
+ var netName = '';
+ switch($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType) {
+ case 'Bridged':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].bridgedInterface;
+ break;
+ case 'HostOnly':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].hostOnlyInterface;
+ break;
+ case 'Internal':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].internalNetwork;
+ break;
+ case 'Generic':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].genericDriver;
+ break;
+ case 'NATNetwork':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATNetwork;
+ break;
+ case 'VDE':
+ netName = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].VDENetwork;
+ vboxVDEFound = true;
+ break;
+ }
+
+ // hold default value
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a]).data('vboxDefault', netName);
+
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value = netName;
+
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].value = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].adapterType;
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].value = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].MACAddress;
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetConnected'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].cableConnected ? true : false);
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapterPromiscuousMode'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].promiscModePolicy);
+
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetGenericProps'+a].innerHTML = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].properties;
+
+ // Enabled adapter
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).prop('checked',$('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].enabled).triggerHandler('click');;
+
+
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetPF'+a]).unbind('click');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetPF'+a]).click(function(){
+
+ var nicIndex = (parseInt($(this).attr('name').substr(17))-1);
+
+ $.when(vboxPortForwardConfigDialog($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[nicIndex].redirects))
+ .done(function(rules){
+ for(var i = 0; i < rules.length; i++) {
+ rules[i] = rules[i].join(',');
+ }
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[nicIndex].redirects = rules;
+ });
+
+ }).val(trans('Port Forwarding','UIMachineSettingsNetwork'));
+
+ // Set Nat values
+ if($('#vboxPane').data('vboxConfig').enableAdvancedConfig) {
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeProxyOnly'+a].checked = (($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 2) ? true : false);
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeSamePorts'+a].checked = (($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 4) ? true : false);
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetPassDNSDomain'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSPassDomain ? true : false);
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetDNSProxy'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSProxy ? true : false);
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetUseHostResolver'+a].checked = ($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSUseHostResolver ? true : false);
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetBindIp'+a]).val($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.hostIP);
+ }
+
+
+ }
+ /* Disable VDE selection? */
+ if(!vboxVDEFound && !$('#vboxPane').data('vboxConfig').enableVDE) {
+ for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+(i+1)]).children("[value='VDE']").remove();
+ }
+ }
+
+ if(!$('#vboxSettingsDialog').data('vboxFullEdit')) {
+
+ for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+
+ var a = (i + 1);
+
+ /* Disable these inputs */
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].disabled ='disabled';
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].disabled ='disabled';
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].disabled ='disabled';
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).siblings('input').css('display','none');
+
+ /* Disable these labels */
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).closest('tr').children().addClass('vboxDisabled');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a]).closest('tr').children().addClass('vboxDisabled');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).closest('tr').children().addClass('vboxDisabled');
+
+ }
+ // Expand all advanced settings
+ $('#vboxSettingsDialog').find('input.netImgAdvanced').each(function(){
+ if(!$(this).data('vboxAdvancedEnabled')) $(this).trigger('click');
+ });
+
+ // Disable mac address generation
+ $('#vboxSettingsDialog').find('input.vboxSettingsNetMacGen').prop('disabled',true);
+
+ } else {
+
+ for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+
+ var a = (i + 1);
+
+ /* Enable these inputs */
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].disabled ='';
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].disabled ='';
+ document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].disabled ='';
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).siblings('input').css('display','');
+
+ /* Enable these labels */
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a]).closest('tr').children().removeClass('vboxDisabled');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a]).closest('tr').children().removeClass('vboxDisabled');
+ $(document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a]).closest('tr').children().removeClass('vboxDisabled');
+
+ }
+
+ // Enable mac address generation
+ $('#vboxSettingsDialog').find('input.vboxSettingsNetMacGen').prop('disabled',false);
+
+ }
+
+/* Change settings onSave() */
+}).on('save',function(){
+
+ /* Net */
+ for(var i = 0; i < parseInt($('#vboxPane').data('vboxConfig').nicMax); i++) {
+
+ var a = (i + 1);
+
+ // attached to
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType = document.forms['frmVboxSettings'].elements['vboxSettingsNetAttachedTo'+a].value;
+
+ // Device or network name, depending on what 'attached to' is
+ switch($('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].attachmentType) {
+ case 'Bridged':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].bridgedInterface = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;;
+ case 'HostOnly':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].hostOnlyInterface = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;;
+ break;
+ case 'Generic':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].genericDriver = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
+ break;
+ case 'Internal':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].internalNetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
+ break;
+ case 'NATNetwork':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATNetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
+ break;
+ case 'VDE':
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].VDENetwork = document.forms['frmVboxSettings'].elements['vboxSettingsNetName'+a].value;
+ break;
+ }
+
+ // Set Nat values
+ if($('#vboxPane').data('vboxConfig').enableAdvancedConfig) {
+ var aliasMode = $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode & 1;
+ if(document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeProxyOnly'+a].checked) {
+ aliasMode |= 2;
+ }
+ if(document.forms['frmVboxSettings'].elements['vboxSettingsNetAliasModeSamePorts'+a].checked) {
+ aliasMode |= 4;
+ }
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.aliasMode = aliasMode;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSPassDomain = document.forms['frmVboxSettings'].elements['vboxSettingsNetPassDNSDomain'+a].checked;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSProxy = document.forms['frmVboxSettings'].elements['vboxSettingsNetDNSProxy'+a].checked;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.DNSUseHostResolver = document.forms['frmVboxSettings'].elements['vboxSettingsNetUseHostResolver'+a].checked;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].NATEngine.hostIP = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetBindIp'+a]).val();
+ }
+
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].properties = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetGenericProps'+a]).val();
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].promiscModePolicy = $(document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapterPromiscuousMode'+a]).val();
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].adapterType = document.forms['frmVboxSettings'].elements['vboxSettingsNetAdapter'+a].value;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].MACAddress = document.forms['frmVboxSettings'].elements['vboxSettingsNetMAC'+a].value;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].cableConnected = document.forms['frmVboxSettings'].elements['vboxSettingsNetConnected'+a].checked;
+ $('#vboxSettingsDialog').data('vboxMachineData').networkAdapters[i].enabled = document.forms['frmVboxSettings'].elements['vboxSettingsNetEnabled'+a].checked;
+
+ }
+
+});
+
+</script>
+
+