From 9ce9d396697ea80b36c4c8697eb43d285046f925 Mon Sep 17 00:00:00 2001 From: prssanna Date: Mon, 6 Jul 2020 11:37:37 +0530 Subject: [PATCH] fix: custom seen function for inbox view --- frappe/public/js/frappe/list/list_view.js | 6 ++++-- frappe/public/js/frappe/views/inbox/inbox_view.js | 11 ++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index 8da73b0dec..5e95521c04 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -795,8 +795,10 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { let heart_class = liked_by.includes(user) ? 'liked-by' : 'text-extra-muted not-liked'; - const seen = JSON.parse(doc._seen || '[]') - .includes(user) ? '' : 'bold'; + const seen = this.get_seen + ? this.get_seen(doc) + : JSON.parse(doc._seen || '[]') + .includes(user) ? '' : 'bold'; let subject_html = ` diff --git a/frappe/public/js/frappe/views/inbox/inbox_view.js b/frappe/public/js/frappe/views/inbox/inbox_view.js index f80b07751e..5bde09b4f9 100644 --- a/frappe/public/js/frappe/views/inbox/inbox_view.js +++ b/frappe/public/js/frappe/views/inbox/inbox_view.js @@ -48,6 +48,7 @@ frappe.views.InboxView = class InboxView extends frappe.views.ListView { this.email_account = frappe.get_route()[3]; this.page_title = this.email_account; this.filters = this.get_inbox_filters(); + this.get_seen = (doc) => this.set_seen(doc); } setup_columns() { @@ -69,6 +70,14 @@ frappe.views.InboxView = class InboxView extends frappe.views.ListView { }); } + set_seen(doc) { + const seen = + Boolean(doc.seen) || JSON.parse(doc._seen || '[]').includes(frappe.session.user) + ? '' + : 'bold'; + return seen; + } + get is_sent_emails() { const f = this.filter_area.get() .find(filter => filter[1] === 'sent_or_received'); @@ -77,7 +86,7 @@ frappe.views.InboxView = class InboxView extends frappe.views.ListView { render_header() { this.$result.find('.list-row-head').remove(); - this.$result.prepend(this.get_header_html()); + this.$result.prepend(this.get_header_html()); } render() {