CLOUDSTACK-2074: cloudstack UI - Affinity - Instances page - Change Affinity action - populate affinity groups in dialog.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2198dda7 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2198dda7 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2198dda7 Branch: refs/heads/master Commit: 2198dda74214866732235e33e391e608958d2ac2 Parents: 030235b Author: Jessica Wang <jessica.w...@citrix.com> Authored: Thu Apr 18 16:38:25 2013 -0700 Committer: Jessica Wang <jessica.w...@citrix.com> Committed: Thu Apr 18 16:38:25 2013 -0700 ---------------------------------------------------------------------- ui/scripts/instances.js | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2198dda7/ui/scripts/instances.js ---------------------------------------------------------------------- diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index 7976ee6..08e7570 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -692,14 +692,32 @@ name: { label: 'label.name' }, type: { label: 'label.type' } }, - dataProvider: function(args) { - args.response.success({ - data: [ - { id: 1, name: 'Affinity Group 1', type: 'Affinity', _isSelected: true }, - { id: 2, name: 'Affinity Group 2', type: 'Anti-affinity' }, - { id: 3, name: 'Anti-affinity Group', type: 'Anti-affinity', _isSelected: true } - ] - }); + dataProvider: function(args) { + $.ajax({ + url: createURL('listAffinityGroups'), + success: function(json) { + var items = []; + var allAffinityGroups = json.listaffinitygroupsresponse.affinitygroup; + var previouslySelectedAffinityGroups = args.context.instances[0].affinitygroup; + if(allAffinityGroups != null) { + for(var i = 0; i < allAffinityGroups.length; i++) { + var isPreviouslySelected = false; + if(previouslySelectedAffinityGroups != null) { + for(var k = 0; k < previouslySelectedAffinityGroups.length; k++) { + if(previouslySelectedAffinityGroups[k].id == allAffinityGroups[i].id) { + isPreviouslySelected = true; + break; //break for loop + } + } + } + items.push($.extend(allAffinityGroups[i], { + _isSelected: isPreviouslySelected + })); + } + } + args.response.success({data: items}); + } + }); } } },