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`
"oo_refreshText":"Dieses Dokument wurde aktualisiert",
"oo_refreshText":"Dieses Dokument wurde aktualisiert",
"support_formCategoryError":"Fehler: Kategorie ist leer",
"support_formCategoryError":"Fehler: Kategorie ist leer",
"fm_restricted":"Du kannst auf dieses Element nicht zugreifen",
"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 <b>entfernen</b> oder für alle Benutzer <b>zerstören</b>."
"fm_emptyTrashOwned":"In deinem Papierkorb sind Dokumente gespeichert, deren Eigentümer du bist. Du kannst sie aus deinem CryptDrive <b>entfernen</b> oder für alle Benutzer <b>zerstören</b>.",
"fm_restricted":"Vous n'avez pas accès à cet élément",
"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 <b>supprimer</b> de votre drive uniquement, ou les <b>détruire</b> pour tous les utilisateurs."
"fm_emptyTrashOwned":"Votre corbeille contient des documents dont vous êtes propriétaire. Vous pouvez les <b>supprimer</b> de votre drive uniquement, ou les <b>détruire</b> pour tous les utilisateurs.",
"fm_emptyTrashDialog":"Ești sigur că vrei să golești coșul de gunoi?",
"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_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?",
"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_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_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ă?",
"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_open_ro":"Deschide (modul citire)",
"fc_delete":"Șterge",
"fc_delete":"Șterge",
"fc_restore":"Restaurează",
"fc_restore":"Restaurează",
"fc_remove":"Șterge permanent",
"fc_remove":"Elimină",
"fc_empty":"Curăță coșul",
"fc_empty":"Curăță coșul",
"fc_prop":"Proprietăți",
"fc_prop":"Proprietăți",
"fc_sizeInKilobytes":"Dimensiune n Kilobytes",
"fc_sizeInKilobytes":"Dimensiune n Kilobytes",
@ -358,7 +358,7 @@
"chatButton":"Chat",
"chatButton":"Chat",
"userAccountButton":"Contul tău",
"userAccountButton":"Contul tău",
"uploadButton":"Încarcă fișiere",
"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?",
"useTemplate":"Pornești de la un șablon?",
"useTemplateOK":"Alege un șablon (Enter)",
"useTemplateOK":"Alege un șablon (Enter)",
"useTemplateCancel":"Începe de la zero (Esc)",
"useTemplateCancel":"Începe de la zero (Esc)",
@ -381,7 +381,7 @@
"filePicker_filter":"Filtrează fișierele după nume",
"filePicker_filter":"Filtrează fișierele după nume",
"or":"sau",
"or":"sau",
"tags_title":"Etichete (doar pentru tine)",
"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_notShared":"Etichetele tale nu sunt împărțite cu alți utilizatori",
"tags_duplicate":"Duplică eticheta: {0}",
"tags_duplicate":"Duplică eticheta: {0}",
"tags_noentry":"Nu poți eticheta un pad șters",
"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_moveNestedSF":"Nu poti plasa un folder partajat în interiorul altuia. Folderul {0} nu a fost mutat.",
"fm_passwordProtected":"Parolă protejată",
"fm_passwordProtected":"Parolă protejată",
"fc_newsharedfolder":"Folder partajat nou",
"fc_newsharedfolder":"Folder partajat nou",
"fc_delete_owned":"Șterge de pe server",
"fc_delete_owned":"Distruge",
"fc_remove_sharedfolder":"Șterge",
"fc_remove_sharedfolder":"Șterge",
"fc_hashtag":"Etichete",
"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.",
"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",
"fm_morePads":"Mai mult",
"uploadFolderButton":"Încarcă dosar",
"uploadFolderButton":"Încarcă dosar",
"storageStatus":"Capacitate de stocare:<br /><b>{0}</b> utilizat din <b>{1}</b>",
"storageStatus":"Capacitate de stocare:<br /><b>{0}</b> utilizat din <b>{1}</b>",
"fc_collapseAll":"Restrânge"
"fc_collapseAll":"Restrânge",
"settings_creationSkip":"Omiteți ecranul de creare a fișierului",
"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_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.",