From d57a1b4b98e6832f4cb3df01f3668302360d9271 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 18 Jan 2016 13:03:24 +0530 Subject: [PATCH] [fix] Who is viewing - compatibility issue with socket.io v1.3.7 and v1.4.4. Fixes frappe/erpnext#1519 --- .../js/frappe/form/footer/timeline_item.html | 2 +- socketio.js | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/frappe/public/js/frappe/form/footer/timeline_item.html b/frappe/public/js/frappe/form/footer/timeline_item.html index 0d4b9e6cc4..729a51ed53 100644 --- a/frappe/public/js/frappe/form/footer/timeline_item.html +++ b/frappe/public/js/frappe/form/footer/timeline_item.html @@ -57,7 +57,7 @@ {% } %} " data-doctype="{%= data.doctype %}" data-name="{%= data.name %}"> - {{ data._liked_by.length }} + {{ (data._liked_by || []).length }}
diff --git a/socketio.js b/socketio.js index a92e080269..0e063a956a 100644 --- a/socketio.js +++ b/socketio.js @@ -201,16 +201,16 @@ function can_subscribe_doc(args) { .end(function(err, res) { if (!res) { console.log("No response for doc_subscribe"); - + } else if (res.status == 403) { return; - + } else if (err) { console.log(err); - + } else if (res.status == 200) { args.callback(err, res); - + } else { console.log("Something went wrong", err, res); } @@ -226,8 +226,13 @@ function send_viewers(args) { // open doc room var room = get_open_doc_room(args.socket, args.doctype, args.docname); + var socketio_room = io.sockets.adapter.rooms[room] || {}; + + // for compatibility with both v1.3.7 and 1.4.4 + var clients_dict = ("sockets" in socketio_room) ? socketio_room.sockets : socketio_room; + // socket ids connected to this room - var clients = Object.keys(io.sockets.adapter.rooms[room] || {}); + var clients = Object.keys(clients_dict || {}); var viewers = []; for (var i in io.sockets.sockets) {