// Convert a UNIX timestamp to the browser's local time
// See also: https://timestamp.online/article/how-to-convert-timestamp-to-datetime-in-javascript
-// In the future we could let the user select from several available formats.
-function convertTimestamp(timestamp) {
+// format should be: 0=full (date+time), 1=brief (date if not today, time if today)
+function string_timestamp(timestamp, format) {
var ts = new Date(timestamp * 1000);
- return(ts.toLocaleString());
+ if (format == 1) {
+ var now_ts = new Date(Date.now());
+ if (ts.toLocaleDateString() == now_ts.toLocaleDateString()) {
+ return(ts.toLocaleTimeString());
+ }
+ else {
+ return(ts.toLocaleDateString());
+ }
+ }
+ else {
+ return(ts.toLocaleString());
+ }
}
-// An old version of convertTimestamp() did it the hard way.
+// An old version of string_timestamp() did it the hard way.
// It used https://gist.github.com/kmaida/6045266 as a reference.
// check git history prior to 2022-jul-03 if you want to see it.
+ msg.from
+ "</a></span>" // end username
+ "<span class=\"ctdl-msgdate\">"
- + convertTimestamp(msg.time)
+ + string_timestamp(msg.time,0)
+ "</span>" // end msgdate
+ "</span>" // end header info on left side
+ "<span class=\"ctdl-msg-header-buttons\">" // begin buttons on right side
+ current_user // user = me !
+ "</span>"
+ "<span class=\"ctdl-msgdate\">"
- + convertTimestamp(Date.now() / 1000) // the current date/time (temporary for display)
+ + string_timestamp((Date.now() / 1000),0) // the current date/time (temporary for display)
+ "</span>"
+ "</span>" // end header info on left side
+ "<span class=\"ctdl-msg-header-buttons\">" // begin buttons on right side
+ msg.from
+ "</a></span>" // end username
+ "<span class=\"ctdl-msgdate\">"
- + convertTimestamp(msg.time)
+ + string_timestamp(msg.time,0)
+ "</span>" // end msgdate
+ "</span>" // end header info on left side
+ "<span class=\"ctdl-msg-header-buttons\">" // begin buttons on right side
- + "<span class=\"ctdl-msg-button\">" // Reply
- + "<a href=\"javascript:open_reply_box('"+div+"',false,'"+msg.wefw+"','"+msg.msgn+"');\">"
+ + "<span class=\"ctdl-msg-button\">" // Reply (mail is always Quoted)
+ + "<a href=\"javascript:mail_compose(true,'"+msg.wefw+"','"+msg.msgn+"');\">"
+ "<i class=\"fa fa-reply\"></i> "
+ _("Reply")
+ "</a></span>"
- + "<span class=\"ctdl-msg-button\">" // ReplyQuoted
- + "<a href=\"javascript:open_reply_box('"+div+"',true,'"+msg.wefw+"','"+msg.msgn+"');\">"
- + "<i class=\"fa fa-comment\"></i> "
- + _("ReplyQuoted")
- + "</a></span>";
-
if (can_delete_messages) {
outmsg +=
"<span class=\"ctdl-msg-button\">"
+ ">"
+ "<td>" + msg["subject"] + "</td>"
+ "<td>" + msg["author"] + " <" + msg["addr"] + "></td>"
- + "<td>" + convertTimestamp(msg["time"]) + "</td>"
+ + "<td>" + string_timestamp(msg["time"],1) + "</td>"
+ "<td class=\"w3-right-align\">" + msg["msgnum"] + "</td>"
+ "</tr>";
return(row);
}
-// Enter a new mail message (called by the dispatcher in views.js)
-function mail_entmsg() {
- alert("no handler for entering new mail yet");
+// Compose a new mail message (called by the Reply button here, or by the dispatcher in views.js)
+function mail_compose(is_quoted, references, msgid) {
+ console.log("mail_compose() called");
+ console.log("is_quoted: " + is_quoted);
+ console.log("references: " + references);
+ console.log("msgid: " + msgid);
}