Redraw access modal on metadata change
This commit is contained in:
parent
b9a07ca650
commit
315704a1b8
2 changed files with 50 additions and 33 deletions
|
@ -60,14 +60,11 @@ define([
|
||||||
|
|
||||||
var friends = common.getFriends(true);
|
var friends = common.getFriends(true);
|
||||||
var sframeChan = common.getSframeChannel();
|
var sframeChan = common.getSframeChannel();
|
||||||
var priv = common.getMetadataMgr().getPrivateData();
|
var metadataMgr = common.getMetadataMgr();
|
||||||
var user = common.getMetadataMgr().getUserData();
|
|
||||||
var edPublic = priv.edPublic;
|
|
||||||
var channel = data.channel;
|
var channel = data.channel;
|
||||||
var owners = data.owners || [];
|
var owners = data.owners || [];
|
||||||
var pending_owners = data.pending_owners || [];
|
var pending_owners = data.pending_owners || [];
|
||||||
var teams = priv.teams;
|
|
||||||
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
|
||||||
var teamOwner = data.teamId;
|
var teamOwner = data.teamId;
|
||||||
|
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
|
@ -83,6 +80,9 @@ define([
|
||||||
|
|
||||||
// Remove owner column
|
// Remove owner column
|
||||||
var drawRemove = function (pending) {
|
var drawRemove = function (pending) {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var user = metadataMgr.getUserData();
|
||||||
|
|
||||||
var _owners = {};
|
var _owners = {};
|
||||||
var o = (pending ? pending_owners : owners) || [];
|
var o = (pending ? pending_owners : owners) || [];
|
||||||
o.forEach(function (ed) {
|
o.forEach(function (ed) {
|
||||||
|
@ -93,15 +93,15 @@ define([
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Object.keys(teams).some(function (id) {
|
Object.keys(priv.teams).some(function (id) {
|
||||||
if (teams[id].edPublic === ed) {
|
if (priv.teams[id].edPublic === ed) {
|
||||||
f = teams[id];
|
f = priv.teams[id];
|
||||||
f.teamId = id;
|
f.teamId = id;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (ed === edPublic) {
|
if (ed === priv.edPublic) {
|
||||||
f = f || user;
|
f = f || user;
|
||||||
if (f.name) { f.edPublic = edPublic; }
|
if (f.name) { f.edPublic = priv.edPublic; }
|
||||||
}
|
}
|
||||||
_owners[ed] = f ? Util.clone(f) : {
|
_owners[ed] = f ? Util.clone(f) : {
|
||||||
displayName: Messages._getKey('owner_unknownUser', [ed]),
|
displayName: Messages._getKey('owner_unknownUser', [ed]),
|
||||||
|
@ -115,8 +115,10 @@ define([
|
||||||
var $el = $(el);
|
var $el = $(el);
|
||||||
var ed = $el.attr('data-ed');
|
var ed = $el.attr('data-ed');
|
||||||
if (!ed) { return; }
|
if (!ed) { return; }
|
||||||
if (teamOwner && teams[teamOwner] && teams[teamOwner].edPublic === ed) { me = true; }
|
if (teamOwner && priv.teams[teamOwner] && priv.teams[teamOwner].edPublic === ed) {
|
||||||
if (ed === edPublic && !teamOwner) { me = true; }
|
me = true;
|
||||||
|
}
|
||||||
|
if (ed === priv.edPublic && !teamOwner) { me = true; }
|
||||||
nThen(function (waitFor) {
|
nThen(function (waitFor) {
|
||||||
var msg = me ? Messages.owner_removeMeConfirm : Messages.owner_removeConfirm;
|
var msg = me ? Messages.owner_removeMeConfirm : Messages.owner_removeConfirm;
|
||||||
UI.confirm(msg, waitFor(function (yes) {
|
UI.confirm(msg, waitFor(function (yes) {
|
||||||
|
@ -181,6 +183,9 @@ define([
|
||||||
|
|
||||||
// Add owners column
|
// Add owners column
|
||||||
var drawAdd = function () {
|
var drawAdd = function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
||||||
|
|
||||||
var $div = $(h('div.cp-share-column'));
|
var $div = $(h('div.cp-share-column'));
|
||||||
var _friends = Util.clone(friends);
|
var _friends = Util.clone(friends);
|
||||||
Object.keys(_friends).forEach(function (curve) {
|
Object.keys(_friends).forEach(function (curve) {
|
||||||
|
@ -228,6 +233,10 @@ define([
|
||||||
};
|
};
|
||||||
|
|
||||||
$(addBtn).click(function () {
|
$(addBtn).click(function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var user = metadataMgr.getUserData();
|
||||||
|
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
||||||
|
|
||||||
var $div = $div2.find('.cp-share-column');
|
var $div = $div2.find('.cp-share-column');
|
||||||
// Check selection
|
// Check selection
|
||||||
var $sel = $div.find('.cp-usergrid-user.cp-selected');
|
var $sel = $div.find('.cp-usergrid-user.cp-selected');
|
||||||
|
@ -367,22 +376,14 @@ define([
|
||||||
var cb = Util.once(Util.mkAsync(_cb));
|
var cb = Util.once(Util.mkAsync(_cb));
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
|
|
||||||
// XXX reload all this data in the "draw" functions
|
|
||||||
|
|
||||||
var friends = common.getFriends(true);
|
var friends = common.getFriends(true);
|
||||||
var sframeChan = common.getSframeChannel();
|
var sframeChan = common.getSframeChannel();
|
||||||
var priv = common.getMetadataMgr().getPrivateData();
|
var metadataMgr = common.getMetadataMgr();
|
||||||
var user = common.getMetadataMgr().getUserData();
|
|
||||||
var edPublic = priv.edPublic;
|
|
||||||
|
|
||||||
var channel = data.channel;
|
var channel = data.channel;
|
||||||
|
|
||||||
var owners = data.owners || [];
|
var owners = data.owners || [];
|
||||||
var restricted = data.restricted || false;
|
var restricted = data.restricted || false;
|
||||||
var allowed = data.allowed || [];
|
var allowed = data.allowed || [];
|
||||||
|
|
||||||
var teams = priv.teams;
|
|
||||||
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
|
||||||
var teamOwner = data.teamId;
|
var teamOwner = data.teamId;
|
||||||
|
|
||||||
var redrawAll = function () {};
|
var redrawAll = function () {};
|
||||||
|
@ -411,6 +412,9 @@ define([
|
||||||
|
|
||||||
// Remove owner column
|
// Remove owner column
|
||||||
var drawRemove = function () {
|
var drawRemove = function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var user = metadataMgr.getUserData();
|
||||||
|
|
||||||
var _allowed = {};
|
var _allowed = {};
|
||||||
var all = Util.deduplicateString(owners.concat(allowed));
|
var all = Util.deduplicateString(owners.concat(allowed));
|
||||||
all.forEach(function (ed) {
|
all.forEach(function (ed) {
|
||||||
|
@ -421,15 +425,15 @@ define([
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Object.keys(teams).some(function (id) {
|
Object.keys(priv.teams).some(function (id) {
|
||||||
if (teams[id].edPublic === ed) {
|
if (priv.teams[id].edPublic === ed) {
|
||||||
f = teams[id];
|
f = priv.teams[id];
|
||||||
f.teamId = id;
|
f.teamId = id;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (ed === edPublic) {
|
if (ed === priv.edPublic) {
|
||||||
f = f || user;
|
f = f || user;
|
||||||
if (f.name) { f.edPublic = edPublic; }
|
if (f.name) { f.edPublic = priv.edPublic; }
|
||||||
}
|
}
|
||||||
_allowed[ed] = f ? Util.clone(f) : {
|
_allowed[ed] = f ? Util.clone(f) : {
|
||||||
displayName: Messages._getKey('owner_unknownUser', [ed]),
|
displayName: Messages._getKey('owner_unknownUser', [ed]),
|
||||||
|
@ -526,6 +530,9 @@ define([
|
||||||
|
|
||||||
// Add owners column
|
// Add owners column
|
||||||
var drawAdd = function () {
|
var drawAdd = function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
||||||
|
|
||||||
var $div = $(h('div.cp-share-column'));
|
var $div = $(h('div.cp-share-column'));
|
||||||
|
|
||||||
$div.addClass('cp-overlay-container').append(h('div.cp-overlay'));
|
$div.addClass('cp-overlay-container').append(h('div.cp-overlay'));
|
||||||
|
@ -575,6 +582,10 @@ define([
|
||||||
};
|
};
|
||||||
|
|
||||||
$(addBtn).click(function () {
|
$(addBtn).click(function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
var user = metadataMgr.getUserData();
|
||||||
|
var teamsData = Util.tryParse(JSON.stringify(priv.teams)) || {};
|
||||||
|
|
||||||
var $div = $div2.find('.cp-share-column');
|
var $div = $div2.find('.cp-share-column');
|
||||||
// Check selection
|
// Check selection
|
||||||
var $sel = $div.find('.cp-usergrid-user.cp-selected');
|
var $sel = $div.find('.cp-usergrid-user.cp-selected');
|
||||||
|
@ -723,8 +734,8 @@ define([
|
||||||
var cb = Util.once(Util.mkAsync(_cb));
|
var cb = Util.once(Util.mkAsync(_cb));
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
|
|
||||||
var priv = common.getMetadataMgr().getPrivateData();
|
|
||||||
var sframeChan = common.getSframeChannel();
|
var sframeChan = common.getSframeChannel();
|
||||||
|
var metadataMgr = common.getMetadataMgr();
|
||||||
|
|
||||||
var $div = $(h('div.cp-share-columns'));
|
var $div = $(h('div.cp-share-columns'));
|
||||||
if (!data) { return void cb(void 0, $div); }
|
if (!data) { return void cb(void 0, $div); }
|
||||||
|
@ -738,6 +749,8 @@ define([
|
||||||
if (!parsed || !parsed.hashData) { return void console.error("Invalid href"); }
|
if (!parsed || !parsed.hashData) { return void console.error("Invalid href"); }
|
||||||
|
|
||||||
var drawLeft = function () {
|
var drawLeft = function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
|
||||||
var $d = $('<div>');
|
var $d = $('<div>');
|
||||||
|
|
||||||
var owned = isOwned(common, data);
|
var owned = isOwned(common, data);
|
||||||
|
@ -882,6 +895,8 @@ define([
|
||||||
return $d;
|
return $d;
|
||||||
};
|
};
|
||||||
var drawRight = function () {
|
var drawRight = function () {
|
||||||
|
var priv = metadataMgr.getPrivateData();
|
||||||
|
|
||||||
// Owners
|
// Owners
|
||||||
var content = [];
|
var content = [];
|
||||||
var _ownersGrid = getUserList(common, data.owners);
|
var _ownersGrid = getUserList(common, data.owners);
|
||||||
|
@ -933,7 +948,6 @@ define([
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mute access requests
|
// Mute access requests
|
||||||
var priv = common.getMetadataMgr().getPrivateData();
|
|
||||||
var edPublic = priv.edPublic;
|
var edPublic = priv.edPublic;
|
||||||
var owned = isOwned(common, data);
|
var owned = isOwned(common, data);
|
||||||
var canMute = data.mailbox && owned === true && (
|
var canMute = data.mailbox && owned === true && (
|
||||||
|
@ -1123,6 +1137,14 @@ define([
|
||||||
override(data, Util.clone(md));
|
override(data, Util.clone(md));
|
||||||
evRedrawAll.fire();
|
evRedrawAll.fire();
|
||||||
});
|
});
|
||||||
|
var metadataMgr = common.getMetadataMgr();
|
||||||
|
var f = function () {
|
||||||
|
if (!$(modal).length) {
|
||||||
|
return void metadataMgr.off('change', f);
|
||||||
|
}
|
||||||
|
evRedrawAll.fire();
|
||||||
|
};
|
||||||
|
metadataMgr.onChange(f);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1305,11 +1305,6 @@ define([
|
||||||
}).nThen(function () {
|
}).nThen(function () {
|
||||||
// If we are just checking (send === false) and there is a mailbox field, cb state true
|
// If we are just checking (send === false) and there is a mailbox field, cb state true
|
||||||
// If there is no mailbox, we'll have to check if an owner is a friend in the worker
|
// If there is no mailbox, we'll have to check if an owner is a friend in the worker
|
||||||
/* // XXX
|
|
||||||
if (owner && !send) {
|
|
||||||
return void cb({state: true});
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if (!send) { return void cb({state: Boolean(owner)}); }
|
if (!send) { return void cb({state: Boolean(owner)}); }
|
||||||
|
|
||||||
Cryptpad.padRpc.requestAccess({
|
Cryptpad.padRpc.requestAccess({
|
||||||
|
|
Loading…
Reference in a new issue