delete individual messages
This commit is contained in:
parent
a161dedf0a
commit
09312ffb6e
|
@ -150,4 +150,11 @@ module MailCatcher::Mail extend self
|
|||
@delete_messages_query.execute and
|
||||
@delete_message_parts_query.execute
|
||||
end
|
||||
|
||||
def delete_message!(message_id)
|
||||
@delete_messages_query ||= db.prepare 'DELETE FROM message WHERE id = ?'
|
||||
@delete_message_parts_query ||= db.prepare 'DELETE FROM message_part WHERE message_id = ?'
|
||||
@delete_messages_query.execute(message_id) and
|
||||
@delete_message_parts_query.execute(message_id)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -132,6 +132,16 @@ class MailCatcher::Web < Sinatra::Base
|
|||
end
|
||||
end
|
||||
|
||||
delete '/messages/:id' do
|
||||
id = params[:id].to_i
|
||||
if message = MailCatcher::Mail.message(id)
|
||||
MailCatcher::Mail.delete_message!(id)
|
||||
status 204
|
||||
else
|
||||
not_found
|
||||
end
|
||||
end
|
||||
|
||||
not_found do
|
||||
"<html><body><h1>No Dice</h1><p>The message you were looking for does not exist, or doesn't have content of this type.</p></body></html>"
|
||||
end
|
||||
|
|
|
@ -86,6 +86,21 @@ class MailCatcher
|
|||
@openTab @nextTab()
|
||||
false
|
||||
|
||||
key 'backspace, delete', =>
|
||||
id = @selectedMessage()
|
||||
if id?
|
||||
$.ajax
|
||||
url: '/messages/' + id
|
||||
type: 'DELETE'
|
||||
success: ->
|
||||
$('#messages tbody tr[data-message-id="'+id+'"]').remove()
|
||||
$('#message .metadata dd').empty()
|
||||
$('#message .metadata .attachments').hide()
|
||||
$('#message iframe').attr 'src', 'about:blank'
|
||||
error: ->
|
||||
alert 'Error while removing message.'
|
||||
false
|
||||
|
||||
@refresh()
|
||||
@subscribe()
|
||||
|
||||
|
|
|
@ -116,6 +116,26 @@
|
|||
_this.openTab(_this.nextTab());
|
||||
return false;
|
||||
});
|
||||
key('backspace, delete', function() {
|
||||
var id;
|
||||
id = _this.selectedMessage();
|
||||
if (id != null) {
|
||||
$.ajax({
|
||||
url: '/messages/' + id,
|
||||
type: 'DELETE',
|
||||
success: function() {
|
||||
$('#messages tbody tr[data-message-id="' + id + '"]').remove();
|
||||
$('#message .metadata dd').empty();
|
||||
$('#message .metadata .attachments').hide();
|
||||
return $('#message iframe').attr('src', 'about:blank');
|
||||
},
|
||||
error: function() {
|
||||
return alert('Error while removing message.');
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
this.refresh();
|
||||
this.subscribe();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue