From ee0b2fb09d9705e5aa3f07db895b5041a6219ff0 Mon Sep 17 00:00:00 2001 From: zefie Date: Tue, 11 Jan 2022 01:21:30 -0500 Subject: [PATCH] Update unread message support - also tweaked listmail string - still cannot send messages yet --- .../ServiceVault/wtv-mail/listmail.js | 33 +++++++++++++++---- zefie_wtvp_minisrv/WTVMail.js | 9 +++++ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js index bdbd37a7..29dc3928 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/listmail.js @@ -55,6 +55,19 @@ if (!intro_seen && !request_headers.query.intro_seen) { } var message_list = ssid_sessions[socket.ssid].mailstore.listMessages(mailbox, limit, reverse_sort, (page * limit)) var total_message_count = ssid_sessions[socket.ssid].mailstore.countMessages(mailbox); + var total_unread_message_count = ssid_sessions[socket.ssid].mailstore.countUnreadMessages(mailbox); + + var message_list_string = null; + if (total_message_count == 0) { + message_list_string = "No new mail messages for "; + } else { + if (total_unread_message_count > 0) { + message_list_string = total_unread_message_count + " new mail message" + ((total_message_count != 1) ? 's' : '') + ", " + total_message_count + " mail message" + ((total_message_count != 1) ? 's' : '') + " for "; + } else { + message_list_string = total_message_count + " mail message" + ((total_message_count != 1) ? 's' : '') + " for "; + } + } + var username = ssid_sessions[socket.ssid].getSessionData("subscriber_username"); var notImplementedAlert = new clientShowAlert({ 'image': minisrv_config.config.service_logo, @@ -245,7 +258,7 @@ label="View saved e-mail messages"> if (message_list) { data += ` - ${total_message_count} e-mail message${(total_message_count != 1) ? 's' : ''} for + ${message_list_string}
${username}@${minisrv_config.config.service_name} @@ -267,7 +280,13 @@ ${username}@${minisrv_config.config.service_name} `; Object.keys(message_list).forEach(function (k) { var message = message_list[k]; + var message_font_open = ""; + var message_font_close = ""; console.log(message); + if (message.unread) { + message_font_open = ``; + message_font_close = "" + } data += ` @@ -276,22 +295,22 @@ ${username}@${minisrv_config.config.service_name}
${(message.known_sender) ? '' : ''} - +${message_font_open} ${(message.from_name) ? message.from_name : message.from_addr} - +${message_font_close} - +${message_font_open} ${(message.subject) ? message.subject : "(No Subject)"} - +${message_font_close} - +${message_font_open} `; var message_date = new Date(message.date * 1000); data += (message_date.getMonth() + 1) + "/" + message_date.getDate() + "\n"; data += ` - +${message_font_close}
`; diff --git a/zefie_wtvp_minisrv/WTVMail.js b/zefie_wtvp_minisrv/WTVMail.js index 86027b01..e75ca9b9 100644 --- a/zefie_wtvp_minisrv/WTVMail.js +++ b/zefie_wtvp_minisrv/WTVMail.js @@ -248,6 +248,15 @@ class WTVMail { return (messages.length) ? messages.length : 0; } + countUnreadMessages(mailboxid) { + var messages = this.listMessages(mailboxid, false); + var unread = 0; + Object.keys(messages).forEach(function (k) { + if (k.unread) unread++; + }); + return unread; + } + getMailboxIcon() { var icon_image = null; switch (this.countMessages(0)) {