From 20abb2c2dfd15eb339d9730589cf65fada4299cb Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 21 Apr 2017 13:01:10 +0100 Subject: [PATCH 1/7] Add Forward Message button to m.room.message events Conform this file to eslint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 64 ++++++++++++------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index db416b8a06..4a6c978892 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -16,13 +16,13 @@ limitations under the License. 'use strict'; -var React = require('react'); +const React = require('react'); -var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); -var dis = require('matrix-react-sdk/lib/dispatcher'); -var sdk = require('matrix-react-sdk'); -var Modal = require('matrix-react-sdk/lib/Modal'); -var Resend = require("matrix-react-sdk/lib/Resend"); +const MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); +const dis = require('matrix-react-sdk/lib/dispatcher'); +const sdk = require('matrix-react-sdk'); +const Modal = require('matrix-react-sdk/lib/Modal'); +const Resend = require("matrix-react-sdk/lib/Resend"); import * as UserSettingsStore from 'matrix-react-sdk/lib/UserSettingsStore'; module.exports = React.createClass({ @@ -45,7 +45,7 @@ module.exports = React.createClass({ }, onViewSourceClick: function() { - var ViewSource = sdk.getComponent('structures.ViewSource'); + const ViewSource = sdk.getComponent('structures.ViewSource'); Modal.createDialog(ViewSource, { content: this.props.mxEvent.event, }, 'mx_Dialog_viewsource'); @@ -70,12 +70,12 @@ module.exports = React.createClass({ MatrixClientPeg.get().redactEvent( this.props.mxEvent.getRoomId(), this.props.mxEvent.getId() ).catch(function(e) { - var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); // display error message stating you couldn't delete this. - var code = e.errcode || e.statusCode; + const code = e.errcode || e.statusCode; Modal.createDialog(ErrorDialog, { title: "Error", - description: "You cannot delete this message. (" + code + ")" + description: "You cannot delete this message. (" + code + ")", }); }).done(); }, @@ -88,6 +88,14 @@ module.exports = React.createClass({ if (this.props.onFinished) this.props.onFinished(); }, + onForwardClick: function() { + dis.dispatch({ + action: 'forward_message', + content: this.props.mxEvent.getContent(), + }); + this.closeMenu(); + }, + closeMenu: function() { if (this.props.onFinished) this.props.onFinished(); }, @@ -99,7 +107,7 @@ module.exports = React.createClass({ if (this.props.onFinished) this.props.onFinished(); }, - onQuoteClick: function () { + onQuoteClick: function() { console.log(this.props.mxEvent); dis.dispatch({ action: 'quote', @@ -108,15 +116,16 @@ module.exports = React.createClass({ }, render: function() { - var eventStatus = this.props.mxEvent.status; - var resendButton; - var viewSourceButton; - var viewClearSourceButton; - var redactButton; - var cancelButton; - var permalinkButton; - var unhidePreviewButton; - var externalURLButton; + const eventStatus = this.props.mxEvent.status; + let resendButton; + let redactButton; + let cancelButton; + let forwardButton; + let viewSourceButton; + let viewClearSourceButton; + let unhidePreviewButton; + let permalinkButton; + let externalURLButton; if (eventStatus === 'not_sent') { resendButton = ( @@ -142,6 +151,14 @@ module.exports = React.createClass({ ); } + if (this.props.mxEvent.getType() === 'm.room.message') { + forwardButton = ( +
+ Forward Message +
+ ); + } + viewSourceButton = (
View Source @@ -162,7 +179,7 @@ module.exports = React.createClass({
Unhide Preview
- ) + ); } } @@ -185,7 +202,7 @@ module.exports = React.createClass({ externalURLButton = (
Source URL + rel="noopener" target="_blank" onClick={ this.closeMenu }>Source URL
); } @@ -196,6 +213,7 @@ module.exports = React.createClass({ {resendButton} {redactButton} {cancelButton} + {forwardButton} {viewSourceButton} {viewClearSourceButton} {unhidePreviewButton} @@ -204,5 +222,5 @@ module.exports = React.createClass({ {externalURLButton}
); - } + }, }); From 77ce58b59d8e382568cf436f5eeaef56d6a495f6 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 21 Apr 2017 12:58:43 +0100 Subject: [PATCH 2/7] add .idea to .gitignore so I don't accidentally push my IDE config Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c28df64c65..c9e9b250be 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ npm-debug.log electron/dist electron/pub +/.idea From 92b52a61e71f808a65afc0e4d93aa9a08f5a022b Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 24 Apr 2017 18:33:25 +0100 Subject: [PATCH 3/7] don't show forward option for things we cannot decrypt Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/context_menus/MessageContextMenu.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index 4a6c978892..5de8d18d72 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -151,7 +151,8 @@ module.exports = React.createClass({ ); } - if (this.props.mxEvent.getType() === 'm.room.message') { + if (this.props.mxEvent.getType() === 'm.room.message' + && this.props.mxEvent.getContent().msgtype !== 'm.bad.encrypted') { forwardButton = (
Forward Message From 0a1ebc2487cf3f85f017b93f21088215136342a2 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 24 Apr 2017 22:43:02 +0100 Subject: [PATCH 4/7] Don't show for anything that doesn't have a msgtype and body otherwise the server will just reject it anyway Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/context_menus/MessageContextMenu.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index 5de8d18d72..002ec5bccc 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -151,13 +151,17 @@ module.exports = React.createClass({ ); } - if (this.props.mxEvent.getType() === 'm.room.message' - && this.props.mxEvent.getContent().msgtype !== 'm.bad.encrypted') { - forwardButton = ( -
- Forward Message -
- ); + if (this.props.mxEvent.getType() === 'm.room.message') { + const content = this.props.mxEvent.getContent(); + if (content.msgtype // truthy check msgtype + && content.msgtype !== 'm.bad.encrypted' + && content.hasOwnProperty('body')) { + forwardButton = ( +
+ Forward Message +
+ ); + } } viewSourceButton = ( From 7777be89ee0ec9f5e268695fc7d1233b8eb2ab0f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 18 May 2017 23:53:37 +0100 Subject: [PATCH 5/7] only for finalised events Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/context_menus/MessageContextMenu.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index 002ec5bccc..ffedbcad8c 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -151,11 +151,9 @@ module.exports = React.createClass({ ); } - if (this.props.mxEvent.getType() === 'm.room.message') { + if (!eventStatus && this.props.mxEvent.getType() === 'm.room.message') { const content = this.props.mxEvent.getContent(); - if (content.msgtype // truthy check msgtype - && content.msgtype !== 'm.bad.encrypted' - && content.hasOwnProperty('body')) { + if (content.msgtype && content.msgtype !== 'm.bad.encrypted' && content.hasOwnProperty('body')) { forwardButton = (
Forward Message From 09f987559b0209956b97f84bb21c857074ec31f0 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 19 May 2017 01:30:36 +0100 Subject: [PATCH 6/7] rename action, now forwarding any event is possible, limited by where button is shown, i.e easy to modify Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/context_menus/MessageContextMenu.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/views/context_menus/MessageContextMenu.js b/src/components/views/context_menus/MessageContextMenu.js index ffedbcad8c..5f8cf6880b 100644 --- a/src/components/views/context_menus/MessageContextMenu.js +++ b/src/components/views/context_menus/MessageContextMenu.js @@ -90,8 +90,8 @@ module.exports = React.createClass({ onForwardClick: function() { dis.dispatch({ - action: 'forward_message', - content: this.props.mxEvent.getContent(), + action: 'forward_event', + content: this.props.mxEvent, }); this.closeMenu(); }, From 73a811aa9170cc6c4d155ea3e7c567485d363cc9 Mon Sep 17 00:00:00 2001 From: RiotTranslate Date: Sun, 28 May 2017 00:28:44 +0200 Subject: [PATCH 7/7] Update from Weblate. (#4057) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added translation using Weblate (Norwegian Bokmål) * Translated using Weblate (German) Currently translated at 100.0% (120 of 120 strings) Translation: Riot Web/Riot Web Translate-URL: https://translate.nordgedanken.de/projects/riot-web/riot-web/de/ * Translated using Weblate (Hungarian) Currently translated at 55.0% (66 of 120 strings) Translation: Riot Web/Riot Web Translate-URL: https://translate.nordgedanken.de/projects/riot-web/riot-web/hu/ --- src/i18n/strings/de_DE.json | 13 +++++---- src/i18n/strings/hu.json | 54 ++++++++++++++++++++++++++++++++++++- src/i18n/strings/nb_NO.json | 1 + 3 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 src/i18n/strings/nb_NO.json diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 62b28dc69e..d030e29d1a 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -7,14 +7,14 @@ "Invite to this room": "In diesen Raum einladen", "Filter room names": "Raum Namen filtern", "Start chat": "Neuen Chat starten", - "Room directory": "Raum Verzeichnis", + "Room directory": "Raum-Verzeichnis", "Create new room": "Neuen Raum erstellen", "Settings": "Einstellungen", "powered by Matrix": "gebaut mit Matrix", "Custom Server Options": "Optionen für eigenen Server", "Dismiss": "ausblenden", "Failed to get protocol list from Home Server": "Fehler beim Abrufen der Protokollliste vom Home Server", - "The Home Server may be too old to support third party networks": "Der Home Server kann zu alt sein, um Drittanbieter-Netzwerke zu unterstützen", + "The Home Server may be too old to support third party networks": "Der Home-Server ist eventuell zu alt, um Drittanbieter-Netzwerke zu unterstützen", "Directory": "Raum Verzeichnis", "#example:": "#beispiel:", "Search for a room": "Suche einen Raum", @@ -37,13 +37,13 @@ "Enable desktop notifications": "Aktiviere Desktop Benachrichtigungen", "Enable email notifications": "Aktiviere E-Mail Benachrichtigungen", "Enable notifications for this account": "Aktiviere Benachrichtigungen für diesen Benutzer", - "Enter keywords separated by a comma:": "Gebe Suchbegriffe getrennt durch Kommata ein:", + "Enter keywords separated by a comma:": "Trage Schlagworte, mit Komma getrennt, ein", "Error": "Fehler", "Error saving email notification preferences": "Fehler beim Speichern der E-Mail Benachrichtigungseinstellungen", "#example": "#Beispiel", "Failed to": "Konnte nicht", "Failed to add tag ": "Konnte Tag nicht hinzufügen ", - "Failed to change settings": "Konnte Einstellungen nicht ändern", + "Failed to change settings": "Einstellungen konnten nicht geändert werden", "Failed to update keywords": "Konnte Suchbegriff nicht aktualisieren", "Failed to get public room list": "Konnte keine öffentliche Raumliste laden", "Failed to join the room": "Fehler beim Betreten des Raumes", @@ -62,7 +62,7 @@ "Notification targets": "Benachrichtigungsziel", "Notifications on the following keywords follow rules which can’t be displayed here:": "Benachrichtigungen zu folgenden Stichwörtern folgen Regeln, die hier nicht angezeigt werden können:", "Notify for all other messages/rooms": "Benachrichtigung für alle anderen Mitteilungen/ Räume", - "Operation failed": "Ausführung fehlgeschlagen", + "Operation failed": "Aktion fehlgeschlagen", "Reject": "ablehnen", "Remove": "Entferne", "remove": "Entferner", @@ -93,7 +93,7 @@ "Failed to remove tag %(tagName)s from room": "Das Entfernen des Tags %(tagName)s für den Raum ist fehlgeschlagen", "Failed to set direct chat tag": "Fehler beim setzen der Direct Chat Kennzeichnung", "Mentions only": "Nur, wenn du erwähnt wirst", - "Mute": "Lautlos", + "Mute": "Stummschalten", "Permalink": "Permanenter Link", "Quote": "Zitat", "Redact": "Redaktionell entfernen", @@ -120,7 +120,6 @@ "Welcome page": "Willkommensseite", "Advanced notification settings": "Erweiterte Benachrichtigungs-Einstellungen", "Call invitation": "Anruf-Einladung", - "Enter keywords separated by a comma:": "Trage Schlagworte, mit Komma getrennt, ein", "Messages containing my display name": "Nachrichten, die meinen Anzeigenamen enthalten", "Messages containing my user name": "Nachrichten, die meinen Nutzernamen enthalten", "Messages in group chats": "Nachrichten in Chat-Gruppen", diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 8d836886ec..09fa3df9e0 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -12,5 +12,57 @@ "Create new room": "Új szoba készítés", "Couldn't find a matching Matrix room": "Nem található a keresett Matrix szoba", "Custom Server Options": "Egyedi szerver beállítások", - "delete the alias": "becenév törlése" + "delete the alias": "becenév törlése", + "Delete the room alias %(alias)s and remove %(name)s from the directory?": "Törlöd a(z) %(alias)s szobát és kiveszed a könyvtárból ezt: %(name)s?", + "Direct Chat": "Közvetlen csevegés", + "Directory": "Könyvtár", + "Dismiss": "Eltűntet", + "Download this file": "Fájl letöltése", + "Drop here %(toAction)s": "%(toAction)s -t húzd ide", + "Enable audible notifications in web client": "Hallható értesítések engedélyezése a webes kliensben", + "Enable desktop notifications": "Asztali értesítések engedélyezése", + "Enable email notifications": "E-mail értesítések engedélyezése", + "Enable notifications for this account": "Értesítések engedélyezése a fiókhoz", + "Enable them now": "Engedélyezés most", + "Enter keywords separated by a comma:": "Kulcsszavak vesszővel elválasztva:", + "Error": "Hiba", + "Error saving email notification preferences": "Hiba email értesítés beállításának mentésénél", + "#example": "#példa", + "Failed to": "Nem lehet", + "Failed to add tag %(tagName)s to room": "Nem lehet a címkét hozzáadni a szobához: %(tagName)s", + "Failed to change settings": "Nem lehet a beállítást megváltoztatni", + "Failed to forget room %(errCode)s": "Nem lehet eltávolítani a szobát: %(errCode)s", + "Failed to update keywords": "Nem lehet a kulcsszavakat frissíteni", + "Failed to get protocol list from Home Server": "Nem lehet a protokoll listát lekérni a Saját szerverről", + "Failed to get public room list": "Nem lehet lekérdezni a nyílt szobák listáját", + "Failed to join the room": "Nem lehet csatlakozni a szobához", + "Failed to remove tag %(tagName)s from room": "Nem lehet törölni a(z) %(tagName)s címkét a szobáról", + "Failed to set direct chat tag": "Nem lehet a címkét beállítani a közvetlen beszélgetéshez", + "Failed to set Direct Message status of room": "Nem lehet beállítani a Közvetlen beszélgetés státuszt a szobához", + "Favourite": "Kedvenc", + "Fetching third party location failed": "Nem sikerült lekérdezni a harmadik felet", + "Files": "Fájlok", + "Filter room names": "Szoba nevek szűrése", + "Forget": "Elfelejt", + " from room": " szobából", + "Guests can join": "Vendégek csatlakozhatnak", + "Guest users can't invite users. Please register to invite": "Vendég felhasználó nem küldhet meghívót. Kérlek regisztrálj meghívó küldéshez", + "Invite to this room": "Meghívás a szobába", + "Keywords": "Kulcsszavak", + "Leave": "Elhagy", + "Low Priority": "Alacsony priorítás", + "Members": "Résztvevők", + "Mentions only": "Csak ha megemlítenek", + "Messages containing my display name": "Az üzenet tartalmazza a nevem", + "Messages containing my user name": "Az üzenet tartalmazza a felhasználói nevem", + "Messages in group chats": "Üzenetek a csoportszobában", + "Messages in one-to-one chats": "Üzenetek közvetlen beszélgetésekben", + "Messages sent by bot": "Botok által küldött üzenetek", + "more": "további", + "Mute": "Elnémít", + "No rooms to show": "Nincs megjeleníthető szoba", + "Noisy": "Hangos", + "Notification targets": "Értesítések célpontja", + "Notifications": "Értesítések", + "Notify for all other messages/rooms": "Értesítés minden más üzenethez/szobához" } diff --git a/src/i18n/strings/nb_NO.json b/src/i18n/strings/nb_NO.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/src/i18n/strings/nb_NO.json @@ -0,0 +1 @@ +{} \ No newline at end of file