From 701cd25b839478b40dd1eaae3606cbff0657a5aa Mon Sep 17 00:00:00 2001 From: zefie Date: Sun, 20 Feb 2022 11:18:42 -0500 Subject: [PATCH] implement function for account-wide unread mail count --- zefie_wtvp_minisrv/WTVClientSessionData.js | 17 +++++++++++++++++ zefie_wtvp_minisrv/WTVShared.js | 1 + 2 files changed, 18 insertions(+) diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index a45c8360..8b84b74c 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -63,6 +63,23 @@ class WTVClientSessionData { this.mailstore = new WTVMail(this.minisrv_config, this) } + getAccountTotalUnreadMessages() { + if (!this.isRegistered()) return false; // unregistered + if (this.user_id > 0) return false; // not primary user or pre-login + + + var total_unread_messages = 0; + for (var i = 0; i < this.minisrv_config.config.user_accounts.max_users_per_account; i++) { + var subUserSession = new this.constructor(this.minisrv_config, this.ssid); + subUserSession.switchUserID(i, false, false); + subUserSession.assignMailStore(); + if (subUserSession.mailstore) { + total_unread_messages += subUserSession.mailstore.countUnreadMessages(0); + } + } + return total_unread_messages; + } + switchUserID(user_id, update_mail = true, update_ticket = true) { this.user_id = user_id; this.loadSessionData(); diff --git a/zefie_wtvp_minisrv/WTVShared.js b/zefie_wtvp_minisrv/WTVShared.js index 3256461c..6cb31abc 100644 --- a/zefie_wtvp_minisrv/WTVShared.js +++ b/zefie_wtvp_minisrv/WTVShared.js @@ -38,6 +38,7 @@ class WTVShared { } } + htmlEntitize(string, process_newline = false) { string = this.html_entities.encode(string).replace(/'/g, "'");