(function($, cloudStack) { /** * Make system zone 'org' chart */ cloudStack.zoneChart = function(args) { return function(listViewArgs) { var $browser = listViewArgs.$browser; var $chartView = $('
').addClass('system-chart-view') .append( $('#template').find('div.zone-chart').clone() ); args.dataProvider({ id: listViewArgs.id, jsonObj: listViewArgs.jsonObj, context: { zones: listViewArgs.context.physicalResources }, response: { success: function(dataProviderArgs) { var data = dataProviderArgs.data; var name = data.name; // Replace cell contents $chartView.find('li.zone div.name span').html(name); // Events $chartView.click(function(event) { var $target = $(event.target); var $panel; // View zone details button if ($target.is('ul li div.view-details')) { $panel = $browser.cloudBrowser('addPanel', { title: 'Zone Details', data: '', noSelectPanel: true, maximizeIfSelected: true, complete: function($newPanel) { // Create detail view $.extend(args.detailView, { id: listViewArgs.id, context: { zones: listViewArgs.context.physicalResources }, $browser: listViewArgs.$browser }); $panel.detailView(args.detailView); } }); return false; } // View all if ($target.is('ul li div.view-all')) { $panel = $browser.cloudBrowser('addPanel', { title: $target.closest('li').find('div.name span').html(), data: '', noSelectPanel: true, maximizeIfSelected: true, complete: function($newPanel) { $panel.listView( $.extend(cloudStack.sections.system.subsections[ $target.attr('zone-target') ], { $browser: $browser, $chartView: $chartView, ref: { zoneID: listViewArgs.id }, context: { zones: listViewArgs.context.physicalResources } }) ); } }); return false; }; // Add button if ($target.closest('.add').size()) { var completeAction = function() { return false; }; var $addResource = $('
').addClass('add-zone-resource'); var $header = $('
').addClass('head').appendTo($addResource) .append( $('').addClass('message').html('Select resource to add:') ); var $select = $('