summaryrefslogtreecommitdiff
path: root/public/assets/js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/js')
-rw-r--r--public/assets/js/lib/views/mail/compose.js26
-rw-r--r--public/assets/js/lib/views/mail/mailbox.js27
-rw-r--r--public/assets/js/lib/views/mail/message.js23
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() },
+ })
},
})