RemoteAppStorage.prototype.messageList = function (fCallback, sFolderFullNameRaw, iOffset, iLimit, sSearch, bSilent) { sFolderFullNameRaw = Utils.pString(sFolderFullNameRaw); var sFolderHash = Cache.getFolderHash(sFolderFullNameRaw) ; bSilent = Utils.isUnd(bSilent) ? false : !!bSilent; iOffset = Utils.isUnd(iOffset) ? 0 : Utils.pInt(iOffset); iLimit = Utils.isUnd(iOffset) ? 20 : Utils.pInt(iLimit); sSearch = Utils.pString(sSearch); if ('' !== sFolderHash && ('' === sSearch || -1 === sSearch.indexOf('is:'))) { this.defaultRequest(fCallback, 'MessageList', {}, '' === sSearch ? Consts.Defaults.DefaultAjaxTimeout : Consts.Defaults.SearchAjaxTimeout, 'MessageList/' + Base64.urlsafe_encode([ sFolderFullNameRaw, iOffset, iLimit, sSearch, Data.projectHash(), sFolderHash, 'INBOX' === sFolderFullNameRaw ? Cache.getFolderUidNext(sFolderFullNameRaw) : '', Data.threading() && Data.useThreads() ? '1' : '0', Data.threading() && sFolderFullNameRaw === Data.messageListThreadFolder() ? Data.messageListThreadUids().join(',') : '' ].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']); } else { this.defaultRequest(fCallback, 'MessageList', { 'Folder': sFolderFullNameRaw, 'Offset': iOffset, 'Limit': iLimit, 'Search': sSearch, 'UidNext': 'INBOX' === sFolderFullNameRaw ? Cache.getFolderUidNext(sFolderFullNameRaw) : '', 'UseThreads': Data.threading() && Data.useThreads() ? '1' : '0', 'ExpandedThreadUid': Data.threading() && sFolderFullNameRaw === Data.messageListThreadFolder() ? Data.messageListThreadUids().join(',') : '' }, '' === sSearch ? Consts.Defaults.DefaultAjaxTimeout : Consts.Defaults.SearchAjaxTimeout, '', bSilent ? [] : ['MessageList']); } };
RemoteAppStorage.prototype.folderInformation = function (fCallback, sFolder, aList) { var bRequest = true, aUids = [] ; if (Utils.isArray(aList) && 0 < aList.length) { bRequest = false; _.each(aList, function (oMessageListItem) { if (!Cache.getMessageFlagsFromCache(oMessageListItem.folderFullNameRaw, oMessageListItem.uid)) { aUids.push(oMessageListItem.uid); } if (0 < oMessageListItem.threads().length) { _.each(oMessageListItem.threads(), function (sUid) { if (!Cache.getMessageFlagsFromCache(oMessageListItem.folderFullNameRaw, sUid)) { aUids.push(sUid); } }); } }); if (0 < aUids.length) { bRequest = true; } } if (bRequest) { this.defaultRequest(fCallback, 'FolderInformation', { 'Folder': sFolder, 'FlagsUids': Utils.isArray(aUids) ? aUids.join(',') : '', 'UidNext': 'INBOX' === sFolder ? Cache.getFolderUidNext(sFolder) : '' }); } else if (Data.useThreads()) { require('App/App').reloadFlagsCurrentMessageListAndMessageFromCache(); } };
RemoteAppStorage.prototype.message = function (fCallback, sFolderFullNameRaw, iUid) { sFolderFullNameRaw = Utils.pString(sFolderFullNameRaw); iUid = Utils.pInt(iUid); if (Cache.getFolderFromCacheList(sFolderFullNameRaw) && 0 < iUid) { this.defaultRequest(fCallback, 'Message', {}, null, 'Message/' + Base64.urlsafe_encode([ sFolderFullNameRaw, iUid, Data.projectHash(), Data.threading() && Data.useThreads() ? '1' : '0' ].join(String.fromCharCode(0))), ['Message']); return true; } return false; };