diff --git a/src/sunstone/public/js/plugins/secgroups-tab.js b/src/sunstone/public/js/plugins/secgroups-tab.js index 55cc5b2642..546571d473 100644 --- a/src/sunstone/public/js/plugins/secgroups-tab.js +++ b/src/sunstone/public/js/plugins/secgroups-tab.js @@ -22,36 +22,40 @@ function initialize_create_security_group_dialog(dialog){ setupTips(dialog); dialog.on("change", '.security_group_rule_protocol', function(){ + $('.range_row', dialog).hide(); + $('.range_row input', dialog).removeAttr('required'); + + $('.icmp_type_wrapper', dialog).hide(); + switch ($(this).val()) { case "TCP": case "UDP": $('.range_row', dialog).show(); - $('.icmp_type_wrapper', dialog).hide(); + $(".range_row select", dialog).trigger("change"); break; case "ICMP": - $('.range_row', dialog).hide(); $('.icmp_type_wrapper', dialog).show(); break; case "IPSEC": case "ALL": - $('.range_row', dialog).hide(); - $('.icmp_type_wrapper', dialog).hide(); break; } }); dialog.on("change", '.security_group_rule_network_sel', function(){ + $('.security_group_rule_network',dialog).hide(); + $('div.security_group_rule_network input',dialog).removeAttr('required'); + + $('.vnet_select',dialog).hide(); + switch ($(this).val()) { case "ANY": - $('.security_group_rule_network',dialog).hide(); - $('.vnet_select',dialog).hide(); break; case "NETWORK": $('.security_group_rule_network',dialog).show(); - $('.vnet_select',dialog).hide(); + $('div.security_group_rule_network input',dialog).attr('required', ''); break; case "VNET": - $('.security_group_rule_network',dialog).hide(); $('.vnet_select',dialog).show(); refreshVNetTableSelect(dialog, "new_sg_rule"); @@ -64,14 +68,18 @@ function initialize_create_security_group_dialog(dialog){ switch ($(this).val()) { case "ALL": $('.security_group_rule_range', dialog).hide(); + $(".security_group_rule_range input", dialog).removeAttr('required'); break; case "RANGE": $('.security_group_rule_range', dialog).show(); + $(".security_group_rule_range input", dialog).attr('required', ''); break; }; }); - $(".add_security_group_rule", dialog).on("click", function(){ + $('#rules_form_wizard',dialog).on('invalid', function () { +// notifyError(tr("One or more required fields are missing or malformed.")); + }).on('valid', function() { var rule = {}; rule["PROTOCOL"] = $(".security_group_rule_protocol", dialog).val(); @@ -79,7 +87,6 @@ function initialize_create_security_group_dialog(dialog){ switch ($('.security_group_rule_range_sel', dialog).val()) { case "ALL": - // TODO break; case "RANGE": rule["RANGE"] = $(".security_group_rule_range input", dialog).val(); @@ -88,7 +95,6 @@ function initialize_create_security_group_dialog(dialog){ switch ($('.security_group_rule_network_sel', dialog).val()) { case "ANY": - // TODO break; case "NETWORK": rule["IP"] = $('#security_group_rule_first_ip', dialog).val(); @@ -337,154 +343,158 @@ function popUpSecurityGroupCloneDialog(){ var create_security_group_wizard_html = -'
\ -
\ -
\ - \ - \ -
\ -
\ - \ -