Reload when a drive is created in a different worker (driveless mode)
parent
8dfebbb384
commit
ba4bef2beb
|
@ -2518,6 +2518,23 @@ define([
|
|||
};
|
||||
// XXX if you're in noDrive mode, check if an FS_hash is added and reload if that's the case
|
||||
// Listen for login/logout in other tabs
|
||||
if (rdyCfg.noDrive && !localStorage[Constants.fileHashKey]) {
|
||||
window.addEventListener('storage', function (e) {
|
||||
if (e.key !== Constants.fileHashKey) { return; }
|
||||
// New entry added to FS_hash: drive created in another tab, reload
|
||||
var o = e.oldValue;
|
||||
var n = e.newValue;
|
||||
if (!o && n) {
|
||||
postMessage('HAS_DRIVE', null, function(obj) {
|
||||
// If we're still in noDrive mode, reload
|
||||
if (!obj.state) {
|
||||
LocalStore.loginReload();
|
||||
}
|
||||
// Otherwise this worker is connected, nothing to do
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
window.addEventListener('storage', function (e) {
|
||||
if (e.key !== Constants.userHashKey) { return; }
|
||||
var o = e.oldValue;
|
||||
|
|
|
@ -2947,6 +2947,13 @@ define([
|
|||
*/
|
||||
var initialized = false;
|
||||
|
||||
// Are we still in noDrive mode?
|
||||
Store.hasDrive = function (clientId, data, cb) {
|
||||
cb({
|
||||
state: Boolean(store.proxy)
|
||||
});
|
||||
};
|
||||
|
||||
// If we load CryptPad for the first time from an existing pad, don't create a
|
||||
// drive automatically.
|
||||
var onNoDrive = function (clientId, cb) {
|
||||
|
|
|
@ -15,6 +15,7 @@ define([
|
|||
MIGRATE_ANON_DRIVE: Store.migrateAnonDrive,
|
||||
PING: function (cId, data, cb) { cb(); },
|
||||
CACHE_DISABLE: Store.disableCache,
|
||||
HAS_DRIVE: Store.hasDrive,
|
||||
// RPC
|
||||
UPDATE_PIN_LIMIT: Store.updatePinLimit,
|
||||
GET_PIN_LIMIT: Store.getPinLimit,
|
||||
|
|
Loading…
Reference in New Issue