From 5771406dd7d0c691082515461b0fa5d8d28594d2 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 18 Mar 2019 23:21:21 +0000
Subject: [PATCH 1/2] Add View Servers in Room to Devtools
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
res/css/views/dialogs/_DevtoolsDialog.scss | 6 ++-
.../views/dialogs/DevtoolsDialog.js | 44 +++++++++++++++++++
src/i18n/strings/en_EN.json | 1 +
3 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/res/css/views/dialogs/_DevtoolsDialog.scss b/res/css/views/dialogs/_DevtoolsDialog.scss
index 815e8408b5..f38191445c 100644
--- a/res/css/views/dialogs/_DevtoolsDialog.scss
+++ b/res/css/views/dialogs/_DevtoolsDialog.scss
@@ -18,7 +18,11 @@ limitations under the License.
margin: 10px 0;
}
-.mx_DevTools_RoomStateExplorer_button, .mx_DevTools_RoomStateExplorer_query {
+.mx_DevTools_ServersInRoomList_button {
+ cursor: default !important;
+}
+
+.mx_DevTools_RoomStateExplorer_button, .mx_DevTools_ServersInRoomList_button, .mx_DevTools_RoomStateExplorer_query {
margin-bottom: 10px;
width: 100%;
}
diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js
index 3db516a74d..f7ddb542ae 100644
--- a/src/components/views/dialogs/DevtoolsDialog.js
+++ b/src/components/views/dialogs/DevtoolsDialog.js
@@ -551,11 +551,55 @@ class AccountDataExplorer extends DevtoolsComponent {
}
}
+class ServersInRoomList extends DevtoolsComponent {
+ static getLabel() { return _t('View Servers in Room'); }
+
+ static propTypes = {
+ onBack: PropTypes.func.isRequired,
+ };
+
+ constructor(props, context) {
+ super(props, context);
+
+ this.onQuery = this.onQuery.bind(this);
+
+ const room = MatrixClientPeg.get().getRoom(this.context.roomId);
+ const servers = new Set();
+ room.currentState.getStateEvents("m.room.member").forEach(ev => servers.add(ev.getSender().split(":")[1]));
+ this.servers = Array.from(servers).map(s =>
+ );
+
+ this.state = {
+ query: '',
+ };
+ }
+
+ onQuery(query) {
+ this.setState({ query });
+ }
+
+ render() {
+ return
+
+
+ { this.servers }
+
+
+
+
+
+
;
+ }
+}
+
const Entries = [
SendCustomEvent,
RoomStateExplorer,
SendAccountData,
AccountDataExplorer,
+ ServersInRoomList,
];
export default class DevtoolsDialog extends React.Component {
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index e23be021e8..60fd373306 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1095,6 +1095,7 @@
"Filter results": "Filter results",
"Explore Room State": "Explore Room State",
"Explore Account Data": "Explore Account Data",
+ "View Servers in Room": "View Servers in Room",
"Toolbox": "Toolbox",
"Developer Tools": "Developer Tools",
"An error has occurred.": "An error has occurred.",
From cd5a460b2b257029ee0e1ff8d1544ea3a88fa317 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Thu, 9 May 2019 22:30:45 +0100
Subject: [PATCH 2/2] Iterate PR based on feedback
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
res/css/views/dialogs/_DevtoolsDialog.scss | 1 +
src/components/views/dialogs/DevtoolsDialog.js | 4 +---
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/res/css/views/dialogs/_DevtoolsDialog.scss b/res/css/views/dialogs/_DevtoolsDialog.scss
index f38191445c..2f01f3ecc6 100644
--- a/res/css/views/dialogs/_DevtoolsDialog.scss
+++ b/res/css/views/dialogs/_DevtoolsDialog.scss
@@ -19,6 +19,7 @@ limitations under the License.
}
.mx_DevTools_ServersInRoomList_button {
+ /* Set the cursor back to default as `.mx_Dialog button` sets it to pointer */
cursor: default !important;
}
diff --git a/src/components/views/dialogs/DevtoolsDialog.js b/src/components/views/dialogs/DevtoolsDialog.js
index f7ddb542ae..0835c41bb9 100644
--- a/src/components/views/dialogs/DevtoolsDialog.js
+++ b/src/components/views/dialogs/DevtoolsDialog.js
@@ -561,8 +561,6 @@ class ServersInRoomList extends DevtoolsComponent {
constructor(props, context) {
super(props, context);
- this.onQuery = this.onQuery.bind(this);
-
const room = MatrixClientPeg.get().getRoom(this.context.roomId);
const servers = new Set();
room.currentState.getStateEvents("m.room.member").forEach(ev => servers.add(ev.getSender().split(":")[1]));
@@ -576,7 +574,7 @@ class ServersInRoomList extends DevtoolsComponent {
};
}
- onQuery(query) {
+ onQuery = (query) => {
this.setState({ query });
}