From c0119672718c648069e5d15c8284c7a6a96376bc Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 22 Jun 2020 16:42:38 +0200 Subject: [PATCH 1/8] Translated using Weblate (German) Currently translated at 100.0% (1298 of 1298 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/de/ --- www/common/translations/messages.de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/translations/messages.de.json b/www/common/translations/messages.de.json index d40c9e552..3ab3680ea 100644 --- a/www/common/translations/messages.de.json +++ b/www/common/translations/messages.de.json @@ -1087,7 +1087,7 @@ "support_disabledTitle": "Support ist nicht aktiviert", "support_disabledHint": "Diese CryptPad-Instanz wurde noch nicht für die Verwendung eines Support-Formulars konfiguriert.", "support_cat_new": "Neues Ticket", - "support_formTitle": "Titel des Tickets", + "support_formTitle": "Neues Ticket", "support_formHint": "Mit diesem Formular kann ein neues Support-Ticket eröffnet werden. Es erlaubt die sichere Kontaktaufnahme mit den Administratoren zur Lösung von Problemen oder Beantwortung von Fragen. Bitte eröffne kein neues Ticket, wenn du bereits ein offenes Ticket bezüglich des gleichen Problems hast. Verwende stattdessen die Antworten-Schaltfläche, um weitere Informationen hinzuzufügen.", "support_formButton": "Absenden", "support_formTitleError": "Fehler: Titel ist leer", From 020434582ff30612d3539a5186ffe00dcda59193 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 22 Jun 2020 16:42:39 +0200 Subject: [PATCH 2/8] Translated using Weblate (French) Currently translated at 100.0% (1298 of 1298 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/fr/ --- www/common/translations/messages.fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json index ef33ad144..f4272d26a 100644 --- a/www/common/translations/messages.fr.json +++ b/www/common/translations/messages.fr.json @@ -1086,7 +1086,7 @@ "support_disabledTitle": "Le support n'est pas activé", "support_disabledHint": "Cette instance de CryptPad n'est pas encore configurée pour utiliser le formulaire de support.", "support_cat_new": "Nouveau ticket", - "support_formTitle": "Titre du ticket", + "support_formTitle": "Nouveau Ticket", "support_formButton": "Envoyer", "support_formTitleError": "Erreur : le titre est vide", "support_formContentError": "Erreur : le contenu est vide", From f93c164a2ed41a17d5084eabad8a68771c90b701 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 22 Jun 2020 16:42:39 +0200 Subject: [PATCH 3/8] Translated using Weblate (English) Currently translated at 100.0% (1298 of 1298 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/en/ --- www/common/translations/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index 2aee6cc19..d99fd8d18 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -1108,7 +1108,7 @@ "support_disabledTitle": "Support is not enabled", "support_disabledHint": "This CryptPad instance is not yet configured to use a support form.", "support_cat_new": "New ticket", - "support_formTitle": "Ticket title", + "support_formTitle": "New Ticket", "support_formHint": "This form can be used to create a new support ticket. Use it to contact the administrators to solve issues or ask any question in a secure way. Please don't create a new ticket if you already have an open ticket about the same issue, but use the reply button to provide more information.", "support_formButton": "Send", "support_formTitleError": "Error: title is empty", From 3086eb45c549ecb7d8c7fd10012948dc1b1d1ffd Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Jun 2020 14:58:19 -0400 Subject: [PATCH 4/8] enforce asynchronous callbacks in user object migration --- www/common/migrate-user-object.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/migrate-user-object.js b/www/common/migrate-user-object.js index 231c39ebd..b13aacb1c 100644 --- a/www/common/migrate-user-object.js +++ b/www/common/migrate-user-object.js @@ -499,7 +499,7 @@ define([ }, 500); progress(0, 0);*/ }).nThen(function () { - Realtime.whenRealtimeSyncs(store.realtime, Util.bake(cb)); + Realtime.whenRealtimeSyncs(store.realtime, Util.mkAsync(Util.bake(cb))); }); }; }); From a79a5f6a2debdac33695471b4163fe80c7e5c6be Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Jun 2020 14:58:56 -0400 Subject: [PATCH 5/8] remove some extraneous logs that were used for debugging --- www/common/outer/roster.js | 1 - www/common/sframe-common-mailbox.js | 2 -- www/common/toolbar.js | 1 - 3 files changed, 4 deletions(-) diff --git a/www/common/outer/roster.js b/www/common/outer/roster.js index d7976c8da..cd73c074c 100644 --- a/www/common/outer/roster.js +++ b/www/common/outer/roster.js @@ -798,7 +798,6 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto) { return void console.error(err); } metadata = ref.internal.metadata = (data && data[0]) || undefined; - console.log("TEAM_METADATA", metadata); }); }).nThen(function (w) { if (!config.keys.teamEdPublic && metadata && metadata.validateKey) { diff --git a/www/common/sframe-common-mailbox.js b/www/common/sframe-common-mailbox.js index bdf1ae81e..c89bdff3c 100644 --- a/www/common/sframe-common-mailbox.js +++ b/www/common/sframe-common-mailbox.js @@ -144,7 +144,6 @@ define([ var onMessage = function (data, cb) { // data = { type: 'type', content: {msg: 'msg', hash: 'hash'} } - console.debug(data.type, data.content); pushMessage(data); if (data.content && typeof (data.content.getFormatText) === "function") { var text = $('
').html(data.content.getFormatText()).text(); @@ -188,7 +187,6 @@ define([ onMessageHandlers.push(function (data, el) { var type = data.type; if (types.indexOf(type) === -1 && !(teams && /^team-/.test(type))) { return; } - console.log('okokok'); cfg.onMessage(data, el); }); } diff --git a/www/common/toolbar.js b/www/common/toolbar.js index 3afa55d61..e55cdcf82 100644 --- a/www/common/toolbar.js +++ b/www/common/toolbar.js @@ -1027,7 +1027,6 @@ MessengerUI, Messages) { Common.mailbox.subscribe(['notifications', 'team'], { onMessage: function (data, el) { - console.log(data, el, div); if (el) { $(div).prepend(el); } From d373b9c290cf6bda2b63fbbd69a04827010a5d97 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Jun 2020 15:00:34 -0400 Subject: [PATCH 6/8] ignore support ticket attachments with hrefs hosted by anything other than the local 'file' app --- www/support/ui.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/www/support/ui.js b/www/support/ui.js index ce3f09702..454dddcfc 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -179,8 +179,6 @@ define([ }).on('change', function (e) { var files = Util.slice(e.target.files); files.forEach(function (file) { - // XXX validate that the href is hosted on the same instance - // use relative URLs or compare it against a list or allowed domains? var ev = {}; ev.callback = function (data) { var x, a; @@ -321,10 +319,11 @@ define([ var attachments = (content.attachments || []).map(function (obj) { if (!obj || !obj.name || !obj.href) { return; } + // only support files explicitly beginning with /file/ so that users can't link outside of the instance + if (!/^\/file\//.test(obj.href)) { return; } var a = h('a', { href: '#' }, obj.name); - // XXX disallow remote URLs $(a).click(function (e) { e.preventDefault(); ctx.common.openURL(obj.href); From a2db04b4f59e9c67b53a8790e6a135639f8bf3ef Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Jun 2020 15:02:11 -0400 Subject: [PATCH 7/8] leave a low-priority note to make categories a required field for support tickets in the future --- www/support/ui.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/www/support/ui.js b/www/support/ui.js index 454dddcfc..0519530da 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -66,11 +66,20 @@ define([ var $cat = $form.find('.cp-support-form-category'); var $title = $form.find('.cp-support-form-title'); var $content = $form.find('.cp-support-form-msg'); - // XXX block submission until pending uploads are complete? + // TODO block submission until pending uploads are complete? var $attachments = $form.find('.cp-support-attachments'); + var category = $cat.val().trim(); + /* + // || ($form.closest('.cp-support-list-ticket').data('cat') || "").trim(); + // Messages.support_formCategoryError = "Error: category is empty"; // TODO ensure this is translated before use + + if (!category) { + console.log($cat); + return void UI.alert(Messages.support_formCategoryError); + } + */ - var category = $cat.val().trim(); // XXX make category a required field? var title = $title.val().trim(); if (!title) { return void UI.alert(Messages.support_formTitleError); From c939b4951c6b5a9c6b9ba65fec48187081a48976 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 22 Jun 2020 16:23:16 -0400 Subject: [PATCH 8/8] add some basic styles to the registration page's confirm buttons --- www/register/main.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/www/register/main.js b/www/register/main.js index d052f88b0..289c40df5 100644 --- a/www/register/main.js +++ b/www/register/main.js @@ -115,8 +115,11 @@ define([ }, { ok: Messages.register_writtenPassword, cancel: Messages.register_cancel, - cancelClass: 'safe', - okClass: 'danger', +/* If we're certain that we aren't using these "*Class" APIs + anywhere else then we can deprecate them and make this a + custom modal in common-interface (or here). */ + cancelClass: 'btn.btn-primary', + okClass: 'btn.btn-danger', reverseOrder: true, done: function ($dialog) { $dialog.find('> div').addClass('half');