').addClass('loading-overlay')
.prependTo($placeholder);
addAction.action({
context: context,
data: args.data,
response: {
success: function(args) {
var tier = args.data;
cloudStack.ui.notifications.add(
// Notification
{
desc: addAction.label
},
// Success
function(args) {
$loading.remove();
$placeholder.closest('.vpc-network-chart').trigger('reload');
// addNewTier({
// ipAddresses: ipAddresses,
// $browser: $browser,
// tierDetailView: tierDetailView,
// context: $.extend(true, {}, context, {
// networks: [tier]
// }),
// tier: tier,
// acl: acl,
// $tiers: $tiers,
// actions: actions,
// actionPreFilter: actionPreFilter,
// vmListView: vmListView
// });
},
{},
// Error
function(args) {
$loading.remove();
}
);
},
error: function(errorMsg) {
cloudStack.dialog.notice({ message: _s(errorMsg) });
$loading.remove();
}
}
});
}
});
});
return $placeholder;
},
dashboard: function(args) {
var $dashboard = $('
').addClass('dashboard');
var context = args.context;
var tier = context.networks[0];
$(args.dashboardItems).map(function(index, dashboardItem) {
var $dashboardItem = $('
').addClass('dashboard-item');
var $name = $('
').addClass('name').append($('
'));
var $total = $('').addClass('total').append($('
'));
var id = dashboardItem.id;
$name.find('span').html(dashboardItem.name);
if (dashboardItem.totalMultiLine) {
$total.find('span').html(dashboardItem.totalMultiLine);
$total.addClass('multiline');
} else {
$total.find('span').html(dashboardItem.total ? dashboardItem.total : 0);
}
$dashboardItem.append($total, $name);
$dashboardItem.appendTo($dashboard);
$dashboardItem.click(function() {
$('#browser .container').cloudBrowser('addPanel', {
title: tier.name + ' - ' + dashboardItem.name,
maximizeIfSelected: true,
complete: function($panel) {
var section = cloudStack.vpc.sections[id];
var $section = $('');
if ($.isFunction(section)) {
section = cloudStack.vpc.sections[id]();
}
if (section.listView) {
$section.listView($.extend(true, {}, section, {
onActionComplete: function() {
$dashboardItem.closest('.vpc-network-chart').trigger('reload');
},
context: context
}));
}
$section.appendTo($panel);
}
});
});
});
return $dashboard;
}
};
cloudStack.modules.vpc = function(module) {
var vpc = cloudStack.vpc;
var vpcSection = cloudStack.sections.network.sections.vpc;
var listConfigureAction = vpcSection.listView.actions.configureVpc.action;
var detailsConfigureAction = vpcSection.listView.detailView.actions.configureVpc.action;
var vpcChart = function(args) {
var context = args.context;
var vpcItem = context.vpc[0];
var chart = function(args) {
args = args ? args : {};
var $chart = $('
').addClass('vpc-network-chart');
var $tiers = $('
').addClass('tiers');
var $toolbar = $('
').addClass('toolbar');
$toolbar.appendTo($chart);
$tiers.appendTo($chart);
// Get tiers
var $loading = $('
').addClass('loading-overlay').prependTo($chart);
vpc.tiers.dataProvider({
context: context,
response: {
success: function(data) {
var tiers = data.tiers;
$(tiers).map(function(index, tier) {
var $tier = elems.tier({
context: context,
tier: tier,
dashboardItems: tier._dashboardItems
});
$tier.appendTo($tiers);
});
// Add placeholder tier
$tiers.append(elems.tierPlaceholder({
context: context
}));
$loading.remove();
if (args.complete) {
args.complete($chart);
}
// Router
$router = elems.router({
context: context,
dashboardItems: data.routerDashboard
}).appendTo($chart);
}
}
});
$chart.bind('reload', function() {
chart({
complete: function($newChart) {
$chart.replaceWith($newChart);
}
});
});
return $chart;
};
$('#browser .container').cloudBrowser('addPanel', {
title: vpcItem.displaytext ? vpcItem.displaytext : vpcItem.name,
maximizeIfSelected: true,
complete: function($panel) {
var $chart = chart();
$chart.appendTo($panel);
}
});
};
listConfigureAction.custom = vpcChart;
detailsConfigureAction.custom = vpcChart;
};
}(jQuery, cloudStack));