From 2b965a2741ba5a6b87adacd7d8c6d633b4a4bfcb Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 10 Sep 2020 11:52:01 +0100 Subject: [PATCH 1/4] Call jitsi widgets 'group calls' So they feel a bit more like first class citizens --- src/TextForEvent.js | 22 ++++++++++++++++++++++ src/i18n/strings/en_EN.json | 3 +++ 2 files changed, 25 insertions(+) diff --git a/src/TextForEvent.js b/src/TextForEvent.js index c55380bd9b..084459c72e 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -475,6 +475,10 @@ function textForWidgetEvent(event) { const {name: prevName, type: prevType, url: prevUrl} = event.getPrevContent(); const {name, type, url} = event.getContent() || {}; + if (type === 'jitsi' || prevType === 'jitsi') { + return textForJitsiWidgetEvent(event, senderName, url, prevUrl); + } + let widgetName = name || prevName || type || prevType || ''; // Apply sentence case to widget name if (widgetName && widgetName.length > 0) { @@ -500,6 +504,24 @@ function textForWidgetEvent(event) { } } +function textForJitsiWidgetEvent(event, senderName, url, prevUrl) { + if (url) { + if (prevUrl) { + return _t('Group call modified by %(senderName)s', { + senderName, + }); + } else { + return _t('Group call started by %(senderName)s', { + senderName, + }); + } + } else { + return _t('Group call ended by %(senderName)s', { + senderName, + }); + } +} + function textForMjolnirEvent(event) { const senderName = event.getSender(); const {entity: prevEntity} = event.getPrevContent(); diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 77cd8ef661..afa2888ec5 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -278,6 +278,9 @@ "%(widgetName)s widget modified by %(senderName)s": "%(widgetName)s widget modified by %(senderName)s", "%(widgetName)s widget added by %(senderName)s": "%(widgetName)s widget added by %(senderName)s", "%(widgetName)s widget removed by %(senderName)s": "%(widgetName)s widget removed by %(senderName)s", + "Group call modified by %(senderName)s": "Group call modified by %(senderName)s", + "Group call started by %(senderName)s": "Group call started by %(senderName)s", + "Group call ended by %(senderName)s": "Group call ended by %(senderName)s", "%(senderName)s removed the rule banning users matching %(glob)s": "%(senderName)s removed the rule banning users matching %(glob)s", "%(senderName)s removed the rule banning rooms matching %(glob)s": "%(senderName)s removed the rule banning rooms matching %(glob)s", "%(senderName)s removed the rule banning servers matching %(glob)s": "%(senderName)s removed the rule banning servers matching %(glob)s", From 18be4cb202a2426fedce85cbd0378589ea521612 Mon Sep 17 00:00:00 2001 From: David Baker Date: Thu, 10 Sep 2020 14:18:49 +0100 Subject: [PATCH 2/4] Use widget type fromString --- src/TextForEvent.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TextForEvent.js b/src/TextForEvent.js index 084459c72e..82324aa57f 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -19,6 +19,7 @@ import { _t } from './languageHandler'; import * as Roles from './Roles'; import {isValid3pidInvite} from "./RoomInvite"; import SettingsStore from "./settings/SettingsStore"; +import {WidgetType} from "./widgets/WidgetType"; import {ALL_RULE_TYPES, ROOM_RULE_TYPES, SERVER_RULE_TYPES, USER_RULE_TYPES} from "./mjolnir/BanList"; function textForMemberEvent(ev) { @@ -475,7 +476,10 @@ function textForWidgetEvent(event) { const {name: prevName, type: prevType, url: prevUrl} = event.getPrevContent(); const {name, type, url} = event.getContent() || {}; - if (type === 'jitsi' || prevType === 'jitsi') { + const prevWidgetType = WidgetType.fromString(prevType); + const widgetType = WidgetType.fromString(type); + + if (widgetType === WidgetType.JITSI || prevWidgetType === WidgetType.JITSI) { return textForJitsiWidgetEvent(event, senderName, url, prevUrl); } From a93afe8c69ac6a95f6edf76d3c8e3dc22ebfc5cd Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 11 Sep 2020 09:57:13 +0100 Subject: [PATCH 3/4] Check jitsi type in proper way --- src/TextForEvent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TextForEvent.js b/src/TextForEvent.js index 82324aa57f..9fc584750a 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -479,7 +479,7 @@ function textForWidgetEvent(event) { const prevWidgetType = WidgetType.fromString(prevType); const widgetType = WidgetType.fromString(type); - if (widgetType === WidgetType.JITSI || prevWidgetType === WidgetType.JITSI) { + if (WidgetType.JITSI.matches(type) || WidgetType.JITSI.matches(prevType)) { return textForJitsiWidgetEvent(event, senderName, url, prevUrl); } From 2af803c1bb682330eddeb0285fdd63c61fe2d864 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 11 Sep 2020 10:17:37 +0100 Subject: [PATCH 4/4] remove unused stuff --- src/TextForEvent.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/TextForEvent.js b/src/TextForEvent.js index 9fc584750a..a76c1f59e6 100644 --- a/src/TextForEvent.js +++ b/src/TextForEvent.js @@ -476,9 +476,6 @@ function textForWidgetEvent(event) { const {name: prevName, type: prevType, url: prevUrl} = event.getPrevContent(); const {name, type, url} = event.getContent() || {}; - const prevWidgetType = WidgetType.fromString(prevType); - const widgetType = WidgetType.fromString(type); - if (WidgetType.JITSI.matches(type) || WidgetType.JITSI.matches(prevType)) { return textForJitsiWidgetEvent(event, senderName, url, prevUrl); }