Fix allow list UI issues

This commit is contained in:
yflory 2020-03-06 12:55:20 +01:00
parent 6d8cdca7a3
commit 62725caace
7 changed files with 34 additions and 11 deletions

View File

@ -4229,18 +4229,20 @@ define([
if (err.loaded) { if (err.loaded) {
msg += Messages.errorCopy; msg += Messages.errorCopy;
} }
if (toolbar && typeof toolbar.deleted === "function") { toolbar.deleted(); }
} else if (err.type === 'EDELETED') { } else if (err.type === 'EDELETED') {
if (priv.burnAfterReading) { return void cb(); } if (priv.burnAfterReading) { return void cb(); }
msg = Messages.deletedError; msg = Messages.deletedError;
if (err.loaded) { if (err.loaded) {
msg += Messages.errorCopy; msg += Messages.errorCopy;
} }
if (toolbar && typeof toolbar.deleted === "function") { toolbar.deleted(); }
} else if (err.type === 'ERESTRICTED') { } else if (err.type === 'ERESTRICTED') {
msg = Messages.restrictedError; msg = Messages.restrictedError;
if (toolbar && typeof toolbar.failed === "function") { toolbar.failed(true); }
} }
var sframeChan = common.getSframeChannel(); var sframeChan = common.getSframeChannel();
sframeChan.event('EV_SHARE_OPEN', {hidden: true}); sframeChan.event('EV_SHARE_OPEN', {hidden: true});
if (toolbar && typeof toolbar.deleted === "function") { toolbar.deleted(); }
UI.errorLoadingScreen(msg, Boolean(err.loaded), Boolean(err.loaded)); UI.errorLoadingScreen(msg, Boolean(err.loaded), Boolean(err.loaded));
(cb || function () {})(); (cb || function () {})();
}; };

View File

@ -23,6 +23,7 @@ define([
data.mailbox = obj.mailbox; data.mailbox = obj.mailbox;
data.restricted = obj.restricted; data.restricted = obj.restricted;
data.allowed = obj.allowed; data.allowed = obj.allowed;
data.rejected = obj.rejected;
}; };
var loadMetadata = function (common, data, waitFor, redraw) { var loadMetadata = function (common, data, waitFor, redraw) {
common.getPadMetadata({ common.getPadMetadata({
@ -882,7 +883,7 @@ define([
if (_ownersGrid && _ownersGrid.div) { if (_ownersGrid && _ownersGrid.div) {
content.push(h('label', Messages.creation_owners)); content.push(h('label', Messages.creation_owners));
content.push(_ownersGrid.div); content.push(_ownersGrid.div);
} else { } else if (!data.rejected) {
content.push(UI.dialog.selectable(Messages.creation_noOwner, { content.push(UI.dialog.selectable(Messages.creation_noOwner, {
id: 'cp-app-prop-owners', id: 'cp-app-prop-owners',
})); }));

View File

@ -1523,11 +1523,11 @@ define([
}, },
onError: function (err) { onError: function (err) {
channel.bcast("PAD_ERROR", err); channel.bcast("PAD_ERROR", err);
delete channels[data.channel]; Store.leavePad(null, data, function () {});
}, },
onChannelError: function (err) { onChannelError: function (err) {
channel.bcast("PAD_ERROR", err); channel.bcast("PAD_ERROR", err);
delete channels[data.channel]; Store.leavePad(null, data, function () {});
}, },
onConnectionChange: function (info) { onConnectionChange: function (info) {
if (!info.state) { if (!info.state) {
@ -1777,6 +1777,10 @@ define([
var metadata = (obj && obj[0]) || {}; var metadata = (obj && obj[0]) || {};
cb(metadata); cb(metadata);
// If you don't have access to the metadata, stop here
// (we can't update the local data)
if (metadata.rejected) { return; }
// Update owners and expire time in the drive // Update owners and expire time in the drive
getAllStores().forEach(function (s) { getAllStores().forEach(function (s) {
var allData = s.manager.findChannel(data.channel, true); var allData = s.manager.findChannel(data.channel, true);

View File

@ -60,7 +60,6 @@ define([
if (!c) { if (!c) {
c = ctx.clients[client] = { c = ctx.clients[client] = {
channel: channel, channel: channel,
padChan: padChan,
cursor: {} cursor: {}
}; };
} else { } else {
@ -95,6 +94,8 @@ define([
ctx.channels[channel] = ctx.channels[channel] || {}; ctx.channels[channel] = ctx.channels[channel] || {};
var chan = ctx.channels[channel]; var chan = ctx.channels[channel];
chan.padChan = padChan;
if (!c.id) { c.id = wc.myID + '-' + client; } if (!c.id) { c.id = wc.myID + '-' + client; }
if (chan.clients) { if (chan.clients) {
// If 2 tabs from the same worker have been opened at the same time, // If 2 tabs from the same worker have been opened at the same time,

View File

@ -12,7 +12,6 @@ define([
if (!c) { if (!c) {
c = ctx.clients[client] = { c = ctx.clients[client] = {
channel: channel, channel: channel,
padChan: padChan,
}; };
} else { } else {
return void cb(); return void cb();
@ -45,6 +44,7 @@ define([
}; };
chan = ctx.channels[channel]; chan = ctx.channels[channel];
chan.padChan = padChan;
// Create our client ID using the netflux ID // Create our client ID using the netflux ID
if (!c.id) { c.id = wc.myID + '-' + client; } if (!c.id) { c.id = wc.myID + '-' + client; }

View File

@ -161,6 +161,10 @@ define([
} }
case STATE.ERROR: { case STATE.ERROR: {
evStart.reg(function () { evStart.reg(function () {
if (text === 'ERESTRICTED') {
toolbar.failed(true);
return;
}
toolbar.errorState(true, text); toolbar.errorState(true, text);
var msg = Messages.chainpadError; var msg = Messages.chainpadError;
UI.errorLoadingScreen(msg, true, true); UI.errorLoadingScreen(msg, true, true);
@ -171,6 +175,10 @@ define([
evStart.reg(function () { toolbar.forgotten(); }); evStart.reg(function () { toolbar.forgotten(); });
break; break;
} }
case STATE.FORBIDDEN: {
evStart.reg(function () { toolbar.deleted(); });
break;
}
case STATE.DELETED: { case STATE.DELETED: {
evStart.reg(function () { toolbar.deleted(); }); evStart.reg(function () { toolbar.deleted(); });
break; break;
@ -403,7 +411,11 @@ define([
}; };
var onError = function (err) { var onError = function (err) {
common.onServerError(err, toolbar, function () { common.onServerError(err, null, function () {
if (err.type === 'ERESTRICTED') {
stateChange(STATE.ERROR, err.type);
return;
}
stateChange(STATE.DELETED); stateChange(STATE.DELETED);
}); });
}; };

View File

@ -166,14 +166,14 @@ MessengerUI, Messages) {
}); });
}; };
var showColors = false; var showColors = false;
var updateUserList = function (toolbar, config) { var updateUserList = function (toolbar, config, forceOffline) {
if (!config.displayed || config.displayed.indexOf('userlist') === -1) { return; } if (!config.displayed || config.displayed.indexOf('userlist') === -1) { return; }
// Make sure the elements are displayed // Make sure the elements are displayed
var $userButtons = toolbar.userlist; var $userButtons = toolbar.userlist;
var $userlistContent = toolbar.userlistContent; var $userlistContent = toolbar.userlistContent;
var metadataMgr = config.metadataMgr; var metadataMgr = config.metadataMgr;
var online = metadataMgr.isConnected(); var online = !forceOffline && metadataMgr.isConnected();
var userData = metadataMgr.getMetadata().users; var userData = metadataMgr.getMetadata().users;
var viewers = metadataMgr.getViewers(); var viewers = metadataMgr.getViewers();
var priv = metadataMgr.getPrivateData(); var priv = metadataMgr.getPrivateData();
@ -1260,12 +1260,15 @@ MessengerUI, Messages) {
initClickEvents(toolbar, config); initClickEvents(toolbar, config);
initNotifications(toolbar, config); initNotifications(toolbar, config);
var failed = toolbar.failed = function () { var failed = toolbar.failed = function (hideUserList) {
toolbar.connected = false; toolbar.connected = false;
if (toolbar.spinner) { if (toolbar.spinner) {
toolbar.spinner.text(Messages.disconnected); toolbar.spinner.text(Messages.disconnected);
} }
if (hideUserList) {
updateUserList(toolbar, config, true);
}
//checkLag(toolbar, config); //checkLag(toolbar, config);
}; };
toolbar.initializing = function (/*userId*/) { toolbar.initializing = function (/*userId*/) {
@ -1312,7 +1315,7 @@ MessengerUI, Messages) {
toolbar.deleted = function (/*userId*/) { toolbar.deleted = function (/*userId*/) {
toolbar.isErrorState = true; toolbar.isErrorState = true;
toolbar.connected = false; toolbar.connected = false;
updateUserList(toolbar, config); updateUserList(toolbar, config, true);
if (toolbar.spinner) { if (toolbar.spinner) {
toolbar.spinner.text(Messages.deletedFromServer); toolbar.spinner.text(Messages.deletedFromServer);
} }