diff --git a/CHANGELOG.md b/CHANGELOG.md index 03beab596..81918d5dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/customize.dist/pages.js b/customize.dist/pages.js index 708041915..3ea9606d6 100644 --- a/customize.dist/pages.js +++ b/customize.dist/pages.js @@ -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; diff --git a/lib/hk-util.js b/lib/hk-util.js index b66e7e0b9..8780addcd 100644 --- a/lib/hk-util.js +++ b/lib/hk-util.js @@ -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'); } } diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index bc857be7f..d4cfb6f4f 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -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 () { diff --git a/www/common/outer/team.js b/www/common/outer/team.js index f959ee11b..31785e26b 100644 --- a/www/common/outer/team.js +++ b/www/common/outer/team.js @@ -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]; diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 39a53d9c5..d511d32df 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -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, diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json index 1d244ca74..3def9c46e 100644 --- a/www/common/translations/messages.fr.json +++ b/www/common/translations/messages.fr.json @@ -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,
chiffrés et open source", + "main_catch_phrase": "Outils collaboratifs
chiffrés de bout en bout et open source", "footer_aboutUs": "À propos", "about": "À propos", "privacy": "Charte de confidentialité", diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index 876dc26a6..fd4a746d0 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -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,
encrypted and open-source", + "main_catch_phrase": "Collaboration suite
end-to-end encrypted and open-source", "footer_aboutUs": "About us", "about": "About", "privacy": "Privacy Policy",