diff --git a/customize.dist/translations/messages.js b/customize.dist/translations/messages.js
index 9ba0402ac..6a339a033 100644
--- a/customize.dist/translations/messages.js
+++ b/customize.dist/translations/messages.js
@@ -234,7 +234,7 @@ define(function () {
"
You can import pads which were recently viewed in your browser so you have them in your account.",
"If you are using a shared computer, you need to log out when you are done, closing the tab is not enough.",
""
- ];
+ ].join('');
// Settings
out.settings_title = "Settings";
diff --git a/www/code/main.js b/www/code/main.js
index 7e44531b4..c74656a66 100644
--- a/www/code/main.js
+++ b/www/code/main.js
@@ -564,6 +564,11 @@ define([
editor.setValue(newDoc || '');
+ if (Cryptpad.initialName && document.title === defaultName) {
+ updateTitle(Cryptpad.initialName);
+ onLocal();
+ }
+
if (Visible.isSupported()) {
Visible.onChange(function (yes) {
if (yes) { unnotify(); }
diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js
index 6ca5bb426..c03664036 100644
--- a/www/common/cryptpad-common.js
+++ b/www/common/cryptpad-common.js
@@ -214,15 +214,6 @@ define([
secret.keys = Crypto.createEditCryptor();
secret.key = Crypto.createEditCryptor().editKeyStr;
};
- // If we have a hash in the URL specifying a path, it means the document was created from
- // the drive and should be stored at the selected path.
- if (/[?&]path=/.test(window.location.hash)) {
- var patharr = window.location.hash.match(/[?&]path=([^&]+)/);
- var namearr = window.location.hash.match(/[?&]name=([^&]+)/);
- common.initialPath = patharr[1] || undefined;
- common.initialName = namearr && namearr[1] ? decodeURIComponent(namearr[1]) : undefined;
- window.location.hash = '';
- }
if (!secretHash && !/#/.test(window.location.href)) {
generate();
return secret;
@@ -698,6 +689,9 @@ define([
});
};
+ var newPadNameKey = common.newPadNameKey = "newPadName";
+ var newPadPathKey = common.newPadPathKey = "newPadPath";
+
// local name?
common.ready = function (f) {
var state = 0;
@@ -708,6 +702,15 @@ define([
f(void 0, env);
};
+ if (sessionStorage[newPadNameKey]) {
+ common.initialName = sessionStorage[newPadNameKey];
+ delete sessionStorage[newPadNameKey];
+ }
+ if (sessionStorage[newPadPathKey]) {
+ common.initialPath = sessionStorage[newPadPathKey];
+ delete sessionStorage[newPadPathKey];
+ }
+
Store.ready(function (err, storeObj) {
store = common.store = env.store = storeObj;
diff --git a/www/drive/main.js b/www/drive/main.js
index e643c0c6a..1d0b3eade 100644
--- a/www/drive/main.js
+++ b/www/drive/main.js
@@ -897,8 +897,11 @@ define([
}
var onNamed = function (name) {
if (!name) { return; }
+ // TODO
var path = '/#?name=' + encodeURIComponent(name) + '&path=' + encodeURIComponent(currentPath);
- window.open('/' + type + path);
+ sessionStorage[Cryptpad.newPadNameKey] = name;
+ sessionStorage[Cryptpad.newPadPathKey] = currentPath;
+ window.open('/' + type + '/');
};
Cryptpad.prompt(Messages.fm_nameFile, Cryptpad.getDefaultName({type: type}), onNamed);
};
diff --git a/www/pad/main.js b/www/pad/main.js
index 01603a7c0..e073ea27a 100644
--- a/www/pad/main.js
+++ b/www/pad/main.js
@@ -372,6 +372,8 @@ define([
};
if (!initializing) {
hjson[3].metadata.title = document.title;
+ } else if (Cryptpad.initialName) {
+ hjson[3].metadata.title = Cryptpad.initialName;
}
return stringify(hjson);
};
diff --git a/www/poll/main.js b/www/poll/main.js
index e5679a171..ea22d6a76 100644
--- a/www/poll/main.js
+++ b/www/poll/main.js
@@ -567,7 +567,11 @@ define([
} else {
APP.proxy.info.defaultTitle = defaultName;
}
- updateTitle(APP.proxy.info.title || defaultName);
+ if (Cryptpad.initialName && !APP.proxy.info.title) {
+ updateTitle(Cryptpad.initialName);
+ } else {
+ updateTitle(APP.proxy.info.title || defaultName);
+ }
// Description
var resize = function () {
diff --git a/www/slide/main.js b/www/slide/main.js
index 0615c76c0..e6931603d 100644
--- a/www/slide/main.js
+++ b/www/slide/main.js
@@ -638,6 +638,11 @@ define([
editor.setValue(newDoc || '');
Slide.update(newDoc);
+ if (Cryptpad.initialName && APP.title === defaultName) {
+ updateTitle(Cryptpad.initialName);
+ onLocal();
+ }
+
if (Visible.isSupported()) {
Visible.onChange(function (yes) {
if (yes) { unnotify(); }