mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
cloudstack 3.0 new UI - network page - show load balancer tab if the network includes Lb service including ElasticLb capability.
This commit is contained in:
parent
5307d21210
commit
6e5beaaa4a
@ -429,9 +429,22 @@
|
||||
}
|
||||
},
|
||||
|
||||
tabFilter: function(args) {
|
||||
var hiddenTabs = [];
|
||||
if(args.context.networks[0].type == "Isolated")
|
||||
tabFilter: function(args) {
|
||||
var showLbTab = false;
|
||||
$(args.context.networks[0].service).each(function(){
|
||||
if(this.name == "Lb") {
|
||||
$(this.capability).each(function() {
|
||||
if(this.name == "ElasticLb") {
|
||||
showLbTab = true;
|
||||
return false; //break $.each loop
|
||||
}
|
||||
});
|
||||
return false; //break $.each loop
|
||||
}
|
||||
});
|
||||
|
||||
var hiddenTabs = [];
|
||||
if(showLbTab == false)
|
||||
hiddenTabs.push("loadBalancing");
|
||||
return hiddenTabs;
|
||||
},
|
||||
@ -564,7 +577,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
,
|
||||
//Brian, please duplicate loadBalancing from another place to here
|
||||
loadBalancing: {
|
||||
@ -575,7 +588,7 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -1437,7 +1450,118 @@
|
||||
label: 'Sticky Policy',
|
||||
custom: {
|
||||
buttonLabel: 'Configure',
|
||||
action: cloudStack.lbStickyPolicy()
|
||||
action: function(args) {
|
||||
var success = args.response.success;
|
||||
var fields = {
|
||||
methodname: {
|
||||
label: 'Stickiness method',
|
||||
select: function(args) {
|
||||
var $select = args.$select;
|
||||
var $form = $select.closest('form');
|
||||
|
||||
args.response.success({
|
||||
data: [
|
||||
{
|
||||
id: 'none',
|
||||
description: 'None'
|
||||
},
|
||||
{
|
||||
id: 'LbCookie',
|
||||
description: 'LB-based'
|
||||
},
|
||||
{
|
||||
id: 'AppCookie',
|
||||
description: 'Cookie-based'
|
||||
},
|
||||
{
|
||||
id: 'SourceBased',
|
||||
description: 'Source-based'
|
||||
}
|
||||
]
|
||||
}, 500);
|
||||
|
||||
$select.change(function() {
|
||||
var value = $select.val();
|
||||
var showFields = [];
|
||||
|
||||
switch (value) {
|
||||
case 'none':
|
||||
showFields = [];
|
||||
break;
|
||||
case 'LbCookie':
|
||||
showFields = ['name', 'mode', 'nocache', 'indirect', 'postonly', 'domain'];
|
||||
break;
|
||||
case 'AppCookie':
|
||||
showFields = ['name', 'length', 'holdtime', 'request-learn', 'prefix', 'mode'];
|
||||
break;
|
||||
case 'SourceBased':
|
||||
showFields = ['tablesize', 'expire'];
|
||||
break;
|
||||
}
|
||||
|
||||
$select.closest('.form-item').siblings('.form-item').each(function() {
|
||||
var $field = $(this);
|
||||
var id = $field.attr('rel');
|
||||
|
||||
if ($.inArray(id, showFields) > -1) {
|
||||
$field.css('display', 'inline-block');
|
||||
} else {
|
||||
$field.hide();
|
||||
}
|
||||
});
|
||||
|
||||
$select.closest(':ui-dialog').dialog('option', 'position', 'center');
|
||||
});
|
||||
}
|
||||
},
|
||||
name: { label: 'Name', validation: { required: true }, isHidden: true },
|
||||
mode: { label: 'Mode', isHidden: true },
|
||||
length: { label: 'Length', validation: { required: true }, isHidden: true },
|
||||
holdtime: { label: 'Hold Time', validation: { required: true }, isHidden: true },
|
||||
tablesize: { label: 'Table size', isHidden: true },
|
||||
expire: { label: 'Expire', isHidden: true },
|
||||
requestlearn: { label: 'Request-Learn', isBoolean: true, isHidden: true },
|
||||
prefix: { label: 'Prefix', isBoolean: true, isHidden: true },
|
||||
nocache: { label: 'No cache', isBoolean: true, isHidden: true },
|
||||
indirect: { label: 'Indirect', isBoolean: true, isHidden: true },
|
||||
postonly: { label: 'Is post-only', isBoolean: true, isHidden: true },
|
||||
domain: { label: 'Domain', isBoolean: true, isHidden: true }
|
||||
};
|
||||
|
||||
if (args.data) {
|
||||
var populatedFields = $.map(fields, function(field, id) {
|
||||
return id;
|
||||
});
|
||||
|
||||
$(populatedFields).each(function() {
|
||||
var id = this;
|
||||
var field = fields[id];
|
||||
var dataItem = args.data[id];
|
||||
|
||||
if (field.isBoolean) {
|
||||
field.isChecked = dataItem ? true : false;
|
||||
} else {
|
||||
field.defaultValue = dataItem;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cloudStack.dialog.createForm({
|
||||
form: {
|
||||
title: 'Configure Sticky Policy',
|
||||
desc: 'Please complete the following fields',
|
||||
fields: fields
|
||||
},
|
||||
after: function(args) {
|
||||
var data = cloudStack.serializeForm(args.$form);
|
||||
success({
|
||||
data: $.extend(data, {
|
||||
_buttonLabel: data.methodname.toUpperCase()
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'add-vm': {
|
||||
@ -1486,8 +1610,6 @@
|
||||
dataType: 'json',
|
||||
async: true,
|
||||
success: function(data) {
|
||||
var lbCreationComplete = false;
|
||||
|
||||
args.response.success({
|
||||
fullRefresh: true,
|
||||
_custom: {
|
||||
@ -1501,13 +1623,7 @@
|
||||
|
||||
pollAsyncJobResult({
|
||||
_custom: args._custom,
|
||||
complete: function(args) {
|
||||
if (lbCreationComplete) {
|
||||
return;
|
||||
}
|
||||
|
||||
lbCreationComplete = true;
|
||||
|
||||
complete: function(args) {
|
||||
// Create stickiness policy
|
||||
if (stickyData &&
|
||||
stickyData.methodname &&
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user