From 393fd26a42ac885443ae2485cfd0cdb3f6559813 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Sun, 24 Feb 2019 02:42:41 +0000
Subject: [PATCH 1/3] Settings button in Room Context Menu
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
.../context_menus/RoomTileContextMenu.js | 28 ++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js
index 521282488e..23c5411e2d 100644
--- a/src/components/views/context_menus/RoomTileContextMenu.js
+++ b/src/components/views/context_menus/RoomTileContextMenu.js
@@ -271,6 +271,28 @@ module.exports = React.createClass({
);
},
+ _onClickSettings: function() {
+ dis.dispatch({
+ action: 'view_room',
+ room_id: this.props.room.roomId,
+ }, true);
+ dis.dispatch({ action: 'open_room_settings' });
+ if (this.props.onFinished) {
+ this.props.onFinished();
+ }
+ },
+
+ _renderSettingsMenu: function() {
+ return (
+
+ { this._renderSettingsMenu() }
+ { this._renderLeaveMenu(myMembership) }
+
;
}
return (
{ this._renderNotifMenu() }
+ { this._renderSettingsMenu() }
{ this._renderLeaveMenu(myMembership) }
{ this._renderRoomTagMenu() }
From d4b6ce69321ca3d4313ed5ceca005347941e0df5 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 25 Feb 2019 23:08:51 +0000
Subject: [PATCH 2/3] Apply PR feedback, don't change room to go to its
settings
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
res/css/views/dialogs/_RoomSettingsDialog.scss | 10 ++++++++++
.../views/context_menus/RoomTileContextMenu.js | 11 ++++++-----
src/components/views/dialogs/RoomSettingsDialog.js | 6 +++++-
src/stores/RoomViewStore.js | 2 +-
4 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/res/css/views/dialogs/_RoomSettingsDialog.scss b/res/css/views/dialogs/_RoomSettingsDialog.scss
index de675abe32..e2a0238756 100644
--- a/res/css/views/dialogs/_RoomSettingsDialog.scss
+++ b/res/css/views/dialogs/_RoomSettingsDialog.scss
@@ -32,3 +32,13 @@ limitations under the License.
.mx_RoomSettingsDialog_warningIcon:before {
mask-image: url('$(res)/img/feather-icons/warning-triangle.svg');
}
+
+.mx_RoomSettingsDialog .mx_Dialog_title {
+ -ms-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ margin: 0 auto;
+ padding-left: 40px;
+ padding-right: 80px;
+}
diff --git a/src/components/views/context_menus/RoomTileContextMenu.js b/src/components/views/context_menus/RoomTileContextMenu.js
index 23c5411e2d..f494fbd961 100644
--- a/src/components/views/context_menus/RoomTileContextMenu.js
+++ b/src/components/views/context_menus/RoomTileContextMenu.js
@@ -273,10 +273,9 @@ module.exports = React.createClass({
_onClickSettings: function() {
dis.dispatch({
- action: 'view_room',
+ action: 'open_room_settings',
room_id: this.props.room.roomId,
- }, true);
- dis.dispatch({ action: 'open_room_settings' });
+ });
if (this.props.onFinished) {
this.props.onFinished();
}
@@ -373,8 +372,9 @@ module.exports = React.createClass({
// Can't set notif level or tags on non-join rooms
if (myMembership !== 'join') {
return
- { this._renderSettingsMenu() }
{ this._renderLeaveMenu(myMembership) }
+
+ { this._renderSettingsMenu() }
;
}
@@ -382,10 +382,11 @@ module.exports = React.createClass({
{ this._renderNotifMenu() }
- { this._renderSettingsMenu() }
{ this._renderLeaveMenu(myMembership) }
{ this._renderRoomTagMenu() }
+
+ { this._renderSettingsMenu() }
);
},
diff --git a/src/components/views/dialogs/RoomSettingsDialog.js b/src/components/views/dialogs/RoomSettingsDialog.js
index c73edb179c..1d53425755 100644
--- a/src/components/views/dialogs/RoomSettingsDialog.js
+++ b/src/components/views/dialogs/RoomSettingsDialog.js
@@ -23,6 +23,7 @@ import RolesRoomSettingsTab from "../settings/tabs/RolesRoomSettingsTab";
import GeneralRoomSettingsTab from "../settings/tabs/GeneralRoomSettingsTab";
import SecurityRoomSettingsTab from "../settings/tabs/SecurityRoomSettingsTab";
import sdk from "../../../index";
+import MatrixClientPeg from "../../../MatrixClientPeg";
export default class RoomSettingsDialog extends React.Component {
static propTypes = {
@@ -60,9 +61,12 @@ export default class RoomSettingsDialog extends React.Component {
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
+ const room = MatrixClientPeg.get().getRoom(this.props.roomId);
+ const title = _t("Room Settings") + ' - ' + room.name;
+
return (
+ onFinished={this.props.onFinished} title={title}>
diff --git a/src/stores/RoomViewStore.js b/src/stores/RoomViewStore.js
index 7d425ec94c..73eff6f6d4 100644
--- a/src/stores/RoomViewStore.js
+++ b/src/stores/RoomViewStore.js
@@ -119,7 +119,7 @@ class RoomViewStore extends Store {
case 'open_room_settings': {
const RoomSettingsDialog = sdk.getComponent("dialogs.RoomSettingsDialog");
Modal.createTrackedDialog('Room settings', '', RoomSettingsDialog, {
- roomId: this._state.roomId,
+ roomId: payload.room_id || this._state.roomId,
}, 'mx_SettingsDialog');
break;
}
From 7029695224a8547a0df1c30b8fc74240bf8cd967 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 25 Feb 2019 23:26:24 +0000
Subject: [PATCH 3/3] make it i18n friendly
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
src/components/views/dialogs/RoomSettingsDialog.js | 6 ++----
src/i18n/strings/en_EN.json | 2 +-
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/components/views/dialogs/RoomSettingsDialog.js b/src/components/views/dialogs/RoomSettingsDialog.js
index 52b5805234..22b7857264 100644
--- a/src/components/views/dialogs/RoomSettingsDialog.js
+++ b/src/components/views/dialogs/RoomSettingsDialog.js
@@ -61,12 +61,10 @@ export default class RoomSettingsDialog extends React.Component {
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
- const room = MatrixClientPeg.get().getRoom(this.props.roomId);
- const title = _t("Room Settings") + ' - ' + room.name;
-
+ const roomName = MatrixClientPeg.get().getRoom(this.props.roomId).name;
return (
+ onFinished={this.props.onFinished} title={_t("Room Settings - %(roomName)s", {roomName})}>
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 979bbd0553..6bf8ccfaf3 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1116,7 +1116,7 @@
"To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.": "To help avoid duplicate issues, please view existing issues first (and add a +1) or create a new issue if you can't find it.",
"Report bugs & give feedback": "Report bugs & give feedback",
"Go back": "Go back",
- "Room Settings": "Room Settings",
+ "Room Settings - %(roomName)s": "Room Settings - %(roomName)s",
"Failed to upgrade room": "Failed to upgrade room",
"The room upgrade could not be completed": "The room upgrade could not be completed",
"Upgrade this room to version %(version)s": "Upgrade this room to version %(version)s",