diff --git a/client/routes/roomRoute.js b/client/routes/roomRoute.js index f3a067f0a6f..f77e4d9b70b 100644 --- a/client/routes/roomRoute.js +++ b/client/routes/roomRoute.js @@ -1,6 +1,6 @@ FlowRouter.goToRoomById = (roomId) => { const subscription = ChatSubscription.findOne({rid: roomId}); if (subscription) { - FlowRouter.go(RocketChat.roomTypes.getRouteLink(subscription.t, subscription), null, FlowRouter.current().queryParams); + RocketChat.roomTypes.openRouteLink(subscription.t, subscription, FlowRouter.current().queryParams); } }; diff --git a/packages/rocketchat-lib/lib/roomTypesCommon.coffee b/packages/rocketchat-lib/lib/roomTypesCommon.coffee index f18efd87c77..a351dc25892 100644 --- a/packages/rocketchat-lib/lib/roomTypesCommon.coffee +++ b/packages/rocketchat-lib/lib/roomTypesCommon.coffee @@ -60,3 +60,16 @@ class @roomTypesCommon return FlowRouter.path @roomTypes[roomType].route.name, routeData + openRouteLink: (roomType, subData, queryParams) -> + unless @roomTypes[roomType]? + return false + + routeData = {} + + if @roomTypes[roomType]?.route?.link? + routeData = @roomTypes[roomType].route.link(subData) + else if subData?.name? + routeData = { name: subData.name } + + return FlowRouter.go @roomTypes[roomType].route.name, routeData, queryParams + diff --git a/packages/rocketchat-livechat/client/views/sideNav/livechat.js b/packages/rocketchat-livechat/client/views/sideNav/livechat.js index 94586f60f6a..1b76616e959 100644 --- a/packages/rocketchat-livechat/client/views/sideNav/livechat.js +++ b/packages/rocketchat-livechat/client/views/sideNav/livechat.js @@ -114,7 +114,7 @@ Template.livechat.events({ if (isConfirm) { Meteor.call('livechat:takeInquiry', this._id, (error, result) => { if (!error) { - FlowRouter.go(RocketChat.roomTypes.getRouteLink(result.t, result)); + RocketChat.roomTypes.openRouteLink(result.t, result); } }); } diff --git a/packages/rocketchat-slashcommands-open/client.js b/packages/rocketchat-slashcommands-open/client.js index 51376c2d95c..10d74e9b2f0 100644 --- a/packages/rocketchat-slashcommands-open/client.js +++ b/packages/rocketchat-slashcommands-open/client.js @@ -22,7 +22,7 @@ function Open(command, params/*, item*/) { subscription = ChatSubscription.findOne(query); if (subscription) { - FlowRouter.go(RocketChat.roomTypes.getRouteLink(subscription.t, subscription), null, FlowRouter.current().queryParams); + RocketChat.roomTypes.openRouteLink(subscription.t, subscription, FlowRouter.current().queryParams); } } diff --git a/packages/rocketchat-ui/views/app/spotlight/spotlight.coffee b/packages/rocketchat-ui/views/app/spotlight/spotlight.coffee index 841b70a81f8..5e43e46d9b8 100644 --- a/packages/rocketchat-ui/views/app/spotlight/spotlight.coffee +++ b/packages/rocketchat-ui/views/app/spotlight/spotlight.coffee @@ -57,7 +57,7 @@ Template.spotlight.helpers getValue: (_id, collection, records, firstPartValue) -> doc = _.findWhere(records, {_id: _id}) - FlowRouter.go(RocketChat.roomTypes.getRouteLink(doc.t, doc), null, FlowRouter.current().queryParams) + RocketChat.roomTypes.openRouteLink(doc.t, doc, FlowRouter.current().queryParams) spotlight.hide()