mirror of
https://github.com/moparisthebest/mailcatcher
synced 2024-08-13 17:03:45 -04:00
commit
c24e075d6f
@ -62,23 +62,29 @@ class MailCatcher
|
|||||||
id = @selectedMessage() || 1
|
id = @selectedMessage() || 1
|
||||||
id -= 1 if id > 1
|
id -= 1 if id > 1
|
||||||
@loadMessage(id)
|
@loadMessage(id)
|
||||||
|
false
|
||||||
|
|
||||||
key 'down', =>
|
key 'down', =>
|
||||||
id = @selectedMessage() || @messagesCount()
|
id = @selectedMessage() || @messagesCount()
|
||||||
id += 1 if id < @messagesCount()
|
id += 1 if id < @messagesCount()
|
||||||
@loadMessage(id)
|
@loadMessage(id)
|
||||||
|
false
|
||||||
|
|
||||||
key '⌘+up, ctrl+up', =>
|
key '⌘+up, ctrl+up', =>
|
||||||
@loadMessage(1)
|
@loadMessage(1)
|
||||||
|
false
|
||||||
|
|
||||||
key '⌘+down, ctrl+down', =>
|
key '⌘+down, ctrl+down', =>
|
||||||
@loadMessage @messagesCount()
|
@loadMessage @messagesCount()
|
||||||
|
false
|
||||||
|
|
||||||
key 'left', =>
|
key 'left', =>
|
||||||
@openTab @previousTab()
|
@openTab @previousTab()
|
||||||
|
false
|
||||||
|
|
||||||
key 'right', =>
|
key 'right', =>
|
||||||
@openTab @nextTab()
|
@openTab @nextTab()
|
||||||
|
false
|
||||||
|
|
||||||
@refresh()
|
@refresh()
|
||||||
@subscribe()
|
@subscribe()
|
||||||
@ -155,13 +161,24 @@ class MailCatcher
|
|||||||
.append($('<td/>').text(message.subject or "No subject").toggleClass("blank", !message.subject))
|
.append($('<td/>').text(message.subject or "No subject").toggleClass("blank", !message.subject))
|
||||||
.append($('<td/>').text @formatDate message.created_at)
|
.append($('<td/>').text @formatDate message.created_at)
|
||||||
|
|
||||||
|
scrollToRow: (row) ->
|
||||||
|
relativePosition = row.offset().top - $('#messages').offset().top
|
||||||
|
if relativePosition < 0
|
||||||
|
$('#messages').scrollTop($('#messages').scrollTop() + relativePosition - 20)
|
||||||
|
else
|
||||||
|
overflow = relativePosition + row.height() - $('#messages').height()
|
||||||
|
if overflow > 0
|
||||||
|
$('#messages').scrollTop($('#messages').scrollTop() + overflow + 20)
|
||||||
|
|
||||||
loadMessage: (id) ->
|
loadMessage: (id) ->
|
||||||
id = id.id if id?.id?
|
id = id.id if id?.id?
|
||||||
id ||= $('#messages tr.selected').attr 'data-message-id'
|
id ||= $('#messages tr.selected').attr 'data-message-id'
|
||||||
|
|
||||||
if id?
|
if id?
|
||||||
$('#messages tbody tr:not([data-message-id="'+id+'"])').removeClass 'selected'
|
$('#messages tbody tr:not([data-message-id="'+id+'"])').removeClass 'selected'
|
||||||
$('#messages tbody tr[data-message-id="'+id+'"]').addClass 'selected'
|
messageRow = $('#messages tbody tr[data-message-id="'+id+'"]')
|
||||||
|
messageRow.addClass 'selected'
|
||||||
|
@scrollToRow(messageRow)
|
||||||
|
|
||||||
$.getJSON '/messages/' + id + '.json', (message) =>
|
$.getJSON '/messages/' + id + '.json', (message) =>
|
||||||
$('#message .metadata dd.created_at').text @formatDate message.created_at
|
$('#message .metadata dd.created_at').text @formatDate message.created_at
|
||||||
|
@ -90,25 +90,31 @@
|
|||||||
var id;
|
var id;
|
||||||
id = _this.selectedMessage() || 1;
|
id = _this.selectedMessage() || 1;
|
||||||
if (id > 1) id -= 1;
|
if (id > 1) id -= 1;
|
||||||
return _this.loadMessage(id);
|
_this.loadMessage(id);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
key('down', function() {
|
key('down', function() {
|
||||||
var id;
|
var id;
|
||||||
id = _this.selectedMessage() || _this.messagesCount();
|
id = _this.selectedMessage() || _this.messagesCount();
|
||||||
if (id < _this.messagesCount()) id += 1;
|
if (id < _this.messagesCount()) id += 1;
|
||||||
return _this.loadMessage(id);
|
_this.loadMessage(id);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
key('⌘+up, ctrl+up', function() {
|
key('⌘+up, ctrl+up', function() {
|
||||||
return _this.loadMessage(1);
|
_this.loadMessage(1);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
key('⌘+down, ctrl+down', function() {
|
key('⌘+down, ctrl+down', function() {
|
||||||
return _this.loadMessage(_this.messagesCount());
|
_this.loadMessage(_this.messagesCount());
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
key('left', function() {
|
key('left', function() {
|
||||||
return _this.openTab(_this.previousTab());
|
_this.openTab(_this.previousTab());
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
key('right', function() {
|
key('right', function() {
|
||||||
return _this.openTab(_this.nextTab());
|
_this.openTab(_this.nextTab());
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.subscribe();
|
this.subscribe();
|
||||||
@ -212,13 +218,29 @@
|
|||||||
return $('#messages tbody').append($('<tr />').attr('data-message-id', message.id.toString()).append($('<td/>').text(message.sender || "No sender").toggleClass("blank", !message.sender)).append($('<td/>').text((message.recipients || []).join(', ') || "No receipients").toggleClass("blank", !message.recipients.length)).append($('<td/>').text(message.subject || "No subject").toggleClass("blank", !message.subject)).append($('<td/>').text(this.formatDate(message.created_at))));
|
return $('#messages tbody').append($('<tr />').attr('data-message-id', message.id.toString()).append($('<td/>').text(message.sender || "No sender").toggleClass("blank", !message.sender)).append($('<td/>').text((message.recipients || []).join(', ') || "No receipients").toggleClass("blank", !message.recipients.length)).append($('<td/>').text(message.subject || "No subject").toggleClass("blank", !message.subject)).append($('<td/>').text(this.formatDate(message.created_at))));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
MailCatcher.prototype.scrollToRow = function(row) {
|
||||||
|
var overflow, relativePosition;
|
||||||
|
relativePosition = row.offset().top - $('#messages').offset().top;
|
||||||
|
if (relativePosition < 0) {
|
||||||
|
return $('#messages').scrollTop($('#messages').scrollTop() + relativePosition - 20);
|
||||||
|
} else {
|
||||||
|
overflow = relativePosition + row.height() - $('#messages').height();
|
||||||
|
if (overflow > 0) {
|
||||||
|
return $('#messages').scrollTop($('#messages').scrollTop() + overflow + 20);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
MailCatcher.prototype.loadMessage = function(id) {
|
MailCatcher.prototype.loadMessage = function(id) {
|
||||||
var _this = this;
|
var messageRow,
|
||||||
|
_this = this;
|
||||||
if ((id != null ? id.id : void 0) != null) id = id.id;
|
if ((id != null ? id.id : void 0) != null) id = id.id;
|
||||||
id || (id = $('#messages tr.selected').attr('data-message-id'));
|
id || (id = $('#messages tr.selected').attr('data-message-id'));
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
$('#messages tbody tr:not([data-message-id="' + id + '"])').removeClass('selected');
|
$('#messages tbody tr:not([data-message-id="' + id + '"])').removeClass('selected');
|
||||||
$('#messages tbody tr[data-message-id="' + id + '"]').addClass('selected');
|
messageRow = $('#messages tbody tr[data-message-id="' + id + '"]');
|
||||||
|
messageRow.addClass('selected');
|
||||||
|
this.scrollToRow(messageRow);
|
||||||
return $.getJSON('/messages/' + id + '.json', function(message) {
|
return $.getJSON('/messages/' + id + '.json', function(message) {
|
||||||
var $ul;
|
var $ul;
|
||||||
$('#message .metadata dd.created_at').text(_this.formatDate(message.created_at));
|
$('#message .metadata dd.created_at').text(_this.formatDate(message.created_at));
|
||||||
|
Loading…
Reference in New Issue
Block a user