From 78304705552ab61d9251dce55dcf681b600b9ecc Mon Sep 17 00:00:00 2001 From: kriscfoster Date: Thu, 19 Jul 2018 18:58:17 +0100 Subject: [PATCH] If a room name changes, the subtitle of all open rooms should change too (#951) * passing pubOpts as seperate param * clean up * clean up * style * name change realtime * comment --- db/model/room.js | 8 ++++++++ view/rooms/app.js | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/db/model/room.js b/db/model/room.js index 70b60df2a2..69b1272246 100644 --- a/db/model/room.js +++ b/db/model/room.js @@ -130,6 +130,14 @@ module.exports = function room(seq, dataTypes) { } } + // Note: We should delete the socket.io namespace for the old room name + if (instance.changed('name')) { + if (instance.active) { + return realTime.publishObject(instance.toJSON(), roomEventNames.upd, + null, null, pubOpts); + } + } + if (instance.changed('active')) { if (instance.active) { return realTime.publishObject(instance.toJSON(), roomEventNames.add, diff --git a/view/rooms/app.js b/view/rooms/app.js index 9f8ea11c58..ce6e6195d4 100644 --- a/view/rooms/app.js +++ b/view/rooms/app.js @@ -54,6 +54,7 @@ const BOT_REQ_HEADERS = { let _io; let _user; let _roomName; +let _roomTypeName; let _isActive; let _movingContent; let _botsLayout; @@ -700,6 +701,13 @@ function setupSocketIOClient(bots) { const room = eventData[settingsChangedEventName]; if (room.id === parseInt(ROOM_ID, 10)) { debugMessage('Setting Changed', room); + + if (_roomName !== room.name) { + _roomName = room.name; + const subTitle = `${_roomName} - ${_roomTypeName}`; + uPage.setSubtitle(subTitle); + } + Object.keys(botInfo).forEach((key) => { createIframeEvent(roomChannel, room, botInfo, key); }); @@ -956,7 +964,8 @@ window.onload = () => { return u.getPromiseWithUrl(GET_ROOMTYPES + '/' + response.type); }) .then((res) => { - const subTitle = `${_roomName} - ${res.body.name}`; + _roomTypeName = res.body.name; + const subTitle = `${_roomName} - ${_roomTypeName}`; uPage.setSubtitle(subTitle); document.title = subTitle; let layoutCookie =