コード例 #1
0
	MessageListMailBoxUserView.prototype.cancelThreadUid = function ()
	{
		kn.setHash(Links.mailBox(
			FolderStore.currentFolderFullNameHash(),
			MessageStore.messageListPageBeforeThread(),
			MessageStore.messageListSearch()
		));
	};
コード例 #2
0
	MessageListMailBoxUserView.prototype.gotoPage = function (oPage)
	{
		if (oPage)
		{
			kn.setHash(Links.mailBox(
				FolderStore.currentFolderFullNameHash(),
				oPage.value,
				MessageStore.messageListSearch(),
				MessageStore.messageListThreadUid()
			));
		}
	};
コード例 #3
0
ファイル: User.js プロジェクト: ervee/rainloop-webmail
	AppUser.prototype.reloadMessageList = function (bDropPagePosition, bDropCurrenFolderCache)
	{
		var
			iOffset = (MessageStore.messageListPage() - 1) * SettingsStore.messagesPerPage()
		;

		if (Utils.isUnd(bDropCurrenFolderCache) ? false : !!bDropCurrenFolderCache)
		{
			Cache.setFolderHash(FolderStore.currentFolderFullNameRaw(), '');
		}

		if (Utils.isUnd(bDropPagePosition) ? false : !!bDropPagePosition)
		{
			MessageStore.messageListPage(1);
			MessageStore.messageListPageBeforeThread(1);
			iOffset = 0;

			kn.setHash(Links.mailBox(
				FolderStore.currentFolderFullNameHash(),
				MessageStore.messageListPage(),
				MessageStore.messageListSearch(),
				MessageStore.messageListThreadUid()
			), true, true);
		}

		MessageStore.messageListLoading(true);
		Remote.messageList(function (sResult, oData, bCached) {

			if (Enums.StorageResultType.Success === sResult && oData && oData.Result)
			{
				MessageStore.messageListError('');
				MessageStore.messageListLoading(false);

				MessageStore.setMessageList(oData, bCached);
			}
			else if (Enums.StorageResultType.Unload === sResult)
			{
				MessageStore.messageListError('');
				MessageStore.messageListLoading(false);
			}
			else if (Enums.StorageResultType.Abort !== sResult)
			{
				MessageStore.messageList([]);
				MessageStore.messageListLoading(false);
				MessageStore.messageListError(oData && oData.ErrorCode ?
					Translator.getNotification(oData.ErrorCode) : Translator.i18n('NOTIFICATIONS/CANT_GET_MESSAGE_LIST')
				);
			}

		}, FolderStore.currentFolderFullNameRaw(), iOffset, SettingsStore.messagesPerPage(),
			MessageStore.messageListSearch(), MessageStore.messageListThreadUid());
	};
コード例 #4
0
	MessageListMailBoxUserView.prototype.gotoThread = function (oMessage)
	{
		if (oMessage && 0 < oMessage.threadsLen())
		{
			MessageStore.messageListPageBeforeThread(MessageStore.messageListPage());

			kn.setHash(Links.mailBox(
				FolderStore.currentFolderFullNameHash(),
				1,
				MessageStore.messageListSearch(),
				oMessage.uid
			));
		}
	};
コード例 #5
0
ファイル: Message.js プロジェクト: ervee/rainloop-webmail
	MessageUserStore.prototype.removeMessagesFromList = function (
		sFromFolderFullNameRaw, aUidForRemove, sToFolderFullNameRaw, bCopy)
	{
		sToFolderFullNameRaw = Utils.isNormal(sToFolderFullNameRaw) ? sToFolderFullNameRaw : '';
		bCopy = Utils.isUnd(bCopy) ? false : !!bCopy;

		aUidForRemove = _.map(aUidForRemove, function (mValue) {
			return Utils.pInt(mValue);
		});

		var
			self = this,
			iUnseenCount = 0,
			oMessage = null,
			sTrashFolder = FolderStore.trashFolder(),
			sSpamFolder = FolderStore.spamFolder(),
			aMessageList = this.messageList(),
			oFromFolder = Cache.getFolderFromCacheList(sFromFolderFullNameRaw),
			oToFolder = '' === sToFolderFullNameRaw ? null : Cache.getFolderFromCacheList(sToFolderFullNameRaw || ''),
			sCurrentFolderFullNameRaw = FolderStore.currentFolderFullNameRaw(),
			oCurrentMessage = this.message(),
			aMessages = sCurrentFolderFullNameRaw === sFromFolderFullNameRaw ? _.filter(aMessageList, function (oMessage) {
				return oMessage && -1 < Utils.inArray(Utils.pInt(oMessage.uid), aUidForRemove);
			}) : []
		;

		_.each(aMessages, function (oMessage) {
			if (oMessage && oMessage.unseen())
			{
				iUnseenCount++;
			}
		});

		if (oFromFolder && !bCopy)
		{
			oFromFolder.messageCountAll(0 <= oFromFolder.messageCountAll() - aUidForRemove.length ?
				oFromFolder.messageCountAll() - aUidForRemove.length : 0);

			if (0 < iUnseenCount)
			{
				oFromFolder.messageCountUnread(0 <= oFromFolder.messageCountUnread() - iUnseenCount ?
					oFromFolder.messageCountUnread() - iUnseenCount : 0);
			}
		}

		if (oToFolder)
		{
			if (sTrashFolder === oToFolder.fullNameRaw || sSpamFolder === oToFolder.fullNameRaw)
			{
				iUnseenCount = 0;
			}

			oToFolder.messageCountAll(oToFolder.messageCountAll() + aUidForRemove.length);
			if (0 < iUnseenCount)
			{
				oToFolder.messageCountUnread(oToFolder.messageCountUnread() + iUnseenCount);
			}

			oToFolder.actionBlink(true);
		}

		if (0 < aMessages.length)
		{
			if (bCopy)
			{
				_.each(aMessages, function (oMessage) {
					oMessage.checked(false);
				});
			}
			else
			{
				this.messageListIsNotCompleted(true);

				_.each(aMessages, function (oMessage) {
					if (oCurrentMessage && oCurrentMessage.hash === oMessage.hash)
					{
						oCurrentMessage = null;
						self.message(null);
					}

					oMessage.deleted(true);
				});

				_.delay(function () {
					_.each(aMessages, function (oMessage) {
						self.messageList.remove(oMessage);
					});
				}, 400);
			}
		}

		if ('' !== sFromFolderFullNameRaw)
		{
			Cache.setFolderHash(sFromFolderFullNameRaw, '');
		}

		if ('' !== sToFolderFullNameRaw)
		{
			Cache.setFolderHash(sToFolderFullNameRaw, '');
		}

		if ('' !== this.messageListThreadUid())
		{
			aMessageList = this.messageList();

			if (aMessageList && 0 < aMessageList.length && !!_.find(aMessageList, function (oMessage) {
				return !!(oMessage && oMessage.deleted() && oMessage.uid === self.messageListThreadUid());
			}))
			{
				oMessage = _.find(aMessageList, function (oMessage) {
					return oMessage && !oMessage.deleted();
				});

				if (oMessage && this.messageListThreadUid() !== Utils.pString(oMessage.uid))
				{
					this.messageListThreadUid(Utils.pString(oMessage.uid));

					kn.setHash(Links.mailBox(
						FolderStore.currentFolderFullNameHash(),
						this.messageListPage(),
						this.messageListSearch(),
						this.messageListThreadUid()
					), true, true);
				}
				else if (!oMessage)
				{
					if (1 < this.messageListPage())
					{
						this.messageListPage(this.messageListPage() - 1);

						kn.setHash(Links.mailBox(
							FolderStore.currentFolderFullNameHash(),
							this.messageListPage(),
							this.messageListSearch(),
							this.messageListThreadUid()
						), true, true);
					}
					else
					{
						this.messageListThreadUid('');

						kn.setHash(Links.mailBox(
							FolderStore.currentFolderFullNameHash(),
							this.messageListPageBeforeThread(),
							this.messageListSearch()
						), true, true);
					}
				}
			}
		}
	};
コード例 #6
0
ファイル: Message.js プロジェクト: ervee/rainloop-webmail
			'write': function (sValue) {
				kn.setHash(Links.mailBox(
					FolderStore.currentFolderFullNameHash(), 1,
					Utils.trim(sValue.toString()), self.messageListThreadUid()
				));
			},