diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index ec3bf03fe..0761f1034 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -269,6 +269,9 @@ define([ channel: secret.channel, enableSF: localStorage.CryptPad_SF === "1" // TODO to remove when enabled by default }; + if (window.CryptPad_newSharedFolder) { + additionalPriv.newSharedFolder = window.CryptPad_newSharedFolder; + } for (var k in additionalPriv) { metaObj.priv[k] = additionalPriv[k]; } if (cfg.addData) { diff --git a/www/drive/inner.js b/www/drive/inner.js index ded43c4c9..0c2d8f8a6 100644 --- a/www/drive/inner.js +++ b/www/drive/inner.js @@ -388,6 +388,13 @@ define([ // FILE MANAGER var currentPath = APP.currentPath = getLastOpenedFolder(); + if (APP.newSharedFolder) { + var newSFPaths = manager.findFile(APP.newSharedFolder); + if (newSFPaths.length) { + currentPath = newSFPaths[0]; + } + } + // Categories dislayed in the menu var displayedCategories = [ROOT, TRASH, SEARCH, RECENT]; @@ -3362,8 +3369,12 @@ define([ }).nThen(function () { var sframeChan = common.getSframeChannel(); var metadataMgr = common.getMetadataMgr(); + var privateData = metadataMgr.getPrivateData(); - APP.disableSF = !metadataMgr.getPrivateData().enableSF && AppConfig.disableSharedFolders; + if (privateData.newSharedFolder) { + APP.newSharedFolder = privateData.newSharedFolder; + } + APP.disableSF = !privateData.enableSF && AppConfig.disableSharedFolders; var configTb = { displayed: ['useradmin', 'pageTitle', 'newpad', 'limit'], diff --git a/www/drive/main.js b/www/drive/main.js index b2912b211..d81f07f39 100644 --- a/www/drive/main.js +++ b/www/drive/main.js @@ -42,8 +42,14 @@ define([ if (hash) { // Add a shared folder! // XXX password? - Cryptpad.addSharedFolder(secret, function () { + Cryptpad.addSharedFolder(secret, function (id) { + window.CryptPad_newSharedFolder = id; + // Update the hash in the address bar + var ohc = window.onhashchange; + window.onhashchange = function () {}; window.location.hash = ""; + window.onhashchange = ohc; + ohc({reset:true}); cb(null, secret); }); return;