mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-6694: WIP: Add front-end for internal LB subselect
This commit is contained in:
parent
24dd6cee78
commit
f9450cc118
|
|
@ -955,6 +955,54 @@
|
|||
listView: $.extend(true, {}, cloudStack.sections.instances.listView, {
|
||||
type: 'checkbox',
|
||||
filters: false,
|
||||
multiSelect: false,
|
||||
subselect: {
|
||||
isMultiple: true,
|
||||
label: 'label.use.vm.ip',
|
||||
dataProvider: function(args) {
|
||||
var instance = args.context.instances[0];
|
||||
var network = args.context.networks[0];
|
||||
|
||||
$.ajax({
|
||||
url: createURL('listNics'),
|
||||
data: {
|
||||
virtualmachineid: instance.id,
|
||||
nicId: instance.nic[0].id
|
||||
},
|
||||
success: function(json) {
|
||||
var nic = json.listnicsresponse.nic[0];
|
||||
var primaryIp = nic.ipaddress;
|
||||
var secondaryIps = nic.secondaryip ? nic.secondaryip : [];
|
||||
var ipSelection = [];
|
||||
var existingIps = $(args.context.subItemData).map(
|
||||
function(index, item) { return item.itemIp; }
|
||||
);
|
||||
|
||||
// Add primary IP as default
|
||||
if ($.inArray(primaryIp, existingIps) == -1) {
|
||||
ipSelection.push({
|
||||
id: primaryIp,
|
||||
description: primaryIp + ' (Primary)'
|
||||
});
|
||||
}
|
||||
|
||||
// Add secondary IPs
|
||||
$(secondaryIps).map(function(index, secondaryIp) {
|
||||
if ($.inArray(secondaryIp.ipaddress, existingIps) == -1) {
|
||||
ipSelection.push({
|
||||
id: secondaryIp.ipaddress,
|
||||
description: secondaryIp.ipaddress
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
args.response.success({
|
||||
data: ipSelection
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
dataProvider: function(args) {
|
||||
var assignedInstances;
|
||||
$.ajax({
|
||||
|
|
@ -1007,7 +1055,18 @@
|
|||
}
|
||||
}),
|
||||
action: function(args) {
|
||||
var $rows = $(':ui-dialog .list-view tbody tr');
|
||||
var vms = args.context.instances;
|
||||
|
||||
// Assign subselect values
|
||||
$(vms).each(function() {
|
||||
var vm = this;
|
||||
var $vmRow = $rows.filter(function() {
|
||||
return $(this).data('json-obj') === vm;
|
||||
});
|
||||
$.extend(vm, { _subselect: $vmRow.find('.subselect select').val() });
|
||||
});
|
||||
|
||||
var array1 = [];
|
||||
for (var i = 0; i < vms.length; i++) {
|
||||
array1.push(vms[i].id);
|
||||
|
|
|
|||
Loading…
Reference in New Issue