Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging

pull/1/head
yflory 4 years ago
commit afae952f64

@ -84,6 +84,11 @@ Otherwise, to update from 4.1.0 to 4.2.0:
* add support for strict mode
* supports undo/redo
* [#195](https://github.com/xwiki-labs/cryptpad/issues/195)
* fix kanban import
* file upload
* warn before attempting to upload a file that is too large
* [#682](https://github.com/xwiki-labs/cryptpad/issues/682)
* disallow upload outside of the documents section of drives
# 4.1.0 (B)

@ -25,7 +25,7 @@ define([
].join('');
var built = false;
var types = ['less', 'drive', 'migrate', 'sf', 'team', 'pad', 'end'];
var types = ['less', 'drive', 'migrate', 'sf', 'team', 'pad', 'end']; // Msg.loading_state_0, loading_state_1, loading_state_2, loading_state_3, loading_state_4, loading_state_5
var current, progress;
var makeList = function (data) {
var c = types.indexOf(data.type);

@ -13,7 +13,7 @@ var ignoreLines = function (source, pattern) {
};
var GENERATED_PATTERNS = [
/(admin|settings)_.*(Hint|Title|Button)/,
/(team|admin|settings|support)_.*(Hint|Title|Button)/,
/settings_colortheme/,
/loading_(state|drive|pad)_/,
/(admin|notifications|support|team|settings)_cat_/,
@ -28,7 +28,10 @@ var isPossiblyGenerated = function (key) {
var grep = function (pattern, cb) {
var exclude = [
'www/common/translations/*',
'www/common/onlyoffice/*',
'www/common/onlyoffice/v1/*',
'www/common/onlyoffice/v2b*',
'www/common/onlyoffice/x2t/*',
//'www/common/onlyoffice/build/*',
'www/lib/*',
'www/common/pdfjs/*',
'*.css',
@ -75,7 +78,7 @@ var grep = function (pattern, cb) {
if (/data\-localization/.test(stdout)) {
return cb(void 0, true, "DATA_LOCALIZATION", stdout);
}
if (/(Messages|Msg|messages)\./.test(stdout)) {
if (/(Messages|Msg|messages)\./.test(stdout) || /(footLink|footerCol)/.test(stdout)) {
return cb(void 0, false);
}

@ -273,7 +273,7 @@ define([
return $div;
};
var getPrettySize = function (bytes) {
var getPrettySize = function (bytes) { // XXX duplicate of UIElements.prettySize ?
var unit = Util.magnitudeOfBytes(bytes);
var value = unit === 'GB' ? Util.bytesToGigabytes(bytes) : Util.bytesToMegabytes(bytes);
return unit === 'GB' ? Messages._getKey('formattedGB', [value])

@ -35,9 +35,9 @@ define([
UIElements.prettySize = function (bytes) {
var kB = Util.bytesToKilobytes(bytes);
if (kB < 1024) { return kB + Messages.KB; }
if (kB < 1024) { return kB + Messages.KB; } // XXX replace with Msg.formattedKB ?
var mB = Util.bytesToMegabytes(bytes);
return mB + Messages.MB;
return mB + Messages.MB; // XXX replace with Msg.formattedMB
};
UIElements.updateTags = function (common, hrefs) {
@ -911,18 +911,22 @@ define([
};
var actions = {
'bold': {
// Msg.mdToolbar_bold
expr: '**{0}**',
icon: 'fa-bold'
},
'italic': {
// Msg.mdToolbar_italic
expr: '_{0}_',
icon: 'fa-italic'
},
'strikethrough': {
// Msg.mdToolbar_strikethrough
expr: '~~{0}~~',
icon: 'fa-strikethrough'
},
'heading': {
// Msg.mdToolbar_heading
apply: function (str) {
return '\n'+clean(str).split('\n').map(function (line) {
return '# '+line;
@ -931,10 +935,12 @@ define([
icon: 'fa-header'
},
'link': {
// Msg.mdToolbar_link
expr: '[{0}](http://)',
icon: 'fa-link'
},
'quote': {
// Msg.mdToolbar_quote
apply: function (str) {
return '\n\n'+str.split('\n').map(function (line) {
return '> '+line;
@ -943,6 +949,7 @@ define([
icon: 'fa-quote-right'
},
'nlist': {
// Msg.mdToolbar_nlist
apply: function (str) {
return '\n'+clean(str).split('\n').map(function (line) {
return '1. '+line;
@ -951,6 +958,7 @@ define([
icon: 'fa-list-ol'
},
'list': {
// Msg.mdToolbar_list
apply: function (str) {
return '\n'+clean(str).split('\n').map(function (line) {
return '* '+line;
@ -959,6 +967,7 @@ define([
icon: 'fa-list-ul'
},
'check': {
// Msg.mdToolbar_check
apply: function (str) {
return '\n' + clean(str).split('\n').map(function (line) {
return '* [ ] ' + line;
@ -967,6 +976,7 @@ define([
icon: 'fa-check-square-o'
},
'code': {
// Msg.mdToolbar_code
apply: function (str) {
if (str.indexOf('\n') !== -1) {
return '\n```\n' + clean(str) + '\n```\n';
@ -976,6 +986,7 @@ define([
icon: 'fa-code'
},
'toc': {
// Msg.mdToolbar_toc
expr: '[TOC]',
icon: 'fa-newspaper-o'
}

@ -272,7 +272,7 @@
else if (bytes >= oneMegabyte) { return 'MB'; }
};
Util.getPrettySize = function (bytes, Messages) {
Util.getPrettySize = function (bytes, Messages) { // XXX not used anywhere?
var unit = Util.magnitudeOfBytes(bytes);
if (unit === 'GB') {
return Messages._getKey('formattedGB', [Util.bytesToGigabytes(bytes)]);

@ -310,18 +310,18 @@ define([
cache: cache
};
var filesData = data.sharedFolderId && ctx.sf[data.sharedFolderId] ? ctx.sf[data.sharedFolderId].filesData : ctx.data.filesData;
progress('reading', -1);
progress('reading', -1); // Msg.settings_export_reading
nThen(function (waitFor) {
ctx.waitFor = waitFor;
var zipRoot = ctx.zip.folder(data.name || Messages.fm_rootName);
makeFolder(ctx, ctx.folder || ctx.data.root, zipRoot, filesData);
progress('download', {});
progress('download', {}); // Msg.settings_export_download
}).nThen(function () {
console.log(ctx.zip);
console.log(ctx.errors);
progress('compressing', -1);
progress('compressing', -1); // Msg.settings_export_compressing
ctx.zip.generateAsync({type: 'blob'}).then(function (content) {
progress('done', -1);
progress('done', -1); // Msg.settings_export_done
cb(content, ctx.errors);
});
});

@ -86,9 +86,9 @@ define([
var content = data.content;
var msg = content.msg;
var type = Hash.parsePadUrl(msg.content.href).type;
var key = type === 'drive' ? 'notification_folderShared' :
(type === 'file' ? 'notification_fileShared' :
'notification_padShared');
var key = type === 'drive' ? 'notification_folderShared' : // Msg.notification_folderSharedTeam
(type === 'file' ? 'notification_fileShared' : // Msg.notification_fileSharedTeam
'notification_padShared'); // Msg.notification_padSharedTeam
var teamNotification = /^team-/.test(data.type) && Number(data.type.slice(5));
var teamName = '';
@ -220,7 +220,7 @@ define([
var name = Util.fixHTML(msg.content.user.displayName) || Messages.anonymous;
var title = Util.fixHTML(msg.content.title);
content.getFormatText = function() {
return Messages._getKey('owner_request', [name, title]);
return Messages._getKey('owner_request', [name, title]); // Msg.owner_request_accepted, .owner_request_declined
};
// Check authenticity
@ -260,7 +260,7 @@ define([
// Display the notification
var name = Util.fixHTML(msg.content.user.displayName) || Messages.anonymous;
var title = Util.fixHTML(msg.content.title);
var key = 'owner_removed' + (msg.content.pending ? 'Pending' : '');
var key = 'owner_removed' + (msg.content.pending ? 'Pending' : ''); // Msg.owner_removed, owner_removedPending
content.getFormatText = function() {
return Messages._getKey(key, [name, title]);
};
@ -311,7 +311,7 @@ define([
var name = Util.fixHTML(msg.content.user.displayName) || Messages.anonymous;
var teamName = Util.fixHTML(Util.find(msg, ['content', 'team', 'metadata', 'name'])  || '') ||
Util.fixHTML(Util.find(msg, ['content', 'teamName']));
var key = 'team_' + (msg.content.answer ? 'accept' : 'decline') + 'Invitation';
var key = 'team_' + (msg.content.answer ? 'accept' : 'decline') + 'Invitation'; // Msg.team_acceptInvitation, team_declineInvitation
content.getFormatText = function() {
return Messages._getKey(key, [name, teamName]);
};

@ -940,9 +940,9 @@ MessengerUI, Messages) {
var todo = function (e, overLimit) {
if (e) { return void console.error("Unable to get the pinned usage", e); }
if (overLimit) {
var key = 'pinLimitReachedAlert';
var key = 'pinLimitReachedAlert'; // Msg.pinLimitReachedAlert
if (!ApiConfig.allowSubscriptions) {
key = 'pinLimitReachedAlertNoAccounts';
key = 'pinLimitReachedAlertNoAccounts'; // Msg.pinLimitReachedAlertNoAccounts
}
$limit.show().click(function () {
UI.alert(Messages._getKey(key, [encodeURIComponent(l.hostname)]), null, true);

@ -50,7 +50,6 @@
"initializing": "Inicialitzant...",
"forgotten": "Desplaçat a la brossa",
"errorState": "Error crític: {0}",
"lag": "Latència",
"readonly": "Només de lectura",
"anonymous": "Anònim",
"users": "Persones usuàries",
@ -488,7 +487,6 @@
"upload_up": "Carrega",
"download_mt_button": "Descarrega",
"home_host": "Aquesta és una instància comunitària independent de CryptPad. El codi font està disponible<a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\">a GitHub</a>.",
"home_product": "CryptPad és una alternativa, respectuosa amb la privacitat, a les utilitats d'oficina i els serveis al núvol. Tot el contingut desat a CryptPad es xifra abans de ser enviat, això vol dir que ningú pot accedir a les vostres dades sense que li doneu les claus (fins i tot nosaltres).",
"mdToolbar_toc": "Taula de continguts",
"mdToolbar_code": "Codi",
"mdToolbar_check": "Llista de tasques",

@ -48,7 +48,6 @@
"initializing": "Starten...",
"forgotten": "In den Papierkorb verschoben",
"errorState": "Kritischer Fehler: {0}",
"lag": "Verzögerung",
"readonly": "schreibgeschützt",
"anonymous": "Anonym",
"users": "Nutzer",
@ -486,7 +485,6 @@
"mdToolbar_list": "Aufzählung",
"mdToolbar_check": "Aufgabenliste",
"mdToolbar_code": "Code",
"home_product": "CryptPad ist eine Alternative mit eingebautem Datenschutz zu verbreiteten Office- und Clouddiensten. Mit CryptPad wird der gesamte Inhalt verschlüsselt, bevor er an den Server gesendet wird. Das bedeutet, dass keiner auf den Inhalt zugreifen kann, es sei denn du gibst die Schlüssel weiter. Selbst wir haben diesen Zugriff nicht.",
"home_host": "Dies ist eine unabhängige Installation der CrypPad-Software.",
"main_catch_phrase": "Suite zur Zusammenarbeit,<br>verschlüsselt und quelloffen",
"footer_aboutUs": "Über uns",

@ -32,7 +32,6 @@
"initializing": "Γίνεται προετοιμασία...",
"forgotten": "Μετακινήθηκε στον κάδο ανακύκλωσης",
"errorState": "Κρίσιμο σφάλμα: {0}",
"lag": "Αργή σύνδεση",
"readonly": "Λειτουργία ανάγνωσης μόνο",
"anonymous": "Ανώνυμος/η",
"users": "Χρήστες",

@ -18,7 +18,6 @@
"disconnected": "Desconectado",
"synchronizing": "Sincronizando",
"reconnecting": "Reconectando",
"lag": "Retraso",
"readonly": "Sólo lectura",
"anonymous": "Anónimo",
"users": "Usuarios",
@ -559,7 +558,6 @@
"mdToolbar_check": "Lista de tarea",
"mdToolbar_code": "Código",
"mdToolbar_toc": "Tablas de contenidos",
"home_product": "CryptPad es una alternativa privada por diseño a las populares herramientas de oficina y servicios en la nube. Todo el contenido almacenado en CryptPad está encriptado antes de ser enviado, lo que significa que nadie puede acceder a sus datos a menos que usted les dé las claves (ni siquiera nosotros).",
"home_host": "Esta es una instancia de comunidad independiente de CryptPad. Su código fuente está disponible <a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\"> en GitHub </a>.",
"whatis_title": "¿Que es CryptPad?",
"whatis_collaboration": "Colaboración fácil y rápida",

@ -51,7 +51,6 @@
"initializing": "Valmistellaan...",
"forgotten": "Siirretty roskakoriin",
"errorState": "Vakava virhe: {0}",
"lag": "Viive",
"readonly": "Vain luku",
"anonymous": "Anonyymi",
"users": "Käyttäjät",
@ -508,7 +507,6 @@
"mdToolbar_check": "Tehtävälista",
"mdToolbar_code": "Koodi",
"mdToolbar_toc": "Sisällysluettelo",
"home_product": "CryptPad on sisäänrakennetun tietosuojan periaatteen mukainen vaihtoehto suosituille toimisto-ohjelmistoille ja pilvipalveluille. Kaikki CryptPadiin tallennettavat tiedot salataan ennen palvelimelle lähettämistä. Kukaan (emme edes me) ei voi päästä tietoihisi ilman avaimiasi.",
"home_host": "Tämä on itsenäinen yhteisön ylläpitämä Cryptpad-instanssi.",
"main_catch_phrase": "Avoimen lähdekoodin salattu kollaboraatioalusta",
"footer_aboutUs": "Tietoa meistä",

@ -49,7 +49,6 @@
"initializing": "Initialisation...",
"forgotten": "Déplacé vers la corbeille",
"errorState": "Erreur critique : {0}",
"lag": "Latence",
"readonly": "Lecture seule",
"anonymous": "Anonyme",
"users": "Utilisateurs",
@ -493,7 +492,6 @@
"mdToolbar_list": "Liste à puces",
"mdToolbar_check": "Liste de tâches",
"mdToolbar_code": "Code",
"home_product": "CryptPad est une alternative respectant la vie privée aux outils office et aux services cloud populaires. Tout le contenu stocké dans CryptPad est chiffré avant d'être envoyé, ce qui signifie que personne ne peut accéder à vos données à moins que vous ne leur donniez les clés (même pas nous).",
"home_host": "Ceci est une instance communautaire et indépendante de CryptPad.",
"main_catch_phrase": "Outils collaboratifs,<br>chiffrés et open source",
"footer_aboutUs": "À propos",

@ -50,7 +50,6 @@
"initializing": "Inizializzazione in corso...",
"forgotten": "Spostato nel cestino",
"errorState": "Errore critico: {0}",
"lag": "Latenza",
"readonly": "Sola lettura",
"anonymous": "Anonimo",
"users": "Utenti",
@ -574,7 +573,6 @@
"whatis_collaboration": "Collaborazione veloce, facile",
"terms": "Condizioni del servizio",
"main_catch_phrase": "Il cloud Zero Knowledge",
"home_product": "CryptPad è un'alternativa ai comuni strumenti office e cloud rispettosa della privacy. Tutti i contenuti immagazzinati in CryptPad sono crittografati prima di essere spediti, ciò significa che nessuno può accedere ai tuoi dati a meno che tu non gli dia la chiave (nemmeno noi).",
"mdToolbar_check": "Elenco delle attività",
"mdToolbar_heading": "Titolo",
"mdToolbar_strikethrough": "Barrato",

@ -51,7 +51,6 @@
"initializing": "Initializing...",
"forgotten": "Moved to the trash",
"errorState": "Critical error: {0}",
"lag": "Lag",
"readonly": "Read only",
"anonymous": "Anonymous",
"users": "Users",
@ -508,7 +507,6 @@
"mdToolbar_check": "Task list",
"mdToolbar_code": "Code",
"mdToolbar_toc": "Table of Contents",
"home_product": "CryptPad is a private-by-design alternative to popular office tools and cloud services. All the content stored on CryptPad is encrypted before being sent, which means nobody can access your data unless you give them the keys (not even us).",
"home_host": "This is an independent community instance of CryptPad.",
"main_catch_phrase": "Collaboration suite,<br>encrypted and open-source",
"footer_aboutUs": "About us",

@ -46,7 +46,6 @@
"initializing": "Setter i gang…",
"forgotten": "Flytta til papirkurven",
"errorState": "Kritisk feil: {0}",
"lag": "Treighet",
"readonly": "Skrivebeskyttet",
"anonymous": "Anonym",
"users": "Brukere",

@ -144,7 +144,6 @@
"users": "Gebruikers",
"anonymous": "Anoniem",
"readonly": "Alleen-lezen",
"lag": "Vertraging",
"errorState": "Kritieke fout: {0}",
"forgotten": "Verplaatst naar de prullenbak",
"initializing": "Bezig met initialiseren...",

@ -13,7 +13,6 @@
"disconnected": "Rozłączony",
"synchronizing": "Synchronizacja",
"reconnecting": "Wznawianie połączenia...",
"lag": "Lag",
"readonly": "Tylko do odczytu",
"anonymous": "Anonimowy",
"users": "Użytkownicy",

@ -30,7 +30,6 @@
"disconnected": "Desconectado",
"synchronizing": "Sincronizando",
"reconnecting": "Reconectando...",
"lag": "Lag",
"readonly": "Somente leitura",
"anonymous": "Anonimo",
"users": "Usuários",

@ -15,7 +15,6 @@
"disconnected": "Deconectat",
"synchronizing": "Se sincronizează",
"reconnecting": "Reconectare...",
"lag": "Decalaj",
"readonly": "Mod citire",
"anonymous": "Anonim",
"users": "Utilizatori",

@ -49,7 +49,6 @@
"initializing": "Инициализация...",
"forgotten": "Удалено в корзину",
"errorState": "Критическая ошибка: {0}",
"lag": "Задержка",
"readonly": "Только для чтения",
"anonymous": "Анонимный",
"users": "Пользователи",
@ -652,7 +651,6 @@
"topbar_whatIsCryptpad": "Что такое CryptPad",
"blog": "Блог",
"contact": "Контакты",
"home_product": "CryptPad это конфиденциальная альтернатива популярным офисным инструментам и облачным сервисам. Вся информация, хранимая в CryptPad, шифруется до отправки на сервер, и никто (даже мы) не сможет получить доступ к ней, пока вы не предоставите ключ для расшифровки.",
"privacy": "Политика конфиденциальности",
"footer_aboutUs": "О нас",
"home_host": "Это независимый общественный сервер CryptPad.",

@ -54,7 +54,6 @@
"colorButtonTitle": "Ändra textfärgen i presentationsläge",
"useTemplateCancel": "Starta tomt (Esc)",
"pinLimitReachedAlert": "Du har nått din lagringsgräns. Nya dokument kommer inte lagras i din CryptDrive.<br>Du kan antingen ta bort dokument från din CryptDrive eller <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">eller prenumerera på premium</a> för att öka din lagringsgräns.",
"lag": "Fördröjning",
"anonymousStoreDisabled": "Administratören för denna CryptPad-instans har avaktiverat anonyma användare. Du måste logga in för att kunna använda CryptDrive.",
"common_connectionLost": "<b>Serveranslutning tappad</b><br>Du är nu i skrivskyddat läge tills anslutningen är tillbaka.",
"button_newcode": "Nytt kod-dokument",

@ -30,7 +30,6 @@
"disconnected": "已斷線",
"synchronizing": "同步中",
"reconnecting": "重新連結...",
"lag": "Lag",
"readonly": "唯讀",
"anonymous": "匿名",
"users": "用戶",

Loading…
Cancel
Save