mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-01 05:29:20 +03:00
A new way to move in message list (message focused state).
Delete/Move optimizations. Display next message after deletion (Closes #120) Scrolling in message view (Closes #109)
This commit is contained in:
parent
a96e1d80c3
commit
0b30bac43f
17 changed files with 784 additions and 431 deletions
|
|
@ -297,6 +297,7 @@ function WebMailDataStorage()
|
|||
}, this);
|
||||
|
||||
this.currentMessage = ko.observable(null);
|
||||
this.currentFocusedMessage = ko.observable(null);
|
||||
|
||||
this.message.subscribe(function (oMessage) {
|
||||
if (null === oMessage)
|
||||
|
|
@ -778,11 +779,15 @@ WebMailDataStorage.prototype.removeMessagesFromList = function (
|
|||
iUnseenCount = 0,
|
||||
oData = RL.data(),
|
||||
oCache = RL.cache(),
|
||||
bMoveSelected = false,
|
||||
bGetNext = false,
|
||||
oNextMessage = null,
|
||||
aMessageList = oData.messageList(),
|
||||
oFromFolder = RL.cache().getFolderFromCacheList(sFromFolderFullNameRaw),
|
||||
oToFolder = '' === sToFolderFullNameRaw ? null : oCache.getFolderFromCacheList(sToFolderFullNameRaw || ''),
|
||||
sCurrentFolderFullNameRaw = oData.currentFolderFullNameRaw(),
|
||||
oCurrentMessage = oData.message(),
|
||||
aMessages = sCurrentFolderFullNameRaw === sFromFolderFullNameRaw ? _.filter(oData.messageList(), function (oMessage) {
|
||||
aMessages = sCurrentFolderFullNameRaw === sFromFolderFullNameRaw ? _.filter(aMessageList, function (oMessage) {
|
||||
return oMessage && -1 < Utils.inArray(Utils.pInt(oMessage.uid), aUidForRemove);
|
||||
}) : []
|
||||
;
|
||||
|
|
@ -792,6 +797,11 @@ WebMailDataStorage.prototype.removeMessagesFromList = function (
|
|||
{
|
||||
iUnseenCount++;
|
||||
}
|
||||
|
||||
if (oMessage.selected())
|
||||
{
|
||||
bMoveSelected = true;
|
||||
}
|
||||
});
|
||||
|
||||
if (oFromFolder && !bCopy)
|
||||
|
|
@ -827,10 +837,33 @@ WebMailDataStorage.prototype.removeMessagesFromList = function (
|
|||
}
|
||||
else
|
||||
{
|
||||
// select next message
|
||||
if (bMoveSelected)
|
||||
{
|
||||
_.each(aMessageList, function (oMessage) {
|
||||
if (!oNextMessage && oMessage)
|
||||
{
|
||||
if (bGetNext && !oMessage.checked() && !oMessage.deleted() && !oMessage.selected())
|
||||
{
|
||||
oNextMessage = oMessage;
|
||||
}
|
||||
else if (!bGetNext && oMessage.selected())
|
||||
{
|
||||
bGetNext = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (oNextMessage)
|
||||
{
|
||||
this.currentMessage(oNextMessage);
|
||||
}
|
||||
}
|
||||
|
||||
oData.messageListIsNotCompleted(true);
|
||||
|
||||
_.each(aMessages, function (oMessage) {
|
||||
if (oCurrentMessage && oCurrentMessage.requestHash === oMessage.requestHash)
|
||||
if (oCurrentMessage && oCurrentMessage.hash === oMessage.hash)
|
||||
{
|
||||
oCurrentMessage = null;
|
||||
oData.message(null);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue