explicitly rejoin parted rooms

pull/21833/head
Matthew Hodgson 2015-12-28 02:58:40 +00:00
parent 424540e57a
commit 970bc84bb6
1 changed files with 22 additions and 18 deletions

View File

@ -99,29 +99,33 @@ var commands = {
} }
// Try to find a room with this alias // Try to find a room with this alias
// XXX: do we need to do this? Doesn't the JS SDK suppress duplicate attempts to join the same room?
var foundRoom = MatrixTools.getRoomForAlias( var foundRoom = MatrixTools.getRoomForAlias(
MatrixClientPeg.get().getRooms(), MatrixClientPeg.get().getRooms(),
room_alias room_alias
); );
if (foundRoom) { // we've already joined this room, view it.
dis.dispatch({ if (foundRoom) { // we've already joined this room, view it if it's not archived.
action: 'view_room', var me = foundRoom.getMember(MatrixClientPeg.get().credentials.userId);
room_id: foundRoom.roomId if (me && me.membership !== "leave") {
}); dis.dispatch({
return success(); action: 'view_room',
} room_id: foundRoom.roomId
else { });
// attempt to join this alias. return success();
return success( }
MatrixClientPeg.get().joinRoom(room_alias).then(
function(room) {
dis.dispatch({
action: 'view_room',
room_id: room.roomId
});
})
);
} }
// otherwise attempt to join this alias.
return success(
MatrixClientPeg.get().joinRoom(room_alias).then(
function(room) {
dis.dispatch({
action: 'view_room',
room_id: room.roomId
});
})
);
} }
} }
return reject("Usage: /join <room_alias>"); return reject("Usage: /join <room_alias>");