Many interface improvements, optimizations

This commit is contained in:
RainLoop Team 2014-05-07 20:04:32 +04:00
parent 40d2548a53
commit 53dc509d79
42 changed files with 686 additions and 461 deletions

View file

@ -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')
;

View file

@ -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;
};

View file

@ -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
*/