From 2b8540552cbe72f3dab90a24c02c55180ca36d79 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 15 Jul 2020 12:05:36 -0400 Subject: [PATCH 01/11] don't open the lightbox in code preview when you ctrl-click --- www/common/diffMarked.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/common/diffMarked.js b/www/common/diffMarked.js index 1433a2381..6062b1d63 100644 --- a/www/common/diffMarked.js +++ b/www/common/diffMarked.js @@ -571,6 +571,7 @@ define([ var MutationObserver = window.MutationObserver; var onPreview = function ($mt) { return function () { + if (window.event.ctrlKey) { return; } var mts = []; // Get all previewable elements from the doc $content.find('media-tag, pre[data-plugin]').each(function (i, el) { From 654bd5747607cdce249306a57729e5739592b6c4 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 15 Jul 2020 18:06:22 +0200 Subject: [PATCH 02/11] Translated using Weblate (English) Currently translated at 100.0% (1302 of 1302 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/en/ --- www/common/translations/messages.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index ef61b02bb..9b639d9b2 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -1397,5 +1397,6 @@ "support_category": "Choose a category", "support_formCategoryError": "Error: category is empty", "fm_emptyTrashOwned": "Your trash contains documents you own. You can remove them from your drive only, or destroy them for all users.", - "fm_restricted": "You do not have access" + "fm_restricted": "You do not have access", + "fm_noResult": "No results found" } From 74645d66fc1b9185eba18fb328a4f0bd8cc1ae0f Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 15 Jul 2020 18:06:22 +0200 Subject: [PATCH 03/11] Translated using Weblate (Romanian) Currently translated at 43.9% (572 of 1301 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/ro/ --- www/common/translations/messages.ro.json | 25 +++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/www/common/translations/messages.ro.json b/www/common/translations/messages.ro.json index 14c4aefe0..08648b21c 100644 --- a/www/common/translations/messages.ro.json +++ b/www/common/translations/messages.ro.json @@ -150,8 +150,8 @@ "fm_openParent": "Arată în folder", "fm_noname": "Document nedenumit", "fm_emptyTrashDialog": "Ești sigur că vrei să golești coșul de gunoi?", - "fm_removeSeveralPermanentlyDialog": "Ești sigur că vrei să ștergi pentru totdeauna aceste {0} elemente din coșul de gunoi?", - "fm_removePermanentlyDialog": "Ești sigur că vrei să ștergi acest element pentru totdeauna?", + "fm_removeSeveralPermanentlyDialog": "Ești sigur că vrei să ștergi pentru totdeauna aceste {0} elemente din coșul de gunoi? Acestea vor rămâne în drive-ul altor utilizatori care le-au stocat.", + "fm_removePermanentlyDialog": "Ești sigur că vrei să ștergi acest element pentru totdeauna? Acesta va rămâne în drive-ul altor utilizatori care l-au stocat.", "fm_removeSeveralDialog": "Ești sigur că vrei să muți aceste {0} elemente la coșul de gunoi?", "fm_removeDialog": "Ești sigur că vrei să muți {0} la gunoi?", "fm_restoreDialog": "Ești sigur că vrei să restabilești {0} în locația trecută?", @@ -175,7 +175,7 @@ "fc_open_ro": "Deschide (modul citire)", "fc_delete": "Șterge", "fc_restore": "Restaurează", - "fc_remove": "Șterge permanent", + "fc_remove": "Elimină", "fc_empty": "Curăță coșul", "fc_prop": "Proprietăți", "fc_sizeInKilobytes": "Dimensiune n Kilobytes", @@ -358,7 +358,7 @@ "chatButton": "Chat", "userAccountButton": "Contul tău", "uploadButton": "Încarcă fișiere", - "uploadButtonTitle": "Încarcă un nou fișier in dosarul curent", + "uploadButtonTitle": "Încarcă un nou fișier in CryptDrive-ul personal", "useTemplate": "Pornești de la un șablon?", "useTemplateOK": "Alege un șablon (Enter)", "useTemplateCancel": "Începe de la zero (Esc)", @@ -381,7 +381,7 @@ "filePicker_filter": "Filtrează fișierele după nume", "or": "sau", "tags_title": "Etichete (doar pentru tine)", - "tags_add": "Updatează etichetele acestei pagini", + "tags_add": "Actualizeaza cuvintele cheie ale selectiei", "tags_notShared": "Etichetele tale nu sunt împărțite cu alți utilizatori", "tags_duplicate": "Duplică eticheta: {0}", "tags_noentry": "Nu poți eticheta un pad șters", @@ -512,7 +512,7 @@ "fm_moveNestedSF": "Nu poti plasa un folder partajat în interiorul altuia. Folderul {0} nu a fost mutat.", "fm_passwordProtected": "Parolă protejată", "fc_newsharedfolder": "Folder partajat nou", - "fc_delete_owned": "Șterge de pe server", + "fc_delete_owned": "Distruge", "fc_remove_sharedfolder": "Șterge", "fc_hashtag": "Etichete", "fs_migration": "CrytpDrive-ul tău este updatat la o versiune nouă. În consecință, pagina curentă trebuie reîncarcată. Te rugăm să reîncarci această pagina pentru a continua să o utilizezi.", @@ -579,5 +579,16 @@ "fm_morePads": "Mai mult", "uploadFolderButton": "Încarcă dosar", "storageStatus": "Capacitate de stocare:
{0} utilizat din {1}", - "fc_collapseAll": "Restrânge" + "fc_collapseAll": "Restrânge", + "settings_creationSkip": "Omiteți ecranul de creare a fișierului", + "settings_padSpellcheckLabel": "Activați verificarea ortografică", + "settings_padSpellcheckHint": "Această opțiune vă permite să activați verificarea ortografică în editorul de text. Erorile de ortografie vor fi subliniate în roșu și va trebui să țineți apăsată tasta Ctrl sau tasta Meta în timp ce faceți clic dreapta pentru a vedea opțiunile corecte.", + "settings_padSpellcheckTitle": "Verificare a ortografiei", + "settings_padWidthLabel": "Reduceți lățimea editorului", + "settings_padWidthHint": "Comutați între modul pagină (implicit) care limitează lățimea editorului de text și utilizați întreaga lățime a ecranului.", + "settings_resetThumbnailsDone": "Toate iconițele au fost șterse.", + "settings_disableThumbnailsDescription": "Iconițele sunt create automat și stocate în browserul dvs. atunci când vizitați un nou fișier. Puteți dezactiva această funcționalitate aici.", + "settings_disableThumbnailsAction": "Dezactivați crearea de iconițe în CryptDrive", + "settings_resetThumbnailsDescription": "Curățați toate iconițele fișierelor stocate în browser.", + "settings_resetThumbnailsAction": "Curăță" } From 5a6d8881a07febcb113655fcddf282f91d8381a3 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 15 Jul 2020 18:06:22 +0200 Subject: [PATCH 04/11] Translated using Weblate (French) Currently translated at 99.9% (1301 of 1302 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/fr/ --- www/common/translations/messages.fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json index da7f4f260..ec65d89f4 100644 --- a/www/common/translations/messages.fr.json +++ b/www/common/translations/messages.fr.json @@ -1396,5 +1396,6 @@ "oo_refresh": "Recharger", "support_category": "Choisir une catégorie", "fm_restricted": "Vous n'avez pas accès à cet élément", - "fm_emptyTrashOwned": "Votre corbeille contient des documents dont vous êtes propriétaire. Vous pouvez les supprimer de votre drive uniquement, ou les détruire pour tous les utilisateurs." + "fm_emptyTrashOwned": "Votre corbeille contient des documents dont vous êtes propriétaire. Vous pouvez les supprimer de votre drive uniquement, ou les détruire pour tous les utilisateurs.", + "fm_noResult": "Pas de résultat" } From 12b579e179a81a6fd7ac52f183777e759c0348f4 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 15 Jul 2020 18:06:22 +0200 Subject: [PATCH 05/11] Translated using Weblate (German) Currently translated at 100.0% (1302 of 1302 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/de/ --- www/common/translations/messages.de.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/common/translations/messages.de.json b/www/common/translations/messages.de.json index 6d3e78b4d..fa28823e4 100644 --- a/www/common/translations/messages.de.json +++ b/www/common/translations/messages.de.json @@ -1397,5 +1397,6 @@ "oo_refreshText": "Dieses Dokument wurde aktualisiert", "support_formCategoryError": "Fehler: Kategorie ist leer", "fm_restricted": "Du kannst auf dieses Element nicht zugreifen", - "fm_emptyTrashOwned": "In deinem Papierkorb sind Dokumente gespeichert, deren Eigentümer du bist. Du kannst sie aus deinem CryptDrive entfernen oder für alle Benutzer zerstören." + "fm_emptyTrashOwned": "In deinem Papierkorb sind Dokumente gespeichert, deren Eigentümer du bist. Du kannst sie aus deinem CryptDrive entfernen oder für alle Benutzer zerstören.", + "fm_noResult": "Keine Ergebnisse gefunden" } From 240b6054fd82ae992d9e8359bd1c26fc98a11ef5 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 15 Jul 2020 13:00:52 -0400 Subject: [PATCH 06/11] implement a 'clear' method for throttled functions --- www/common/common-util.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/www/common/common-util.js b/www/common/common-util.js index 424dbfdd3..95959d733 100644 --- a/www/common/common-util.js +++ b/www/common/common-util.js @@ -310,6 +310,10 @@ clearTimeout(to); to = setTimeout(Util.bake(f, Util.slice(arguments)), ms); }; + g.clear = function () { + clearTimeout(to); + to = undefined; + }; return g; }; From 33fd8a47bd7716e9cdc591c6d6a0a57dde130846 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 15 Jul 2020 14:48:18 -0400 Subject: [PATCH 07/11] fix a button style regression related to shared folder password change --- www/common/drive-ui.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 58f14d429..7b48c1c50 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -4785,7 +4785,7 @@ define([ placeholder: Messages.settings_changePasswordNew, style: 'flex: 1;' }); - var passwordOk = h('button', Messages.properties_changePasswordButton); + var passwordOk = h('button.btn', Messages.properties_changePasswordButton); var changePass = h('span.cp-password-container', [ newPassword, passwordOk From 1728e38cb184e9ce0c4ab67cf817c352200ca159 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 15 Jul 2020 14:49:39 -0400 Subject: [PATCH 08/11] update version string to 3.20.1 (UplandMoa's revenge) --- customize.dist/pages.js | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/customize.dist/pages.js b/customize.dist/pages.js index 864e3563f..3eba892e9 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 = "CryptPad v3.20.0 (UplandMoa)"; + Pages.versionString = "CryptPad v3.20.1 (UplandMoa's revenge)"; // used for the about menu Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined; diff --git a/package-lock.json b/package-lock.json index 1b799f71e..aab1814ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cryptpad", - "version": "3.20.0", + "version": "3.20.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 0611baa2a..b74380b14 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cryptpad", "description": "realtime collaborative visual editor with zero knowlege server", - "version": "3.20.0", + "version": "3.20.1", "license": "AGPL-3.0+", "repository": { "type": "git", From 1c1aef96fee7d497a731d181b046820659db4c26 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 15 Jul 2020 14:51:10 -0400 Subject: [PATCH 09/11] update our linters' lodash dependency version --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index aab1814ec..299dc473b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -977,9 +977,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", "dev": true }, "lodash.clonedeep": { From 9a209648aed0c13998b7c2fda869c73a752a2d4e Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 16 Jul 2020 10:11:06 -0400 Subject: [PATCH 10/11] lint compliance --- www/common/onlyoffice/inner.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 7e9e9a77b..38ea1fed3 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -1043,7 +1043,8 @@ define([ var lock = readOnly || APP.migrate; // Starting from version 3, we can use the view mode again - var mode = (content && content.version > 2 && lock) ? "view" : "edit"; + // defined but never used + //var mode = (content && content.version > 2 && lock) ? "view" : "edit"; // Config APP.ooconfig = { @@ -1823,6 +1824,7 @@ define([ } var version = 'v2a/'; + var msg; // Old version detected: use the old OO and start the migration if we can if (privateData.ooForceVersion) { if (privateData.ooForceVersion === "1") { @@ -1836,7 +1838,7 @@ define([ content.migration = true; APP.onLocal(); } else { - var msg = h('div.alert.alert-warning.cp-burn-after-reading', Messages.oo_sheetMigration_anonymousEditor); // XXX update: "anonymous users or viewers" + msg = h('div.alert.alert-warning.cp-burn-after-reading', Messages.oo_sheetMigration_anonymousEditor); // XXX update: "anonymous users or viewers" $(APP.helpMenu.menu).after(msg); readOnly = true; } @@ -1847,7 +1849,7 @@ define([ content.migration = true; APP.onLocal(); } else { - var msg = h('div.alert.alert-warning.cp-burn-after-reading', Messages.oo_sheetMigration_anonymousEditor); + msg = h('div.alert.alert-warning.cp-burn-after-reading', Messages.oo_sheetMigration_anonymousEditor); $(APP.helpMenu.menu).after(msg); readOnly = true; } From 9bc27d7d0d50d17c345bd545a45341a05293c558 Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 16 Jul 2020 13:11:45 -0400 Subject: [PATCH 11/11] update changelog for 3.20.1 --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7201173cf..dfb279f72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +# UplandMoa's revenge (3.20.1) + +Once again we've decided to follow up our last major release with a minor "revenge" release that we wanted to make available as soon as possible. +We expect to deploy and release version 3.21.0 on Tuesday, July 28th, 2020. + +Features + +* The _markmap_ rendering mode which was recently added to markdown preview pane implements some click event handlers which overlap with our existing handlers which open the embedded mindmap in our full screen "lightbox". You can now use _ctrl-click_ to trigger its built-in events (collapsing subtrees of the mindmap) without opening the lightbox. +* We've made a few improvement to user and team drives: + * The _list mode_ now features a "ghost icon" which you can use to create a new pad in the current folder, matching behaviour that already existed in grid mode. + * We've also updated the search mode to display a spinner while your search is in progress. We also display some text when no results are found. + * Team drives now open with the sidebar collapsed. +* Our rich text, code, slide, and poll apps now intercept pasted images and prompt the user to upload them, matching the existing experience of dragging an image into the same editable area. +* We've received new contributions to our Romanian translation via [our weblate instance](https://weblate.cryptpad.fr/projects/cryptpad/app/). + +Bug fixes + +* We identified some race conditions in our spreadsheet app that were responsible for some corrupted data during the period leading up to our 3.20.0 release, however, we wanted to take a little more time to test before releasing the fixes. As of this release we're moving to a third version of our internal data format. This requires a client-side migration for each older sheet which will be performed by the first registered user to open a sheet in edit mode, after which a page reload will be required. Unregistered users with edit rights will only be able to view older sheets until they have been migrated by a registered user. +* We now guard against empty _mathjax_ and _markmap_ code blocks in their respective markdown preview rendering extensions, as we discovered that empty inputs resulted in the display of "undefined" in the rendered element. +* We noticed and fixed two regressions in user and team drives: + 1. drive history had stopped working since the introduction of the "restricted mode" for shared folders which were made inaccessible due to the enforcement of their access lists. + 2. users with shared folders which had been deleted or had their passwords changed were prompted to delete the folder from their drive or enter its new password. The "submit" button was affected by a style regression which we've addressed. +* We've updated to a new version of `lodash` as a dependency of the linters that we use to validate our code. Unless you were actively using those linters while developing CryptPad this should have no effect for you. +* Finally, when users open a link to a "self-destructing pad" we now check to make sure that the deletion key they possess has not been revoked before displaying a warning indicating that the pad in question will be deleted once they open it. + +To update from 3.20.0 to 3.20.1: + +1. Stop your server +2. Get the latest code with `git checkout 3.20.1` +3. Install the latest dependencies with `bower update` and `npm i` +3. Restart your server + # UplandMoa (3.20.0) ## Goals