Skip to content
Snippets Groups Projects
Commit 37e97829 authored by echicken's avatar echicken
Browse files

Email, netmail improvements.

User #1 can delete messages.
Addressee can delete email.
parent c599fa6c
No related branches found
No related tags found
No related merge requests found
...@@ -234,9 +234,9 @@ function showMessage(header) { ...@@ -234,9 +234,9 @@ function showMessage(header) {
if(!mail) if(!mail)
bbs.post_msg(mb.cfg.code, WM_QUOTE, header); bbs.post_msg(mb.cfg.code, WM_QUOTE, header);
else if(mail && header.from_net_type == NET_NONE) else if(mail && header.from_net_type == NET_NONE)
bbs.email(parseInt(header.from_ext), WM_EMAIL|WM_QUOTE, "", "RE: " + header.subject); bbs.email(parseInt(header.from_ext), WM_EMAIL|WM_QUOTE, "", header.subject);
else if(mail) else if(mail)
bbs.netmail(header.from_net_addr, WM_NETMAIL|WM_QUOTE, "RE: " + header.subject); bbs.netmail(header.from_net_addr, WM_NETMAIL|WM_QUOTE, header.subject);
frame.draw(); frame.draw();
retval = header; retval = header;
userInput = "Q"; userInput = "Q";
...@@ -293,6 +293,11 @@ function showMessage(header) { ...@@ -293,6 +293,11 @@ function showMessage(header) {
else else
bodyFrame.scroll(0, bodyFrame.height); bodyFrame.scroll(0, bodyFrame.height);
break; break;
case KEY_DEL:
deleteMessage(header);
userInput = "Q";
retval = "REFRESH";
break;
default: default:
break; break;
} }
...@@ -307,6 +312,43 @@ function showMessage(header) { ...@@ -307,6 +312,43 @@ function showMessage(header) {
return retval; return retval;
} }
function deleteMessage(header) {
if(!mail && user.number == 1) {
msgBase.open();
msgBase.remove_msg(header.number);
msgBase.close();
} else if(mail) {
/* Could verify again that mail is addressed to this user, but
they shouldn't have been able to select it otherwise. */
var mailBase = new MsgBase("mail");
mailBase.open();
mailBase.remove_msg(header.number);
mailBase.close();
} else {
return false;
}
return true;
}
function sendEmail() {
var ret = true;
console.putmsg(hfg + "Send email to: ");
var to = console.getstr('', 64, K_LINE);
if(to == "")
ret = false;
else if(system.matchuser(to) > 0)
bbs.email(system.matchuser(to, WM_EMAIL));
else if(netaddr_type(to) != NET_NONE)
bbs.netmail(to, WM_NETMAIL)
else
ret = false;
if(!ret) {
console.putmsg(hfg + "Invalid user or netmail/email address.");
console.crlf();
console.pause();
}
}
getList(); getList();
var userInput = ""; var userInput = "";
var r = ""; var r = "";
...@@ -333,17 +375,31 @@ while(userInput != "Q") { ...@@ -333,17 +375,31 @@ while(userInput != "Q") {
case "P": case "P":
frame.invalidate(); frame.invalidate();
console.clear(); console.clear();
bbs.post_msg(msgBase.cfg.code); if(!mail)
bbs.post_msg(msgBase.cfg.code);
else
sendEmail();
getList(); getList();
frame.draw(); frame.draw();
break;
case "E": case "E":
mail = true; mail = true;
getList(); getList();
break; break;
case KEY_DEL: case KEY_DEL:
if(!(tree.currentItem instanceof Tree)) {
if(deleteMessage(tree.currentItem.args[0])) {
tree.currentTree.deleteItem();
getList();
}
}
break; break;
default: default:
if(tree.current === undefined)
break;
r = tree.getcmd(userInput); r = tree.getcmd(userInput);
if(r == "REFRESH")
getList();
while(r.hasOwnProperty("number")) { while(r.hasOwnProperty("number")) {
frame.cycle(); frame.cycle();
if(r.hasOwnProperty('mail') && r.mail) if(r.hasOwnProperty('mail') && r.mail)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment