diff options
| -rw-r--r-- | lib/db/index.js | 2 | ||||
| -rw-r--r-- | lib/router.js | 1 | ||||
| -rw-r--r-- | public/assets/js/lib/views/mail/mailbox.js | 23 | ||||
| -rw-r--r-- | public/assets/js/util/format.js | 2 | ||||
| -rw-r--r-- | views/pages/mailbox.ejs | 5 |
5 files changed, 19 insertions, 14 deletions
diff --git a/lib/db/index.js b/lib/db/index.js index ab4cdcf..b6fa235 100644 --- a/lib/db/index.js +++ b/lib/db/index.js @@ -138,7 +138,7 @@ db.getMailboxCounts = function(boxes){ db.getMessages = function(username, box, limit, offset){ var mbox = username + "." + box return Message.query(function(qb){ - qb.column('id', 'mbox', 'unread', 'sender', 'recipient', 'date', 'subject').where("mbox", "=", mbox).orderBy("id", "desc") + qb.column('id', 'mbox', 'unread', 'sender', 'recipient', 'date', 'subject', knex.raw("CHAR_LENGTH(body) as size")).where("mbox", "=", mbox).orderBy("id", "desc") if (limit) { qb.limit(limit) } diff --git a/lib/router.js b/lib/router.js index 806c6db..f1d9a48 100644 --- a/lib/router.js +++ b/lib/router.js @@ -122,6 +122,7 @@ module.exports = function(app){ bucky.ensureMessages, function(req, res){ res.json({ + user: { id: req.user.get("id"), username: req.user.get("username") }, messages: res.messages, boxes: res.boxes, }) diff --git a/public/assets/js/lib/views/mail/mailbox.js b/public/assets/js/lib/views/mail/mailbox.js index ac66c4c..199eeee 100644 --- a/public/assets/js/lib/views/mail/mailbox.js +++ b/public/assets/js/lib/views/mail/mailbox.js @@ -1,5 +1,5 @@ var MailboxView = View.extend({ - el: ".mailbox", + el: "#messages", events: { }, @@ -20,27 +20,32 @@ var MailboxView = View.extend({ populate: function(data){ this.boxlist.load(data.boxes) - data.messages.forEach(this.appendMessage.bind(this)) + data.messages.forEach(function(message){ + this.appendMessage(message, data.user) + }.bind(this)) }, - parseMessage: function(message){ + parse: function(message, user){ var datetime = verbose_date(message.date) + var size = hush_size(message.size) var id = message.id + var is_sender = message.sender == user.username var t = this.template - .replace(/{{id}}/g, thread.id) - .replace(/{{username}}/g, thread.username) - .replace(/{{subject}}/g, thread.title) + .replace(/{{id}}/g, message.id) + .replace(/{{to}}/g, is_sender ? "to " : "") + .replace(/{{username}}/g, is_sender ? message.recipient : message.sender) + .replace(/{{subject}}/g, message.subject) .replace(/{{date}}/g, datetime[0]) .replace(/{{time}}/g, datetime[1]) - .replace(/{{date_class}}/g, carbon_date(thread.lastmodified) ) + .replace(/{{date_class}}/g, carbon_date(message.lastmodified) ) .replace(/{{size}}/g, size[1] ) .replace(/{{size_class}}/g, size[0] ) return t }, - appendMessage: function(message){ - var $row = $( this.parseMessage(message) ) + appendMessage: function(message, user){ + var $row = $( this.parse(message, user) ) this.$el.append($row) }, diff --git a/public/assets/js/util/format.js b/public/assets/js/util/format.js index a5891ff..501108a 100644 --- a/public/assets/js/util/format.js +++ b/public/assets/js/util/format.js @@ -88,7 +88,7 @@ function hush_size (n, bias, nobold) { bias = 1 || bias n = n || 0 if (n < 1024) { - return ["quiet", txt + " b."] + return ["quiet", n + " b."] } if (n < 1024*1024) { return ["quiet", txt + " kb."] diff --git a/views/pages/mailbox.ejs b/views/pages/mailbox.ejs index 62cf718..0cc2735 100644 --- a/views/pages/mailbox.ejs +++ b/views/pages/mailbox.ejs @@ -24,12 +24,11 @@ <div id="content"> - <table class="messages"> + <table id="messages"> <script class="template" type="text/html"> <tr> <td> - <a href="/profile/{{username}}">{{username}}</a> - {{privacy_dot}} + {{to}} <a href="/profile/{{username}}">{{username}}</a> </td> <td> <a href="/mail/read/{{id}}">{{subject}}</a> |
