diff --git a/ui/scripts/network.js b/ui/scripts/network.js index 1a5a8c28bb8..d1c4e60802b 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -219,7 +219,36 @@ action: { noAdd: true, custom: cloudStack.uiCustom.enableStaticNAT({ - listView: cloudStack.sections.instances, + listView: $.extend(true, {}, cloudStack.sections.instances, { + listView: { + dataProvider: function(args) { + $.ajax({ + url: createURL('listVirtualMachines'), + data: { + networkid: args.context.networks[0].id + }, + dataType: 'json', + async: true, + success: function(data) { + args.response.success({ + data: $.grep( + data.listvirtualmachinesresponse.virtualmachine ? + data.listvirtualmachinesresponse.virtualmachine : [], + function(instance) { + return $.inArray(instance.state, [ + 'Destroyed' + ]) == -1; + } + ) + }); + }, + error: function(data) { + args.response.error(parseXMLHttpResponse(data)); + } + }); + } + } + }), action: function(args) { $.ajax({ url: createURL('enableStaticNat'), @@ -525,7 +554,36 @@ action: { noAdd: true, custom: cloudStack.uiCustom.enableStaticNAT({ - listView: cloudStack.sections.instances, + listView: $.extend(true, {}, cloudStack.sections.instances, { + listView: { + dataProvider: function(args) { + $.ajax({ + url: createURL('listVirtualMachines'), + data: { + networkid: args.context.networks[0].id + }, + dataType: 'json', + async: true, + success: function(data) { + args.response.success({ + data: $.grep( + data.listvirtualmachinesresponse.virtualmachine ? + data.listvirtualmachinesresponse.virtualmachine : [], + function(instance) { + return $.inArray(instance.state, [ + 'Destroyed' + ]) == -1; + } + ) + }); + }, + error: function(data) { + args.response.error(parseXMLHttpResponse(data)); + } + }); + } + } + }), action: function(args) { $.ajax({ url: createURL('enableStaticNat'), diff --git a/ui/scripts/ui-custom/enableStaticNAT.js b/ui/scripts/ui-custom/enableStaticNAT.js index f7caa6dc661..3ea6ebdb2eb 100644 --- a/ui/scripts/ui-custom/enableStaticNAT.js +++ b/ui/scripts/ui-custom/enableStaticNAT.js @@ -2,15 +2,17 @@ cloudStack.uiCustom.enableStaticNAT = function(args) { var listView = args.listView; var action = args.action; - + return function(args) { var context = args.context; var $instanceRow = args.$instanceRow; + var vmList = function(args) { // Create a listing of instances, based on limited information // from main instances list view var $listView; var instances = $.extend(true, {}, args.listView, { + context: context, uiCustom: true });