Do not share the title in the doc if it is the default title

This commit is contained in:
yflory 2016-10-03 16:05:39 +02:00
parent 0f672f19f5
commit 17b4f91810
4 changed files with 126 additions and 101 deletions

View File

@ -158,9 +158,11 @@ define([
// append the userlist to the hyperjson structure
obj.metadata = {
users: userList,
title: document.title
users: userList
};
if (!isDefaultTitle()) {
obj.metadata.title = document.title;
}
// set mode too...
obj.highlightMode = module.highlightMode;
@ -239,11 +241,15 @@ define([
return text.trim();
};
var isDefaultTitle = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
return Cryptpad.isDefaultName(parsed, document.title);
};
var suggestName = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
var name = Cryptpad.getDefaultName(parsed, []);
if (document.title.slice(0, name.length) === name) {
if (Cryptpad.isDefaultName(parsed, document.title)) {
return getHeadingText() || document.title;
} else {
return document.title || getHeadingText() || name;
@ -328,42 +334,42 @@ define([
onLocal();
}));
$rightside.append($import);
}
/* add a rename button */
var $setTitle = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
/* add a rename button */
var $setTitle = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
Cryptpad.prompt(Messages.renamePrompt,
suggestion, function (title, ev) {
if (title === null) { return; }
Cryptpad.prompt(Messages.renamePrompt,
suggestion, function (title, ev) {
if (title === null) { return; }
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (err) {
console.log("Unable to determine if name caused a conflict");
console.error(err);
return;
}
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
Cryptpad.setPadTitle(title, function (err, data) {
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (err) {
console.log("unable to set pad title");
console.log(err);
console.log("Unable to determine if name caused a conflict");
console.error(err);
return;
}
document.title = title;
onLocal();
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
Cryptpad.setPadTitle(title, function (err, data) {
if (err) {
console.log("unable to set pad title");
console.log(err);
return;
}
document.title = title;
onLocal();
});
});
});
});
});
$rightside.append($setTitle);
});
$rightside.append($setTitle);
}
/* add a forget button */
var $forgetPad = Cryptpad.createButton('forget', true)
@ -657,11 +663,13 @@ define([
var hjson2 = {
content: localDoc,
metadata: {
users: userList,
title: document.title
users: userList
},
highlightMode: highlightMode,
};
if (!isDefaultTitle()) {
hjson2.metadata.title = document.title;
}
var shjson2 = stringify(hjson2);
if (shjson2 !== shjson) {
console.error("shjson2 !== shjson");

View File

@ -295,6 +295,10 @@ define([
while (!isNameAvailable(name + ' - ' + untitledIndex, parsed, recentPads)) { untitledIndex++; }
return name + ' - ' + untitledIndex;
};
var isDefaultName = common.isDefaultName = function (parsed, title) {
var name = getDefaultName(parsed, []);
return title.slice(0, name.length) === name;
};
var makePad = function (href, title) {
var now = ''+new Date();

View File

@ -294,6 +294,21 @@ define([
});
};
var isDefaultTitle = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
return Cryptpad.isDefaultName(parsed, document.title);
};
var suggestName = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
var name = Cryptpad.getDefaultName(parsed, []);
if (Cryptpad.isDefaultName(parsed, document.title)) {
return getHeadingText() || document.title;
} else {
return document.title || getHeadingText() || name;
}
};
var DD = new DiffDom(diffOptions);
// apply patches, and try not to lose the cursor in the process!
@ -312,9 +327,11 @@ define([
hjson[3] = {
metadata: {
users: userList,
title: document.title
}
};
if (!isDefaultTitle()) {
hjson[3].metadata.title = document.title;
}
return stringify(hjson);
};
@ -472,17 +489,6 @@ define([
})) { return text; }
};
var suggestName = module.suggestName = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
var name = Cryptpad.getDefaultName(parsed, []);
if (document.title.slice(0, name.length) === name) {
return getHeadingText() || document.title;
} else {
return document.title || getHeadingText() || name;
}
};
var exportFile = function () {
var html = getHTML();
var suggestion = suggestName();
@ -536,34 +542,34 @@ define([
realtimeOptions.onLocal();
}));
$rightside.append($import);
}
/* add a rename button */
var $rename = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
/* add a rename button */
var $rename = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
Cryptpad.prompt(Messages.renamePrompt, suggestion, function (title) {
if (title === null) { return; }
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
Cryptpad.setPadTitle(title, function (err, data) {
if (err) {
console.log("Couldn't set pad title");
console.error(err);
Cryptpad.prompt(Messages.renamePrompt, suggestion, function (title) {
if (title === null) { return; }
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
document.title = title;
editor.fire('change');
Cryptpad.setPadTitle(title, function (err, data) {
if (err) {
console.log("Couldn't set pad title");
console.error(err);
return;
}
document.title = title;
editor.fire('change');
});
});
});
});
});
$rightside.append($rename);
$rightside.append($rename);
}
/* add a forget button */
var $forgetPad = Cryptpad.createButton('forget', true)

View File

@ -193,10 +193,11 @@ define([
// append the userlist to the hyperjson structure
obj.metadata = {
users: userList,
title: APP.title
users: userList
};
if (!isDefaultTitle()) {
obj.metadata.title = APP.title;
}
// stringify the json and send it into chainpad
var shjson = stringify(obj);
@ -254,11 +255,15 @@ define([
return text.trim();
};
var isDefaultTitle = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
return Cryptpad.isDefaultName(parsed, APP.title);
};
var suggestName = function () {
var parsed = Cryptpad.parsePadUrl(window.location.href);
var name = Cryptpad.getDefaultName(parsed, []);
if (APP.title.slice(0, name.length) === name) {
if (Cryptpad.isDefaultName(parsed, APP.title)) {
return getHeadingText() || APP.title;
} else {
return APP.title || getHeadingText() || name;
@ -343,43 +348,43 @@ define([
onLocal();
}));
$rightside.append($import);
}
/* add a rename button */
var $setTitle = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
/* add a rename button */
var $setTitle = Cryptpad.createButton('rename', true)
.click(function () {
var suggestion = suggestName();
Cryptpad.prompt(Messages.renamePrompt,
suggestion, function (title, ev) {
if (title === null) { return; }
Cryptpad.prompt(Messages.renamePrompt,
suggestion, function (title, ev) {
if (title === null) { return; }
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (err) {
console.log("Unable to determine if name caused a conflict");
console.error(err);
return;
}
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
Cryptpad.setPadTitle(title, function (err, data) {
Cryptpad.causesNamingConflict(title, function (err, conflicts) {
if (err) {
console.log("unable to set pad title");
console.log(err);
console.log("Unable to determine if name caused a conflict");
console.error(err);
return;
}
APP.title = title;
setTabTitle();
onLocal();
if (conflicts) {
Cryptpad.alert(Messages.renameConflict);
return;
}
Cryptpad.setPadTitle(title, function (err, data) {
if (err) {
console.log("unable to set pad title");
console.log(err);
return;
}
APP.title = title;
setTabTitle();
onLocal();
});
});
});
});
});
$rightside.append($setTitle);
});
$rightside.append($setTitle);
}
/* add a forget button */
var $forgetPad = Cryptpad.createButton('forget', true)
@ -684,11 +689,13 @@ define([
var hjson2 = {
content: localDoc,
metadata: {
users: userList,
title: APP.title
users: userList
},
highlightMode: highlightMode,
};
if (!isDefaultTitle()) {
hjson2.metadata.title = APP.title;
}
var shjson2 = stringify(hjson2);
if (shjson2 !== shjson) {
console.error("shjson2 !== shjson");