1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-04-02 10:50:07 +03:00

Bug #4500: Fix SG add rule form

This commit is contained in:
Carlos Martín 2016-06-01 15:16:02 +02:00
parent 05ec287c08
commit c393358258
3 changed files with 100 additions and 103 deletions

View File

@ -166,12 +166,15 @@ define(function(require) {
}
});
//Foundation.reflow($('#rules_form_wizard',context), 'abide');
$('#rules_form_wizard',context)
.off('forminvalid.zf.abide').off('formvalid.zf.abide').off("submit");
Foundation.reInit($('#rules_form_wizard',context));
$('#rules_form_wizard',context)
.on('forminvalid.zf.abide', function(ev, frm) {
Notifier.notifyError(Locale.tr("One or more required fields are missing or malformed."));
})
.on('formvalid.zf.abide', function(ev, frm) {
.on('formvalid.zf.abide', function(ev, frm) {
var rule = {};
rule["PROTOCOL"] = WizardFields.retrieveInput($(".security_group_rule_protocol", context));
rule["RULE_TYPE"] = WizardFields.retrieveInput($(".security_group_rule_type", context));
@ -236,7 +239,6 @@ define(function(require) {
ev.preventDefault();
});
context.off("click", ".security_group_rules i.remove-tab");
context.on("click", ".security_group_rules i.remove-tab", function(){
var tr = $(this).closest('tr');

View File

@ -28,95 +28,98 @@
</div>
</div>
</form>
<form data-abide="ajax" id="rules_form_wizard" action="">
<div class="row collapse" id="new_rule_wizard">
<div class="row">
<div class="medium-4 columns">
<label>{{tr "Traffic direction"}}
</label>
<select class="security_group_rule_type">
<option value="inbound" selected="selected">{{tr "Inbound"}}</option>
<option value="outbound">{{tr "Outbound"}}</option>
</select>
<form data-abide novalidate id="rules_form_wizard" action="">
<fieldset>
<legend>{{tr "Rules"}}</legend>
<div class="row collapse" id="new_rule_wizard">
<div class="row">
<div class="medium-4 columns">
<label>{{tr "Traffic direction"}}
</label>
<select class="security_group_rule_type">
<option value="inbound" selected="selected">{{tr "Inbound"}}</option>
<option value="outbound">{{tr "Outbound"}}</option>
</select>
</div>
<div class="medium-4 columns">
<label>{{tr "Protocol"}}
</label>
<select class="security_group_rule_protocol">
<option value="TCP" selected="selected">{{tr "TCP"}}</option>
<option value="UDP">{{tr "UDP"}}</option>
<option value="ICMP">{{tr "ICMP"}}</option>
<option value="IPSEC">{{tr "IPsec"}}</option>
<option value="ALL">{{tr "All"}}</option>
</select>
</div>
<div class="medium-4 columns icmp_type_wrapper">
<label>{{tr "ICMP Type"}}
</label>
<select class="security_group_rule_icmp_type">
<option value="" selected="selected">{{tr "All"}}</option>
<option value = "0">0/0: Echo Reply (pong)</option>
<option value = "3">3: Destination Unreachable</option>
<option value = "4">4/0: Source Quench</option>
<option value = "5">5: Redirect</option>
<option value = "8">8/0: Echo Request (ping)</option>
<option value = "9">9/0: Router Advertisement</option>
<option value = "10">10/0: Router Solicitation</option>
<option value = "11">11: Time Exceeded</option>
<option value = "12">12: Parameter Problem</option>
<option value = "13">13/0: Timestamp Request</option>
<option value = "14">14/0: Timestamp Reply</option>
<option value = "17">17/0: Address Mask Request</option>
<option value = "18">18/0: Address Mask Reply</option>
</select>
</div>
</div>
<div class="medium-4 columns">
<label>{{tr "Protocol"}}
</label>
<select class="security_group_rule_protocol">
<option value="TCP" selected="selected">{{tr "TCP"}}</option>
<option value="UDP">{{tr "UDP"}}</option>
<option value="ICMP">{{tr "ICMP"}}</option>
<option value="IPSEC">{{tr "IPsec"}}</option>
<option value="ALL">{{tr "All"}}</option>
</select>
<div class="row range_row">
<div class="medium-4 columns">
<label>{{tr "Port range"}}
</label>
<select class="security_group_rule_range_sel">
<option value="ALL" selected="selected">{{tr "All"}}</option>
<option value="RANGE">{{tr "Port range"}}</option>
</select>
</div>
<div class="medium-4 columns end security_group_rule_range">
<label>&nbsp</label>
<input type="text" placeholder="22,53,80:90,110,1024:65535"/>
</div>
</div>
<div class="medium-4 columns icmp_type_wrapper">
<label>{{tr "ICMP Type"}}
</label>
<select class="security_group_rule_icmp_type">
<option value="" selected="selected">{{tr "All"}}</option>
<option value = "0">0/0: Echo Reply (pong)</option>
<option value = "3">3: Destination Unreachable</option>
<option value = "4">4/0: Source Quench</option>
<option value = "5">5: Redirect</option>
<option value = "8">8/0: Echo Request (ping)</option>
<option value = "9">9/0: Router Advertisement</option>
<option value = "10">10/0: Router Solicitation</option>
<option value = "11">11: Time Exceeded</option>
<option value = "12">12: Parameter Problem</option>
<option value = "13">13/0: Timestamp Request</option>
<option value = "14">14/0: Timestamp Reply</option>
<option value = "17">17/0: Address Mask Request</option>
<option value = "18">18/0: Address Mask Reply</option>
</select>
<div class="row">
<div class="medium-4 columns">
<label>{{tr "Target Network"}}
</label>
<select class="security_group_rule_network_sel">
<option value="ANY" selected="selected">{{tr "Any network"}}</option>
<option value="NETWORK">{{tr "Manual network"}}</option>
<option value="VNET">{{tr "OpenNebula Virtual Network"}}</option>
</select>
</div>
<div class="medium-4 columns security_group_rule_network">
<label for="security_group_rule_first_ip">{{tr "First IP address"}}
</label>
<input id="security_group_rule_first_ip" type="text" placeholder="192.168.10.1"/>
</div>
<div class="medium-4 columns security_group_rule_network">
<label for="security_group_rule_size">{{tr "Size"}}
</label>
<input id="security_group_rule_size" type="number" min="0" placeholder="254"/>
</div>
</div>
<div class="row">
<div class="small-12 columns vnet_select">
{{{vnetsTableHTML}}}
<br/>
</div>
</div>
</div>
<div class="row range_row">
<div class="medium-4 columns">
<label>{{tr "Port range"}}
</label>
<select class="security_group_rule_range_sel">
<option value="ALL" selected="selected">{{tr "All"}}</option>
<option value="RANGE">{{tr "Port range"}}</option>
</select>
</div>
<div class="medium-4 columns end security_group_rule_range">
<label>&nbsp</label>
<input type="text" placeholder="22,53,80:90,110,1024:65535"/>
</div>
</div>
<div class="row">
<div class="medium-4 columns">
<label>{{tr "Target Network"}}
</label>
<select class="security_group_rule_network_sel">
<option value="ANY" selected="selected">{{tr "Any network"}}</option>
<option value="NETWORK">{{tr "Manual network"}}</option>
<option value="VNET">{{tr "OpenNebula Virtual Network"}}</option>
</select>
</div>
<div class="medium-4 columns security_group_rule_network">
<label for="security_group_rule_first_ip">{{tr "First IP address"}}
</label>
<input id="security_group_rule_first_ip" type="text" placeholder="192.168.10.1"/>
</div>
<div class="medium-4 columns security_group_rule_network">
<label for="security_group_rule_size">{{tr "Size"}}
</label>
<input id="security_group_rule_size" type="number" min="0" placeholder="254"/>
</div>
</div>
<div class="row">
<div class="small-12 columns vnet_select">
{{{vnetsTableHTML}}}
<br/>
</div>
</div>
</div>
</fieldset>
<div class="row">
<div class="medium-8 small-centered columns">
<button type="submit" class="add_security_group_rule button small small-12 radius">
{{tr "+ Security Group rule"}}
<i class="fa fa-angle-double-down"></i> {{tr "Add rule"}}
</button>
</div>
</div>

View File

@ -52,7 +52,7 @@ define(function(require) {
that.reInit(context);
// Mutation observer to reInit abide when nodes are added/removed
$("form[data-abide]", context).each(function(i, form){
$('#' + that.formPanelId + 'Wizard, #' + that.formPanelId + 'Advanced', context).each(function(i, form){
var observer = new MutationObserver(function(mutations) {
that.reInit(context);
});
@ -66,38 +66,30 @@ define(function(require) {
function _reInit(context) {
var that = this;
$('#' + that.formPanelId + 'Wizard', context)
.off('forminvalid.zf.abide').off('formvalid.zf.abide').off("submit");
$('#' + that.formPanelId + 'Advanced', context)
$('#' + that.formPanelId + 'Wizard, #' + that.formPanelId + 'Advanced', context)
.off('forminvalid.zf.abide').off('formvalid.zf.abide').off("submit");
Foundation.reInit($("form", context));
$('#' + that.formPanelId + 'Wizard', context)
$('#' + that.formPanelId + 'Wizard, #' + that.formPanelId + 'Advanced', context)
.on('forminvalid.zf.abide', function(ev, frm) {
Notifier.notifyError(Locale.tr("One or more required fields are missing or malformed."));
Sunstone.hideFormPanelLoading(that.tabId);
})
.on('formvalid.zf.abide', function(ev, frm) {
that.submitWizard(frm);
return false;
})
.on("submit", function(ev) {
ev.preventDefault();
});
$('#' + that.formPanelId + 'Wizard', context)
.on('formvalid.zf.abide', function(ev, frm) {
that.submitWizard(frm);
return false;
});
$('#' + that.formPanelId + 'Advanced', context)
.on('forminvalid.zf.abide', function(ev, frm) {
Notifier.notifyError(Locale.tr("One or more required fields are missing or malformed."));
Sunstone.hideFormPanelLoading(that.tabId);
})
.on('formvalid.zf.abide', function(ev, frm) {
that.submitAdvanced(frm);
return false;
})
.on("submit", function(ev) {
ev.preventDefault();
});
}