mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-17 14:05:04 +08:00
Add a forget button. Add left rooms to the "historical" tab.
Call /forget when the forget button is clicked. Number of shortcomings: - We need to lazy load the historical list (atm we never get the list of left rooms; things only go into that list if you leave the room whilst running) - Once a room is forgotten we need to physically nuke it from the JS SDK. - Need icon for forget room.
This commit is contained in:
parent
186b727303
commit
f7aa8be1c1
@ -824,7 +824,14 @@ module.exports = React.createClass({
|
|||||||
action: 'leave_room',
|
action: 'leave_room',
|
||||||
room_id: this.props.roomId,
|
room_id: this.props.roomId,
|
||||||
});
|
});
|
||||||
this.props.onFinished();
|
},
|
||||||
|
|
||||||
|
onForgetClick: function() {
|
||||||
|
MatrixClientPeg.get().forget(this.props.roomId).done(function() {
|
||||||
|
dis.dispatch({ action: 'view_next_room' });
|
||||||
|
}, function(err) {
|
||||||
|
console.error("Failed to forget room: %s", err);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onRejectButtonClicked: function(ev) {
|
onRejectButtonClicked: function(ev) {
|
||||||
@ -1249,8 +1256,18 @@ module.exports = React.createClass({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={ "mx_RoomView" + (inCall ? " mx_RoomView_inCall" : "") }>
|
<div className={ "mx_RoomView" + (inCall ? " mx_RoomView_inCall" : "") }>
|
||||||
<RoomHeader ref="header" room={this.state.room} searchInfo={searchInfo} editing={this.state.editingRoomSettings} onSearchClick={this.onSearchClick}
|
<RoomHeader ref="header" room={this.state.room} searchInfo={searchInfo}
|
||||||
onSettingsClick={this.onSettingsClick} onSaveClick={this.onSaveClick} onCancelClick={this.onCancelClick} onLeaveClick={this.onLeaveClick} />
|
editing={this.state.editingRoomSettings}
|
||||||
|
onSearchClick={this.onSearchClick}
|
||||||
|
onSettingsClick={this.onSettingsClick}
|
||||||
|
onSaveClick={this.onSaveClick}
|
||||||
|
onCancelClick={this.onCancelClick}
|
||||||
|
onForgetClick={
|
||||||
|
(myMember && myMember.membership === "leave") ? this.onForgetClick : null
|
||||||
|
}
|
||||||
|
onLeaveClick={
|
||||||
|
(myMember && myMember.membership === "join") ? this.onLeaveClick : null
|
||||||
|
} />
|
||||||
{ fileDropTarget }
|
{ fileDropTarget }
|
||||||
<div className="mx_RoomView_auxPanel">
|
<div className="mx_RoomView_auxPanel">
|
||||||
<CallView ref="callView" room={this.state.room} ConferenceHandler={this.props.ConferenceHandler}/>
|
<CallView ref="callView" room={this.state.room} ConferenceHandler={this.props.ConferenceHandler}/>
|
||||||
|
@ -129,7 +129,17 @@ module.exports = React.createClass({
|
|||||||
if (this.props.onLeaveClick) {
|
if (this.props.onLeaveClick) {
|
||||||
leave_button =
|
leave_button =
|
||||||
<div className="mx_RoomHeader_button mx_RoomHeader_leaveButton">
|
<div className="mx_RoomHeader_button mx_RoomHeader_leaveButton">
|
||||||
<img src="img/leave.svg" title="Leave room" alt="Leave room" width="26" height="20" onClick={this.props.onLeaveClick}/>
|
<img src="img/leave.svg" title="Leave room" alt="Leave room"
|
||||||
|
width="26" height="20" onClick={this.props.onLeaveClick}/>
|
||||||
|
</div>;
|
||||||
|
}
|
||||||
|
|
||||||
|
var forget_button;
|
||||||
|
if (this.props.onForgetClick) {
|
||||||
|
forget_button =
|
||||||
|
<div className="mx_RoomHeader_button mx_RoomHeader_leaveButton">
|
||||||
|
<img src="img/leave.svg" title="Forget room" alt="Forget room"
|
||||||
|
width="26" height="20" onClick={this.props.onForgetClick}/>
|
||||||
</div>;
|
</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,6 +157,7 @@ module.exports = React.createClass({
|
|||||||
{cancel_button}
|
{cancel_button}
|
||||||
{save_button}
|
{save_button}
|
||||||
<div className="mx_RoomHeader_rightRow">
|
<div className="mx_RoomHeader_rightRow">
|
||||||
|
{ forget_button }
|
||||||
{ leave_button }
|
{ leave_button }
|
||||||
<div className="mx_RoomHeader_button">
|
<div className="mx_RoomHeader_button">
|
||||||
<img src="img/search.svg" title="Search" alt="Search" width="21" height="19" onClick={this.props.onSearchClick}/>
|
<img src="img/search.svg" title="Search" alt="Search" width="21" height="19" onClick={this.props.onSearchClick}/>
|
||||||
|
@ -168,6 +168,9 @@ module.exports = React.createClass({
|
|||||||
if (me && me.membership == "invite") {
|
if (me && me.membership == "invite") {
|
||||||
s.lists["im.vector.fake.invite"].push(room);
|
s.lists["im.vector.fake.invite"].push(room);
|
||||||
}
|
}
|
||||||
|
else if (me && (me.membership === "leave" || me.membership === "ban")) {
|
||||||
|
s.lists["im.vector.fake.archived"].push(room);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
var shouldShowRoom = (
|
var shouldShowRoom = (
|
||||||
me && (me.membership == "join")
|
me && (me.membership == "join")
|
||||||
|
Loading…
Reference in New Issue
Block a user