(function(cloudStack, $) { var pageElems = { /** * User management multi-edit */ userManagement: function(args) { var multiEdit = !args.useInvites ? cloudStack.projects.addUserForm : cloudStack.projects.inviteForm; return $('
').multiEdit($.extend(true, {}, multiEdit, { context: args.context })); }, /** * Projects dashboard */ dashboard: function() { var tabs = { overview: function() { var $dashboard = $('#template').find('.project-dashboard-view').clone(); $dashboard.data('tab-title', 'Dashboard'); var getData = function() { // Populate data $dashboard.find('[data-item]').hide(); var $loading = $('
').addClass('loading-overlay').prependTo($dashboard); cloudStack.projects.dashboard({ response: { success: function(args) { $loading.remove(); var data = args.data; // Iterate over data; populate corresponding DOM elements $.each(data, function(key, value) { var $elem = $dashboard.find('[data-item=' + key + ']'); // This assumes an array of data if ($elem.is('ul')) { $elem.show(); var $liTmpl = $elem.find('li').remove(); $(value).each(function() { var item = this; var $li = $liTmpl.clone().appendTo($elem).hide(); $.each(item, function(arrayKey, arrayValue) { var $arrayElem = $li.find('[data-list-item=' + arrayKey + ']'); $arrayElem.html(arrayValue); }); $li.attr({ title: item.description }); $li.fadeIn(); }); } else { $elem.each(function() { var $item = $(this); if ($item.hasClass('chart-line')) { $item.show().animate({ width: value + '%' }); } else { $item.hide().html(value).fadeIn(); } }); } }); } } }); }; getData(); $dashboard.find('.button.manage-resources').click(function() { $('.navigation-item.network').click(); }); $dashboard.find('.info-box.events .button').click(function() { $('.navigation-item.events').click(); }); return $dashboard; } }; // Only show management tabs to owner of project if (isAdmin() || ( cloudStack.context.projects && (cloudStack.context.projects[0].account == cloudStack.context.users[0].account) )) { tabs.users = function() { return $('
').addClass('management').data('tab-title', 'Users'); }; if (g_capabilities.projectinviterequired) { tabs.invitations = function() { return $('
').addClass('management-invite').data('tab-title', 'Invitations'); }; } tabs.resources = function() { var $resources = $('
').addClass('resources').data('tab-title', 'Resources'); var $form = $('
'); var $submit = $('').attr({ type: 'submit' }).val('Apply'); cloudStack.projects.resourceManagement.dataProvider({ response: { success: function(args) { $(args.data).each(function() { var resource = this; var $field = $('
').addClass('field'); var $label = $('