maybe add unread support whatever
This commit is contained in:
@@ -21,6 +21,7 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
if (!message) {
|
if (!message) {
|
||||||
mail_end_error("Invalid Message ID");
|
mail_end_error("Invalid Message ID");
|
||||||
} else {
|
} else {
|
||||||
|
ssid_sessions[socket.ssid].mailstore.setMessageReadStatus(messageid);
|
||||||
var notImplementedAlert = new clientShowAlert({
|
var notImplementedAlert = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
'message': "This feature is not available.",
|
'message': "This feature is not available.",
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ if (!intro_seen && !request_headers.query.intro_seen) {
|
|||||||
// user is trying to bypass the intro screen
|
// user is trying to bypass the intro screen
|
||||||
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
headers = "300 OK\nLocation: wtv-mail:/DiplomaMail";
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var doClientError = function (msg) {
|
var doClientError = function (msg) {
|
||||||
var clientErrorMsg = new clientShowAlert({
|
var clientErrorMsg = new clientShowAlert({
|
||||||
'image': minisrv_config.config.service_logo,
|
'image': minisrv_config.config.service_logo,
|
||||||
|
|||||||
@@ -129,7 +129,8 @@ class WTVMail {
|
|||||||
"subject": subject,
|
"subject": subject,
|
||||||
"body": msgbody,
|
"body": msgbody,
|
||||||
"known_sender": known_sender,
|
"known_sender": known_sender,
|
||||||
"signature": signature
|
"signature": signature,
|
||||||
|
"unread": true
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if (this.fs.existsSync(message_file_out)) {
|
if (this.fs.existsSync(message_file_out)) {
|
||||||
@@ -176,6 +177,8 @@ class WTVMail {
|
|||||||
|
|
||||||
if (message_data_raw) {
|
if (message_data_raw) {
|
||||||
var message_data = JSON.parse(message_data_raw);
|
var message_data = JSON.parse(message_data_raw);
|
||||||
|
message_data.mailbox_path = mailbox_path;
|
||||||
|
message_data.message_file = message_file;
|
||||||
if (message_data) {
|
if (message_data) {
|
||||||
message_data.id = messageid;
|
message_data.id = messageid;
|
||||||
return message_data;
|
return message_data;
|
||||||
@@ -186,6 +189,21 @@ class WTVMail {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateMessage(message_data) {
|
||||||
|
// encode message into json
|
||||||
|
var message_out = new Object();
|
||||||
|
Object.assign(message_out, message_data);
|
||||||
|
delete message_out.mailbox_path;
|
||||||
|
delete message_out.message_file;
|
||||||
|
var result = this.fs.writeFileSync(message_data.mailbox_path + this.path.sep + message_data.message_file, JSON.stringify(message_out));
|
||||||
|
if (!result) return false;
|
||||||
|
|
||||||
|
// rely on filesystem times for sorting as it is quicker then reading every file
|
||||||
|
var file_timestamp = new Date(message_data.date * 1000);
|
||||||
|
fs.utimesSync(message_file, Date.now(), file_timestamp);
|
||||||
|
if (!result) console.error(" WARNING: Setting timestamp on " + message_file + " failed, mail dates will be inaccurate.");
|
||||||
|
}
|
||||||
|
|
||||||
checkMessageIdSanity(messageid) {
|
checkMessageIdSanity(messageid) {
|
||||||
return /^[A-Za-z0-9\-]{36}$/.test(messageid);
|
return /^[A-Za-z0-9\-]{36}$/.test(messageid);
|
||||||
}
|
}
|
||||||
@@ -339,6 +357,14 @@ class WTVMail {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setMessageReadStatus(messageid, read = true) {
|
||||||
|
var message = this.getMessageByID(messageid);
|
||||||
|
if (!message) return false;
|
||||||
|
|
||||||
|
message.unread = !read;
|
||||||
|
this.updateMessage(message);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = WTVMail;
|
module.exports = WTVMail;
|
||||||
|
|||||||
Reference in New Issue
Block a user