Add ask popup (messages permanent deletion)

This commit is contained in:
RainLoop Team 2013-12-17 03:31:33 +04:00
parent 1e687f9a76
commit a112b0400e
18 changed files with 94 additions and 32 deletions

View file

@ -111,6 +111,10 @@ function MailBoxMessageListViewModel()
return RL.data().spamFolder() === this.messageListEndFolder();
}, this);
this.isSpamDisabled = ko.computed(function () {
return Consts.Values.UnuseOptionValue === RL.data().spamFolder();
}, this);
this.isTrashFolder = ko.computed(function () {
return RL.data().trashFolder() === this.messageListEndFolder();
}, this);
@ -187,6 +191,8 @@ function MailBoxMessageListViewModel()
}, this)
;
this.moveOrDeleteResponse = _.bind(this.moveOrDeleteResponse, this);
Knoin.constructorEnd(this);
}
@ -352,7 +358,7 @@ MailBoxMessageListViewModel.prototype.moveMessagesToFolder = function (sFromFold
bCopy = Utils.isUnd(bCopy) ? false : !!bCopy;
RL.remote()[bCopy ? 'messagesCopy' : 'messagesMove'](
_.bind(this.moveOrDeleteResponse, this),
this.moveOrDeleteResponse,
oFromFolder.fullNameRaw,
oToFolder.fullNameRaw,
aUidForRemove
@ -392,30 +398,48 @@ MailBoxMessageListViewModel.prototype.deleteSelectedMessageFromCurrentFolder = f
if (this.canBeMoved())
{
bUseFolder = Utils.isUnd(bUseFolder) ? true : !!bUseFolder;
var oTrashOrSpamFolder = RL.cache().getFolderFromCacheList(
Enums.FolderType.Spam === iType ? RL.data().spamFolder() : RL.data().trashFolder());
if (bUseFolder)
{
if ((Enums.FolderType.Spam === iType && Consts.Values.UnuseOptionValue === RL.data().spamFolder()) ||
(Enums.FolderType.Trash === iType && Consts.Values.UnuseOptionValue === RL.data().trashFolder()))
{
bUseFolder = false;
}
}
var
self = this,
aUIds = null,
sCurrentFolderFullNameRaw = RL.data().currentFolderFullNameRaw(),
oTrashOrSpamFolder = RL.cache().getFolderFromCacheList(
Enums.FolderType.Spam === iType ? RL.data().spamFolder() : RL.data().trashFolder())
;
if (!oTrashOrSpamFolder && bUseFolder)
{
kn.showScreenPopup(PopupsFolderSystemViewModel, [
Enums.FolderType.Spam === iType ? Enums.SetSystemFoldersNotification.Spam : Enums.SetSystemFoldersNotification.Trash]);
}
else if (!bUseFolder || (oTrashOrSpamFolder && (Consts.Values.UnuseOptionValue === oTrashOrSpamFolder.fullNameRaw ||
RL.data().currentFolderFullNameRaw() === oTrashOrSpamFolder.fullNameRaw)))
else if (!bUseFolder || (oTrashOrSpamFolder && RL.data().currentFolderFullNameRaw() === oTrashOrSpamFolder.fullNameRaw))
{
RL.remote().messagesDelete(
_.bind(this.moveOrDeleteResponse, this),
RL.data().currentFolderFullNameRaw(),
RL.data().messageListCheckedOrSelectedUidsWithSubMails()
);
aUIds = RL.data().messageListCheckedOrSelectedUidsWithSubMails();
kn.showScreenPopup(PopupsAskViewModel, [Utils.i18n('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () {
this.removeCheckedOrSelectedMessagesFromList();
RL.remote().messagesDelete(
self.moveOrDeleteResponse,
sCurrentFolderFullNameRaw,
aUIds
);
self.removeCheckedOrSelectedMessagesFromList();
}]);
}
else if (oTrashOrSpamFolder)
{
RL.remote().messagesMove(
_.bind(this.moveOrDeleteResponse, this),
RL.data().currentFolderFullNameRaw(),
this.moveOrDeleteResponse,
sCurrentFolderFullNameRaw,
oTrashOrSpamFolder.fullNameRaw,
RL.data().messageListCheckedOrSelectedUidsWithSubMails()
);