From 81cb465357538ac8dc46bae915e24cb57a259d15 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Wed, 24 Oct 2012 23:54:07 +0200 Subject: [PATCH] don't use id when switching messages, go to first message on up/down when nothing selected --- public/javascripts/application.coffee | 18 ++++++++++-------- public/javascripts/application.js | 26 ++++++++++++++++---------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/public/javascripts/application.coffee b/public/javascripts/application.coffee index 6256972..3a07470 100644 --- a/public/javascripts/application.coffee +++ b/public/javascripts/application.coffee @@ -59,23 +59,25 @@ class MailCatcher alert 'Error while quitting.' key 'up', => - id = @selectedMessage() || 1 - id -= 1 if id > 1 - @loadMessage(id) + if @selectedMessage() + @loadMessage $('#messages tr.selected')?.prev()?.data('message-id') + else + @loadMessage $('#messages tbody tr[data-message-id]:first')?.data('message-id') false key 'down', => - id = @selectedMessage() || @messagesCount() - id += 1 if id < @messagesCount() - @loadMessage(id) + if @selectedMessage() + @loadMessage $('#messages tr.selected')?.next()?.data('message-id') + else + @loadMessage $('#messages tbody tr[data-message-id]:first')?.data('message-id') false key '⌘+up, ctrl+up', => - @loadMessage(1) + @loadMessage $('#messages tbody tr[data-message-id]:first')?.data('message-id') false key '⌘+down, ctrl+down', => - @loadMessage @messagesCount() + @loadMessage $('#messages tbody tr[data-message-id]:last')?.data('message-id') false key 'left', => diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 5952de6..0f76454 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -87,25 +87,31 @@ } }); key('up', function() { - var id; - id = _this.selectedMessage() || 1; - if (id > 1) id -= 1; - _this.loadMessage(id); + var _ref, _ref1, _ref2; + if (_this.selectedMessage()) { + _this.loadMessage((_ref = $('#messages tr.selected')) != null ? (_ref1 = _ref.prev()) != null ? _ref1.data('message-id') : void 0 : void 0); + } else { + _this.loadMessage((_ref2 = $('#messages tbody tr[data-message-id]:first')) != null ? _ref2.data('message-id') : void 0); + } return false; }); key('down', function() { - var id; - id = _this.selectedMessage() || _this.messagesCount(); - if (id < _this.messagesCount()) id += 1; - _this.loadMessage(id); + var _ref, _ref1, _ref2; + if (_this.selectedMessage()) { + _this.loadMessage((_ref = $('#messages tr.selected')) != null ? (_ref1 = _ref.next()) != null ? _ref1.data('message-id') : void 0 : void 0); + } else { + _this.loadMessage((_ref2 = $('#messages tbody tr[data-message-id]:first')) != null ? _ref2.data('message-id') : void 0); + } return false; }); key('⌘+up, ctrl+up', function() { - _this.loadMessage(1); + var _ref; + _this.loadMessage((_ref = $('#messages tbody tr[data-message-id]:first')) != null ? _ref.data('message-id') : void 0); return false; }); key('⌘+down, ctrl+down', function() { - _this.loadMessage(_this.messagesCount()); + var _ref; + _this.loadMessage((_ref = $('#messages tbody tr[data-message-id]:last')) != null ? _ref.data('message-id') : void 0); return false; }); key('left', function() {