mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-10 06:58:27 +03:00
Many interface improvements, optimizations
This commit is contained in:
parent
40d2548a53
commit
53dc509d79
42 changed files with 686 additions and 461 deletions
|
|
@ -116,6 +116,22 @@ MailBoxFolderListViewModel.prototype.onBuild = function (oDom)
|
|||
return false;
|
||||
});
|
||||
|
||||
key('space', Enums.KeyState.FolderList, function () {
|
||||
var bCollapsed = true, oFolder = null, $items = $('.b-folders .e-item .e-link:not(.hidden).focused', oDom);
|
||||
if ($items.length && $items[0])
|
||||
{
|
||||
oFolder = ko.dataFor($items[0]);
|
||||
if (oFolder)
|
||||
{
|
||||
bCollapsed = oFolder.collapsed();
|
||||
Utils.setExpandedFolder(oFolder.fullNameHash, bCollapsed);
|
||||
oFolder.collapsed(!bCollapsed);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
key('esc, tab, shift+tab, right', Enums.KeyState.FolderList, function () {
|
||||
self.folderList.focused(false);
|
||||
return false;
|
||||
|
|
@ -159,7 +175,7 @@ MailBoxFolderListViewModel.prototype.messagesDrop = function (oToFolder, oUi)
|
|||
{
|
||||
var
|
||||
sFromFolderFullNameRaw = oUi.helper.data('rl-folder'),
|
||||
bCopy = '1' === oUi.helper.data('rl-copy'),
|
||||
bCopy = $html.hasClass('rl-ctrl-key-pressed'),
|
||||
aUids = oUi.helper.data('rl-uids')
|
||||
;
|
||||
|
||||
|
|
|
|||
|
|
@ -172,6 +172,12 @@ function MailBoxMessageListViewModel()
|
|||
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
|
||||
}, this.canBeMoved);
|
||||
|
||||
this.notSpamCommand = Utils.createCommand(this, function () {
|
||||
RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam,
|
||||
RL.data().currentFolderFullNameRaw(),
|
||||
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), true);
|
||||
}, this.canBeMoved);
|
||||
|
||||
this.moveCommand = Utils.createCommand(this, Utils.emptyFunction, this.canBeMoved);
|
||||
|
||||
this.reloadCommand = Utils.createCommand(this, function () {
|
||||
|
|
@ -263,30 +269,40 @@ MailBoxMessageListViewModel.prototype.cancelSearch = function ()
|
|||
* @param {string} sToFolderFullNameRaw
|
||||
* @return {boolean}
|
||||
*/
|
||||
MailBoxMessageListViewModel.prototype.moveSelectedMessagesToFolder = function (sToFolderFullNameRaw)
|
||||
MailBoxMessageListViewModel.prototype.moveSelectedMessagesToFolder = function (sToFolderFullNameRaw, bCopy)
|
||||
{
|
||||
if (this.canBeMoved())
|
||||
{
|
||||
RL.moveMessagesToFolder(
|
||||
RL.data().currentFolderFullNameRaw(),
|
||||
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw);
|
||||
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), sToFolderFullNameRaw, bCopy);
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageListItem, bCopy)
|
||||
MailBoxMessageListViewModel.prototype.dragAndDronHelper = function (oMessageListItem)
|
||||
{
|
||||
if (oMessageListItem)
|
||||
{
|
||||
oMessageListItem.checked(true);
|
||||
}
|
||||
|
||||
var oEl = Utils.draggeblePlace();
|
||||
var
|
||||
oEl = Utils.draggeblePlace(),
|
||||
aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails()
|
||||
;
|
||||
|
||||
oEl.data('rl-folder', RL.data().currentFolderFullNameRaw());
|
||||
oEl.data('rl-uids', RL.data().messageListCheckedOrSelectedUidsWithSubMails());
|
||||
oEl.data('rl-copy', bCopy ? '1' : '0');
|
||||
oEl.find('.text').text((bCopy ? '+' : '') + '' + RL.data().messageListCheckedOrSelectedUidsWithSubMails().length);
|
||||
oEl.data('rl-uids', aUids);
|
||||
oEl.find('.text').text('' + aUids.length);
|
||||
|
||||
_.defer(function () {
|
||||
var aUids = RL.data().messageListCheckedOrSelectedUidsWithSubMails();
|
||||
|
||||
oEl.data('rl-uids', aUids);
|
||||
oEl.find('.text').text('' + aUids.length);
|
||||
});
|
||||
|
||||
return oEl;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ function MailBoxMessageViewViewModel()
|
|||
this.currentMessage = oData.currentMessage;
|
||||
this.messageListChecked = oData.messageListChecked;
|
||||
this.hasCheckedMessages = oData.hasCheckedMessages;
|
||||
this.messageListCheckedOrSelectedUidsWithSubMails = oData.messageListCheckedOrSelectedUidsWithSubMails;
|
||||
this.messageLoading = oData.messageLoading;
|
||||
this.messageLoadingThrottle = oData.messageLoadingThrottle;
|
||||
this.messagesBodiesDom = oData.messagesBodiesDom;
|
||||
|
|
@ -87,7 +88,7 @@ function MailBoxMessageViewViewModel()
|
|||
{
|
||||
RL.deleteMessagesFromFolder(Enums.FolderType.Trash,
|
||||
RL.data().currentFolderFullNameRaw(),
|
||||
RL.data().messageListCheckedOrSelectedUidsWithSubMails(), false);
|
||||
[this.message().uid], false);
|
||||
}
|
||||
}, this.messageVisibility);
|
||||
|
||||
|
|
@ -109,6 +110,15 @@ function MailBoxMessageViewViewModel()
|
|||
}
|
||||
}, this.messageVisibility);
|
||||
|
||||
this.notSpamCommand = Utils.createCommand(this, function () {
|
||||
if (this.message())
|
||||
{
|
||||
RL.deleteMessagesFromFolder(Enums.FolderType.NotSpam,
|
||||
this.message().folderFullNameRaw,
|
||||
[this.message().uid], true);
|
||||
}
|
||||
}, this.messageVisibility);
|
||||
|
||||
// viewer
|
||||
this.viewSubject = ko.observable('');
|
||||
this.viewFromShort = ko.observable('');
|
||||
|
|
@ -623,6 +633,16 @@ MailBoxMessageViewViewModel.prototype.showImages = function (oMessage)
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @returns {string}
|
||||
*/
|
||||
MailBoxMessageViewViewModel.prototype.printableCheckedMessageCount = function ()
|
||||
{
|
||||
var iCnt = this.messageListCheckedOrSelectedUidsWithSubMails().length;
|
||||
return 0 < iCnt ? (100 > iCnt ? iCnt : '99+') : '';
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {MessageModel} oMessage
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue