From a389b743a8b467509bea2f73d459dc90b6c0aa29 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 24 Aug 2015 12:13:30 -0300 Subject: [PATCH] Redirec all users if active room was renamed --- client/lib/RoomManager.coffee | 7 +++++++ client/methods/saveRoomName.coffee | 2 +- client/views/app/room.coffee | 10 +++++++++- server/methods/saveRoomName.coffee | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/client/lib/RoomManager.coffee b/client/lib/RoomManager.coffee index 31757950ab1..b84b06334dc 100644 --- a/client/lib/RoomManager.coffee +++ b/client/lib/RoomManager.coffee @@ -92,6 +92,13 @@ Meteor.startup -> msgStream.on openedRooms[typeName].rid, (msg) -> ChatMessage.upsert { _id: msg._id }, msg + # If room was renamed then close current room and send user to the new one + Tracker.nonreactive -> + if msg.t is 'r' + if Session.get('openedRoom') is msg.rid + type = if FlowRouter.current().route.name is 'channel' then 'c' else 'p' + RoomManager.close type + FlowRouter.getParam('name') + FlowRouter.go FlowRouter.current().route.name, name: msg.msg deleteMsgStream.on openedRooms[typeName].rid, (msg) -> ChatMessage.remove _id: msg._id diff --git a/client/methods/saveRoomName.coffee b/client/methods/saveRoomName.coffee index b511f067759..2072d68fa0b 100644 --- a/client/methods/saveRoomName.coffee +++ b/client/methods/saveRoomName.coffee @@ -23,4 +23,4 @@ Meteor.methods $set: name: name - return true + return name diff --git a/client/views/app/room.coffee b/client/views/app/room.coffee index ade4ad6380c..299baabfada 100644 --- a/client/views/app/room.coffee +++ b/client/views/app/room.coffee @@ -705,13 +705,21 @@ Template.room.onRendered -> renameRoom = (rid, name) -> console.log 'room renameRoom' if window.rocketDebug - if Session.get('roomData' + rid).name == name + room = Session.get('roomData' + rid) + if room.name == name Session.set('editRoomTitle', false) return false Meteor.call 'saveRoomName', rid, name, (error, result) -> if result Session.set('editRoomTitle', false) + # If room was renamed then close current room and send user to the new one + RoomManager.close room.t + room.name + switch room.t + when 'c' + FlowRouter.go 'channel', name: name + when 'p' + FlowRouter.go 'group', name: name toastr.success t('Room_name_changed_successfully') if error diff --git a/server/methods/saveRoomName.coffee b/server/methods/saveRoomName.coffee index b73abca581b..0a271148787 100644 --- a/server/methods/saveRoomName.coffee +++ b/server/methods/saveRoomName.coffee @@ -35,4 +35,4 @@ Meteor.methods _id: Meteor.userId() username: Meteor.user().username - return true + return name