diff options
Diffstat (limited to 'public/assets/js')
| -rw-r--r-- | public/assets/js/lib/views/mail/compose.js | 26 | ||||
| -rw-r--r-- | public/assets/js/lib/views/mail/mailbox.js | 27 | ||||
| -rw-r--r-- | public/assets/js/lib/views/mail/message.js | 23 |
3 files changed, 66 insertions, 10 deletions
diff --git a/public/assets/js/lib/views/mail/compose.js b/public/assets/js/lib/views/mail/compose.js index b3e302e..1da4ceb 100644 --- a/public/assets/js/lib/views/mail/compose.js +++ b/public/assets/js/lib/views/mail/compose.js @@ -13,6 +13,24 @@ var ComposeView = FormView.extend({ }, load: function(username){ + var id = parseInt(username) + if (! isNaN(id)) { + $.get('/api/message/' + id, function(data){ + var message = data.message + var date = verbose_date(message.date) + var tmpl = $("#reply-template").html() + .replace(/{{username}}/, message.sender) + .replace(/{{date}}/, date[0]) + .replace(/{{time}}/, date[1]) + .replace(/ /g, " ") + console.log(tmpl) + this.$("[name=username]").val(message.sender) + this.$("[name=subject]").val(message.subject) + this.$("[name=body]").val(sanitize(tmpl + message.body)) + $("body").removeClass('loading') + }.bind(this)) + return + } this.$("[name=username]").val(sanitize(username)) $("body").removeClass('loading') }, @@ -20,17 +38,17 @@ var ComposeView = FormView.extend({ validate: function(){ var errors = [] var username = $("[name=username]").val() - var message = $("[name=message]").val() + var body = $("[name=body]").val() if (! username || ! username.length) { errors.push("Please enter who this message is going to.") } - if (! message || ! message.length) { - errors.push("Please enter your message.") + if (! body || ! body.length) { + errors.push("Please enter your body.") } return errors.length ? errors : null }, success: function(){ - window.location.reload() + window.location.href = "/mail/outbox" } })
\ No newline at end of file diff --git a/public/assets/js/lib/views/mail/mailbox.js b/public/assets/js/lib/views/mail/mailbox.js index 2f822aa..860d200 100644 --- a/public/assets/js/lib/views/mail/mailbox.js +++ b/public/assets/js/lib/views/mail/mailbox.js @@ -2,6 +2,7 @@ var MailboxView = View.extend({ el: "#messages", events: { + 'click .discard_link': 'discard', }, action: "/api/mailbox/", @@ -19,17 +20,20 @@ var MailboxView = View.extend({ }, populate: function(data){ - $("body").removeClass('loading') this.boxlist.load(data.boxes) var user = data.user var max = data.messages.length-1 + if (data.messages.length) { + $("#no_messages").hide() + } data.messages.forEach(function(message, i){ - var $row = $( this.parse(message, user) ) + var $row = this.parse(message, user) if (i === 0) $row.addClass("first") if (i === max) $row.addClass("last") this.$el.append($row) }.bind(this)) + $("body").removeClass('loading') }, parse: function(message, user){ @@ -37,7 +41,7 @@ var MailboxView = View.extend({ var size = hush_size(message.size) var id = message.id - var is_sender = message.sender == user.username + var is_sender = message.sender === user.username var t = this.template .replace(/{{id}}/g, message.id) .replace(/{{to}}/g, is_sender ? "to " : "") @@ -48,7 +52,22 @@ var MailboxView = View.extend({ .replace(/{{date_class}}/g, carbon_date(message.lastmodified) ) .replace(/{{size}}/g, size[1] ) .replace(/{{size_class}}/g, size[0] ) - return t + var $t = $(t) + if (is_sender) { + $t.find('reply_link').remove() + } + return $t }, + discard: function(e){ + var id = $(e.target).data('id') + $.ajax({ + method: 'delete', + url: '/api/message/' + id, + success: function(){ window.location.reload() }, + error: function(){ window.location.reload() }, + }) + }, + + }) diff --git a/public/assets/js/lib/views/mail/message.js b/public/assets/js/lib/views/mail/message.js index 19293e5..400c11e 100644 --- a/public/assets/js/lib/views/mail/message.js +++ b/public/assets/js/lib/views/mail/message.js @@ -1,6 +1,10 @@ var MessageView = View.extend({ el: "#message", + + events: { + 'click .discard_link': 'discard', + }, action: '/api/message/', @@ -30,7 +34,8 @@ var MessageView = View.extend({ $("h1").html(message.subject) var datetime = verbose_date(message.date) var id = message.id -// var is_sender = message.sender == user.username + var is_sender = message.sender === auth.user.username + console.log(message.body) var t = this.template .replace(/{{id}}/g, message.id) .replace(/{{sender}}/g, message.sender) @@ -38,7 +43,21 @@ var MessageView = View.extend({ .replace(/{{date}}/g, datetime[0]) .replace(/{{time}}/g, datetime[1]) .replace(/{{body}}/g, tidy_urls(message.body) ) - this.$el.html(t) + var $t = $(t) + if (is_sender) { + $t.find('reply_link').remove() + } + this.$el.empty().append($t) + }, + + discard: function(e){ + var id = $(e.target).data('id') + $.ajax({ + method: 'delete', + url: '/api/message/' + id, + success: function(){ window.location.reload() }, + error: function(){ window.location.reload() }, + }) }, }) |
