diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 0a60b00af2..876be1867a 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -93,6 +93,11 @@ frappe.ui.form.Form = class FrappeForm { page: this.page, }); + this.viewers = new frappe.ui.form.FormViewers({ + frm: this, + parent: $('
').prependTo(this.page.page_actions), + }); + // navigate records keyboard shortcuts this.add_form_keyboard_shortcuts(); @@ -709,6 +714,7 @@ frappe.ui.form.Form = class FrappeForm { } this.toolbar.refresh(); } + this.viewers.refresh(); this.dashboard.refresh(); frappe.breadcrumbs.update(); diff --git a/frappe/public/js/frappe/form/form_viewers.js b/frappe/public/js/frappe/form/form_viewers.js index a037392ae3..b14939cb93 100644 --- a/frappe/public/js/frappe/form/form_viewers.js +++ b/frappe/public/js/frappe/form/form_viewers.js @@ -24,6 +24,7 @@ frappe.ui.form.FormViewers = class FormViewers { setup_events() { if (!this.initialized) { let me = this; + frappe.realtime.off("doc_viewers"); frappe.realtime.on("doc_viewers", function (data) { me.update_users(data); }); @@ -52,13 +53,13 @@ frappe.ui.form.FormViewers = class FormViewers { frappe.model.set_docinfo(doctype, docname, docinfo_key, info); if ( - cur_frm && - cur_frm.doc && - cur_frm.doc.doctype === doctype && - cur_frm.doc.name == docname && - cur_frm.viewers + this.frm && + this.frm.doc && + this.frm.doc.doctype === doctype && + this.frm.doc.name == docname && + this.frm.viewers ) { - cur_frm.viewers.refresh(true); + this.frm.viewers.refresh(true); } } diff --git a/frappe/public/js/frappe/form/toolbar.js b/frappe/public/js/frappe/form/toolbar.js index 6d9a3365c4..fa1d7330cf 100644 --- a/frappe/public/js/frappe/form/toolbar.js +++ b/frappe/public/js/frappe/form/toolbar.js @@ -13,7 +13,6 @@ frappe.ui.form.Toolbar = class Toolbar { } refresh() { this.make_menu(); - this.make_viewers(); this.set_title(); this.page.clear_user_actions(); this.show_title_as_dirty(); @@ -272,18 +271,6 @@ frappe.ui.form.Toolbar = class Toolbar { } } - make_viewers() { - if (this.frm.viewers) { - return; - } - this.frm.viewers = new frappe.ui.form.FormViewers({ - frm: this.frm, - parent: $('').prependTo( - this.frm.page.page_actions - ), - }); - } - make_navigation() { // Navigate if (!this.frm.is_new() && !this.frm.meta.issingle) {