Transfer team ownership
This commit is contained in:
@@ -430,6 +430,9 @@ define([
|
||||
common.displayAvatar($(avatar), data.avatar, data.displayName);
|
||||
// Name
|
||||
var name = h('span.cp-team-member-name', data.displayName);
|
||||
if (data.pendingOwner) {
|
||||
$(name).append(h('em', " PENDING"));
|
||||
}
|
||||
// Status
|
||||
var status = h('span.cp-team-member-status'+(data.online ? '.online' : ''));
|
||||
// Actions
|
||||
@@ -438,6 +441,28 @@ define([
|
||||
var isMe = me && me.curvePublic === data.curvePublic;
|
||||
var myRole = me ? (ROLES.indexOf(me.role) || 0) : -1;
|
||||
var theirRole = ROLES.indexOf(data.role) || 0;
|
||||
// If they're an admin and I am an owner, I can promote them to owner
|
||||
if (!isMe && myRole > theirRole && theirRole === 1 && !data.pending) {
|
||||
var promote = h('span.fa.fa-angle-double-up', {
|
||||
title: "Offer ownership" // XXX
|
||||
});
|
||||
$(promote).click(function () {
|
||||
$(promote).hide();
|
||||
UI.confirm("Are you sure???", function (yes) { // XXX
|
||||
APP.module.execCommand('OFFER_OWNERSHIP', {
|
||||
teamId: APP.team,
|
||||
curvePublic: data.curvePublic
|
||||
}, function (obj) {
|
||||
if (obj && obj.error) {
|
||||
console.error(obj.error);
|
||||
return void UI.warn(Messages.error);
|
||||
}
|
||||
UI.log("DONE"); // XXX
|
||||
});
|
||||
});
|
||||
});
|
||||
$actions.append(promote);
|
||||
}
|
||||
// If they're a member and I have a higher role than them, I can promote them to admin
|
||||
if (!isMe && myRole > theirRole && theirRole === 0 && !data.pending) {
|
||||
var promote = h('span.fa.fa-angle-double-up', {
|
||||
@@ -467,7 +492,8 @@ define([
|
||||
$actions.append(demote);
|
||||
}
|
||||
// If I'm not a member and I have an equal or higher role than them, I can remove them
|
||||
if (!isMe && myRole > 0 && myRole >= theirRole) {
|
||||
// Note: we can't remove owners, we have to demote them first
|
||||
if (!isMe && myRole > 0 && myRole >= theirRole && theirRole !== 2) {
|
||||
var remove = h('span.fa.fa-times', {
|
||||
title: Messages.team_rosterKick
|
||||
});
|
||||
@@ -514,7 +540,7 @@ define([
|
||||
var me = roster[userData.curvePublic] || {};
|
||||
var owner = Object.keys(roster).filter(function (k) {
|
||||
if (roster[k].pending) { return; }
|
||||
return roster[k].role === "OWNER";
|
||||
return roster[k].role === "OWNER" || roster[k].pendingOwner;
|
||||
}).map(function (k) {
|
||||
return makeMember(common, roster[k], me);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user