CS-15317: Fix operations with accounts on the Project tab after making another account project owner.

This commit is contained in:
olgasmola 2012-07-27 18:23:07 +03:00
parent 7fc3adbacc
commit 7fbd612d69
2 changed files with 64 additions and 17 deletions

View File

@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
(function(cloudStack) {
var getProjectAdmin;
var getProjectAdmin, selectedProjectObj;
cloudStack.projects = {
requireInvitation: function(args) {
return g_capabilities.projectinviterequired;
@ -518,6 +518,9 @@
onComplete: function(){
setTimeout(function() {
$(window).trigger('cloudStack.fullRefresh');
if (isUser()) {
$(window).trigger('cloudStack.detailsRefresh');
}
}, 500);
}
},
@ -659,6 +662,30 @@
},
detailView: {
updateContext: function (args) {
var project;
var projectID = args.context.projects[0].id;
var url = 'listProjects';
if (isDomainAdmin()) {
url += '&domainid=' + args.context.users[0].domainid;
}
$.ajax({
url: createURL(url),
data: {
listAll: true,
id: projectID
},
async: false,
success: function(json) {
project = json.listprojectsresponse.project[0]; // override project after update owner
}
});
selectedProjectObj = project;
return {
projects: [project]
};
},
actions: {
edit: {
label: 'label.edit',
@ -782,7 +809,7 @@
},
tabFilter: function(args) {
var project = args.context.projects[0];
var project = selectedProjectObj;
var projectOwner = project.account;
var currentAccount = args.context.users[0].account;
var hiddenTabs = [];

View File

@ -1038,7 +1038,7 @@
);
};
var replaceTabs = function($detailView, $newTabs, tabs, options) {
var replaceTabs = function($detailView, tabs, options) {
var $detailViewElems = $detailView.find('ul.ui-tabs-nav, .detail-group');
$detailView.tabs('destroy');
$detailViewElems.remove();
@ -1057,25 +1057,32 @@
);
};
$.fn.detailView = function(args) {
$.fn.detailView = function(args, options) {
var $detailView = this;
if (options == 'refresh') {
var $tabs = replaceTabs($detailView, args.tabs, {
context: args.context,
tabFilter: args.tabFilter
});
} else {
$detailView.addClass('detail-view');
$detailView.data('view-args', args);
$detailView.addClass('detail-view');
$detailView.data('view-args', args);
if (args.$listViewRow) {
$detailView.data('list-view-row', args.$listViewRow);
}
if (args.$listViewRow) {
$detailView.data('list-view-row', args.$listViewRow);
// Create toolbar
var $toolbar = makeToolbar().appendTo($detailView);
// Create tabs
var $tabs = makeTabs($detailView, args.tabs, {
context: args.context,
tabFilter: args.tabFilter
}).appendTo($detailView);
}
// Create toolbar
var $toolbar = makeToolbar().appendTo($detailView);
// Create tabs
var $tabs = makeTabs($detailView, args.tabs, {
context: args.context,
tabFilter: args.tabFilter
}).appendTo($detailView);
$detailView.tabs();
return $detailView;
@ -1154,4 +1161,17 @@
return true;
});
// Detail view refresh handler
$(window).bind('cloudStack.detailsRefresh', function() {
var $detailView = $('.detail-view');
$detailView.each(function() {
var $detailView = $(this),
args = $detailView.data('view-args');
$detailView.detailView(args, 'refresh');
});
});
}(window.jQuery, window.cloudStack, window._l));