Merge branch 'soon' into staging

pull/1/head
ansuz 4 years ago
commit 5f269fbe53

@ -1,3 +1,15 @@
# 4.2.1
This minor release addresses a few bugs discovered after deploying 4.2.0:
* The 4.2.0 release included major improvements to the sheet application. This introduced breaking changes to the "lock" system in the application. Existing spreadsheets (before 4.2.0) that were closed by a user without "unlocking" all cells first became impossible to open after the 4.2.0 changes. This has been fixed.
* Team owners can now properly upload a team avatar.
* We've improved the file upload script to better recognize markdown files.
* We've fixed a few issues resulting in an error screen:
* New users were unable to create a drive without registering first.
* Snapshots in the sheet application couldn't be loaded.
* Loading an existing drive as an unregistered user could fail.
# 4.2.0 (C)
## Goals

@ -62,7 +62,7 @@ define([
var imprintUrl = AppConfig.imprint && (typeof(AppConfig.imprint) === "boolean" ?
'/imprint.html' : AppConfig.imprint);
Pages.versionString = "v4.2.0";
Pages.versionString = "v4.2.1";
// used for the about menu
Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined;

@ -893,6 +893,7 @@ HK.onChannelMessage = function (Env, Server, channel, msgStruct, cb) {
// more straightforward and reliable.
if (Array.isArray(id) && id[2] && id[2] === channel.lastSavedCp) {
// Reject duplicate checkpoints
// XXX not an error? the checkpoint is already here so we can assume it's stored
return void cb('DUPLICATE');
}
}

@ -2636,7 +2636,7 @@ define([
loadUniversal(Messenger, 'messenger', waitFor);
store.messenger = store.modules['messenger'];
loadUniversal(Profile, 'profile', waitFor);
store.modules['team'].onReady(waitFor);
if (store.modules['team']) { store.modules['team'].onReady(waitFor); }
loadUniversal(History, 'history', waitFor);
}).nThen(function () {
var requestLogin = function () {

@ -1046,6 +1046,7 @@ define([
if (!team) { return void cb ({error: 'ENOENT'}); }
if (team.offline) { return void cb({error: 'OFFLINE'}); }
if (!team.roster) { return void cb({error: 'NO_ROSTER'}); }
if (data.metadata) { delete data.metadata.offline; }
team.roster.metadata(data.metadata, function (err) {
if (err) { return void cb({error: err}); }
var localTeam = ctx.store.proxy.teams[teamId];

@ -1741,7 +1741,7 @@ define([
var cpNfCfg = {
sframeChan: sframeChan,
channel: secret.channel,
versionHash: parsed.hashData && parsed.hashData.versionHash,
versionHash: cfg.type !== 'oo' && parsed.hashData && parsed.hashData.versionHash,
padRpc: Cryptpad.padRpc,
validateKey: secret.keys.validateKey || undefined,
isNewHash: isNewHash,

@ -493,7 +493,7 @@
"mdToolbar_check": "Liste de tâches",
"mdToolbar_code": "Code",
"home_host": "Ceci est une instance communautaire et indépendante de CryptPad.",
"main_catch_phrase": "Outils collaboratifs,<br>chiffrés et open source",
"main_catch_phrase": "Outils collaboratifs<br>chiffrés de bout en bout et open source",
"footer_aboutUs": "À propos",
"about": "À propos",
"privacy": "Charte de confidentialité",

@ -508,7 +508,7 @@
"mdToolbar_code": "Code",
"mdToolbar_toc": "Table of Contents",
"home_host": "This is an independent community instance of CryptPad.",
"main_catch_phrase": "Collaboration suite,<br>encrypted and open-source",
"main_catch_phrase": "Collaboration suite<br>end-to-end encrypted and open-source",
"footer_aboutUs": "About us",
"about": "About",
"privacy": "Privacy Policy",

Loading…
Cancel
Save