From 65e0fe19ccef8cc85bfd85dfe96d6ff4cf5c069a Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Wed, 7 Nov 2018 16:35:41 +0530 Subject: [PATCH] fix: Override primary_action from list_settings Show Email Composer as primary action in Communication List --- .../communication/communication_list.js | 13 ++--------- frappe/public/js/frappe/list/list_view.js | 6 ++++- .../public/js/frappe/views/communication.js | 22 +++++++++---------- 3 files changed, 17 insertions(+), 24 deletions(-) diff --git a/frappe/core/doctype/communication/communication_list.js b/frappe/core/doctype/communication/communication_list.js index a7e9f0569c..fae003be4b 100644 --- a/frappe/core/doctype/communication/communication_list.js +++ b/frappe/core/doctype/communication/communication_list.js @@ -19,16 +19,7 @@ frappe.listview_settings['Communication'] = { }); }, - set_primary_action: function(list_view) { - var me = this; - if (list_view.new_doctype) { - list_view.page.set_primary_action( - __("New"), - function() { new frappe.views.CommunicationComposer({ doc: {} }) }, - "octicon octicon-plus" - ); - } else { - list_view.page.clear_primary_action(); - } + primary_action: function() { + new frappe.views.CommunicationComposer({ doc: {} }) } }; diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index a5b214ef0b..a2ed9dd09a 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -168,7 +168,11 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { set_primary_action() { if (this.can_create) { this.page.set_primary_action(__('New'), () => { - this.make_new_doc(); + if (this.settings.primary_action) { + this.settings.primary_action(); + } else { + this.make_new_doc(); + } }, 'octicon octicon-plus'); } else { this.page.clear_primary_action(); diff --git a/frappe/public/js/frappe/views/communication.js b/frappe/public/js/frappe/views/communication.js index fe503ad268..f38691eb55 100755 --- a/frappe/public/js/frappe/views/communication.js +++ b/frappe/public/js/frappe/views/communication.js @@ -509,7 +509,12 @@ frappe.views.CommunicationComposer = Class.extend({ delete_saved_draft() { if (this.dialog) { - localStorage.removeItem(this.frm.doctype + this.frm.docname); + try { + localStorage.removeItem(this.frm.doctype + this.frm.docname); + } catch (e) { + console.log(e); + console.warn('[Communication] Cannot delete localStorage item'); + } } }, @@ -574,16 +579,6 @@ frappe.views.CommunicationComposer = Class.extend({ cur_frm.reload_doc(); } - if (localStorage.getItem(this.frm.doctype + this.frm.docname)) { - try { - localStorage.removeItem(this.frm.doctype + this.frm.docname); - } catch (e) { - // silently fail - console.log(e); - console.warn('[Communication] Failed to delete draft.'); - } - } - // try the success callback if it exists if (me.success) { try { @@ -635,7 +630,10 @@ frappe.views.CommunicationComposer = Class.extend({ this.message = this.txt + (this.message ? ("

" + this.message) : ""); } else { // saved draft in localStorage - this.message = localStorage.getItem(this.frm.doctype + this.frm.docname) || ''; + const { doctype, docname } = this.frm || {}; + if (doctype && docname) { + this.message = localStorage.getItem(doctype + docname) || ''; + } } if(this.real_name) {