From 40df601a738053950df4063d5575a45f6d3f8d41 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Thu, 17 Nov 2022 16:37:28 +0530 Subject: [PATCH] fix: Auto-add all users to website room Keep website room open for all - currently only used for discussions --- frappe/realtime.py | 4 ++++ frappe/templates/discussions/discussions.js | 1 - .../doctype/discussion_reply/discussion_reply.py | 10 +++++++--- socketio.js | 8 ++------ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frappe/realtime.py b/frappe/realtime.py index 68809c63f3..1d75f9d9e6 100644 --- a/frappe/realtime.py +++ b/frappe/realtime.py @@ -157,3 +157,7 @@ def get_site_room(): def get_task_progress_room(task_id): return f"{frappe.local.site}:task_progress:{task_id}" + + +def get_website_room(): + return f"{frappe.local.site}:website" diff --git a/frappe/templates/discussions/discussions.js b/frappe/templates/discussions/discussions.js index fc4c922a83..ad6d13e834 100644 --- a/frappe/templates/discussions/discussions.js +++ b/frappe/templates/discussions/discussions.js @@ -70,7 +70,6 @@ const show_new_topic_modal = (e) => { const setup_socket_io = () => { frappe.socketio.init(window.socketio_port || "9000"); - frappe.socketio.socket.emit("website"); frappe.socketio.socket.on("publish_message", (data) => { publish_message(data); }); diff --git a/frappe/website/doctype/discussion_reply/discussion_reply.py b/frappe/website/doctype/discussion_reply/discussion_reply.py index 5f4a8473d7..17903ace2d 100644 --- a/frappe/website/doctype/discussion_reply/discussion_reply.py +++ b/frappe/website/doctype/discussion_reply/discussion_reply.py @@ -3,13 +3,14 @@ import frappe from frappe.model.document import Document +from frappe.realtime import get_website_room class DiscussionReply(Document): def on_update(self): frappe.publish_realtime( event="update_message", - room="website", + room=get_website_room(), message={"reply": frappe.utils.md_to_html(self.reply), "reply_name": self.name}, after_commit=True, ) @@ -42,7 +43,7 @@ class DiscussionReply(Document): frappe.publish_realtime( event="publish_message", - room="website", + room=get_website_room(), message={ "template": template, "topic_info": topic_info[0], @@ -55,7 +56,10 @@ class DiscussionReply(Document): def after_delete(self): frappe.publish_realtime( - event="delete_message", room="website", message={"reply_name": self.name}, after_commit=True + event="delete_message", + room=get_website_room(), + message={"reply_name": self.name}, + after_commit=True, ) diff --git a/socketio.js b/socketio.js index 42549571e7..242100baae 100644 --- a/socketio.js +++ b/socketio.js @@ -51,17 +51,13 @@ io.use((socket, next) => { // on socket connection io.on("connection", function (socket) { - const room = get_user_room(socket, socket.user); - socket.join(room); + socket.join(get_user_room(socket, socket.user)); + socket.join(get_website_room(socket)); if (socket.user_type == "System User") { socket.join(get_site_room(socket)); } - socket.on("website", () => { - socket.join(get_website_room(socket)); - }); - socket.on("list_update", function (doctype) { can_subscribe_list({ socket,