diff --git a/src/sunstone/public/js/plugins/vnets-tab.js b/src/sunstone/public/js/plugins/vnets-tab.js
index 87a48e527c..d000d97b1e 100644
--- a/src/sunstone/public/js/plugins/vnets-tab.js
+++ b/src/sunstone/public/js/plugins/vnets-tab.js
@@ -31,7 +31,7 @@ var create_vn_tmpl =
\
\
\
\
@@ -54,7 +54,7 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
@@ -63,13 +63,13 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
- \
+ \
\
\
\
@@ -77,13 +77,13 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
- \
+ \
\
\
\
@@ -91,7 +91,7 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
@@ -101,7 +101,7 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
@@ -132,7 +132,7 @@ var create_vn_tmpl =
\
-
\
\
\
@@ -151,7 +151,7 @@ var create_vn_tmpl =
\
- \
+ \
\
\
\
@@ -1174,35 +1174,49 @@ function setupCreateVNetDialog() {
$('input', $(this).parent()).val("");
switch ($(this).val()) {
case "default":
- $('input#bridge,label[for="bridge"]',$create_vn_dialog).show();
- $('input#phydev,label[for="phydev"]',$create_vn_dialog).hide();
- $('select#vlan,label[for="vlan"]',$create_vn_dialog).hide();
- $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).hide();
+ $('input#bridge,label[for="bridge"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#phydev,label[for="phydev"]',$create_vn_dialog).hide().prop('wizard_field_disabled', true);
+ $('select#vlan,label[for="vlan"]',$create_vn_dialog).hide().prop('wizard_field_disabled', true);
+ $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).hide().prop('wizard_field_disabled', true);
+
+ $('input#phydev',$create_vn_dialog).removeAttr('required');
+ $('input#bridge',$create_vn_dialog).attr('required', '');
break;
case "802.1Q":
- // TODO add warning use PHY_DEV unless... BRIDGE
- $('input#bridge,label[for="bridge"]',$create_vn_dialog).show();
- $('input#phydev,label[for="phydev"]',$create_vn_dialog).show();
- $('select#vlan,label[for="vlan"]',$create_vn_dialog).show();
- $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).show();
+ $('input#bridge,label[for="bridge"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#phydev,label[for="phydev"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('select#vlan,label[for="vlan"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+
+ $('input#phydev',$create_vn_dialog).attr('required', '');
+ $('input#bridge',$create_vn_dialog).removeAttr('required');
break;
case "ebtables":
- $('input#bridge,label[for="bridge"]',$create_vn_dialog).show();
- $('input#phydev,label[for="phydev"]',$create_vn_dialog).show();
- $('select#vlan,label[for="vlan"]',$create_vn_dialog).show();
- $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).hide();
+ $('input#bridge,label[for="bridge"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#phydev,label[for="phydev"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('select#vlan,label[for="vlan"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).hide().prop('wizard_field_disabled', true);
+
+ $('input#phydev',$create_vn_dialog).removeAttr('required');
+ $('input#bridge',$create_vn_dialog).attr('required', '');
break;
case "openvswitch":
- $('input#bridge,label[for="bridge"]',$create_vn_dialog).show();
- $('input#phydev,label[for="phydev"]',$create_vn_dialog).hide();
- $('select#vlan,label[for="vlan"]',$create_vn_dialog).show();
- $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).show();
+ $('input#bridge,label[for="bridge"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#phydev,label[for="phydev"]',$create_vn_dialog).hide().prop('wizard_field_disabled', true);
+ $('select#vlan,label[for="vlan"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+ $('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).show().prop('wizard_field_disabled', false);
+
+ $('input#phydev',$create_vn_dialog).removeAttr('required');
+ $('input#bridge',$create_vn_dialog).attr('required', '');
break;
case "vmware":
$('input#bridge,label[for="bridge"]',$create_vn_dialog).show();
$('input#phydev,label[for="phydev"]',$create_vn_dialog).hide();
$('select#vlan,label[for="vlan"]',$create_vn_dialog).show();
$('input#vlan_id,label[for="vlan_id"]',$create_vn_dialog).show();
+
+ $('input#phydev',$create_vn_dialog).removeAttr('required');
+ $('input#bridge',$create_vn_dialog).attr('required', '');
break;
};
@@ -1216,101 +1230,17 @@ function setupCreateVNetDialog() {
setupCustomTags($("#vnetCreateContextTab", dialog));
//Handle submission of the easy mode
- $('#create_vn_submit_easy',dialog).click(function(){
+ $('#create_vn_form_easy',dialog).on('invalid', function () {
+ notifyError(tr("One or more required fields are missing."));
+ }).on('valid', function () {
//Fetch values
- var name = $('#name',dialog).val();
- if (!name.length){
- notifyError(tr("Virtual Network name missing!"));
- return false;
- }
+ var network_json = {};
- var network_json = {"name" : name};
+ retrieveWizardFields($("#vnetCreateGeneralTab", dialog), network_json);
+ retrieveWizardFields($("#vnetCreateBridgeTab", dialog), network_json);
+ retrieveWizardFields($("#vnetCreateGeneralTab", dialog), network_json);
- var description = $('#DESCRIPTION',dialog).val();
- if (description.length)
- network_json['description'] = description;
-
- var network_mode = $('select#network_mode',dialog).val();
- var bridge = $('#bridge',dialog).val();
- var phydev = $('#phydev',dialog).val();
- var vlan = $('#vlan',dialog).val();
- var vlan_id = $('#vlan_id',dialog).val();
-
- //Depending on network mode we include certain params in the
- //template
- switch (network_mode) {
- case "default":
- if (!bridge && !phydev){
- notifyError("Bridge or physical device must be specified");
- return false;
- };
- if (bridge) network_json['bridge']=bridge;
- if (phydev) network_json['phydev']=phydev;
- break;
- case "802.1Q":
- if (!phydev){
- notifyError("Physical device must be specified");
- return false;
- };
- network_json['phydev']=phydev;
- if (bridge) network_json['bridge']=bridge;
- network_json['vlan']=vlan;
- if (vlan_id) {
- network_json['vlan_id']=vlan_id;
- };
- break;
- case "ebtables":
- if (!bridge){
- notifyError("Bridge must be specified");
- return false;
- };
- network_json['bridge']=bridge;
- network_json['vlan']=vlan;
- break;
- case "openvswitch":
- case "vmware":
- if (!bridge){
- notifyError("Bridge must be specified");
- return false;
- };
- network_json['bridge']=bridge;
- network_json['vlan']=vlan;
- if (vlan_id) {
- network_json['vlan_id']=vlan_id;
- };
- break;
- };
-
- var network_addr = $('#net_address',dialog).val();
- var network_mask = $('#net_mask',dialog).val();
- var network_dns = $('#net_dns',dialog).val();
- var network_gateway = $('#net_gateway',dialog).val();
-
- if (network_addr.length)
- network_json["network_address"] = network_addr;
-
- if (network_mask.length)
- network_json["network_mask"] = network_mask;
-
- if (network_dns.length)
- network_json["dns"] = network_dns;
-
- if (network_gateway.length)
- network_json["gateway"] = network_gateway;
-
- // TODO: gateway 6 in separate input
-// if (network_gateway.length)
-// network_json["gateway6"] = network_gateway;
-
-/*
-Attribute Description
-NETWORK_ADDRESS Base network address
-NETWORK_MASK Network mask
-GATEWAY Router for this network, do not set when the network is not routable
-DNS Specific DNS for this network
-GATEWAY6 IPv6 router for this network
-CONTEXT_FORCE_IPV4 When a vnet is IPv6 the IPv4 is not configured unless this attribute is set
-*/
+ retrieveCustomTags($("#vnetCreateContextTab", dialog), network_json);
$('.ar_tab',dialog).each(function(){
hash = retrieve_ar_tab_data(this);
@@ -1323,9 +1253,6 @@ CONTEXT_FORCE_IPV4 When a vnet is IPv6 the IPv4 is not configured unless this a
}
});
- //Time to add custom attributes
- retrieveCustomTags($('#vnetCreateContextTab', $create_vn_dialog), network_json);
-
//Create the VNetwork.
network_json = {