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:
parent
05ec287c08
commit
c393358258
@ -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');
|
||||
|
@ -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> </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> </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>
|
||||
|
@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user