mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-31 13:09:21 +03:00
New thread controller
This commit is contained in:
parent
9dbf77f942
commit
b6ca9e357e
20 changed files with 922 additions and 595 deletions
|
|
@ -301,7 +301,8 @@
|
|||
{
|
||||
var
|
||||
self = this,
|
||||
aFlags = this.getMessageFlagsFromCache(oMessage.folderFullNameRaw, oMessage.uid),
|
||||
sUid = oMessage.uid,
|
||||
aFlags = this.getMessageFlagsFromCache(oMessage.folderFullNameRaw, sUid),
|
||||
mUnseenSubUid = null,
|
||||
mFlaggedSubUid = null
|
||||
;
|
||||
|
|
@ -318,13 +319,19 @@
|
|||
|
||||
if (0 < oMessage.threads().length)
|
||||
{
|
||||
mUnseenSubUid = _.find(oMessage.threads(), function (iSubUid) {
|
||||
var aFlags = self.getMessageFlagsFromCache(oMessage.folderFullNameRaw, iSubUid);
|
||||
mUnseenSubUid = _.find(oMessage.threads(), function (sSubUid) {
|
||||
if (sUid === sSubUid){
|
||||
return false;
|
||||
}
|
||||
var aFlags = self.getMessageFlagsFromCache(oMessage.folderFullNameRaw, sSubUid);
|
||||
return aFlags && 0 < aFlags.length && !!aFlags[0];
|
||||
});
|
||||
|
||||
mFlaggedSubUid = _.find(oMessage.threads(), function (iSubUid) {
|
||||
var aFlags = self.getMessageFlagsFromCache(oMessage.folderFullNameRaw, iSubUid);
|
||||
mFlaggedSubUid = _.find(oMessage.threads(), function (sSubUid) {
|
||||
if (sUid === sSubUid){
|
||||
return false;
|
||||
}
|
||||
var aFlags = self.getMessageFlagsFromCache(oMessage.folderFullNameRaw, sSubUid);
|
||||
return aFlags && 0 < aFlags.length && !!aFlags[1];
|
||||
});
|
||||
|
||||
|
|
@ -349,6 +356,7 @@
|
|||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} sFolder
|
||||
* @param {string} sUid
|
||||
|
|
@ -362,6 +370,43 @@
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} sFolder
|
||||
* @param {string} sUid
|
||||
* @param {number} iSetAction
|
||||
*/
|
||||
CacheUserStorage.prototype.storeMessageFlagsToCacheBySetAction = function (sFolder, sUid, iSetAction)
|
||||
{
|
||||
var iUnread = 0, aFlags = this.getMessageFlagsFromCache(sFolder, sUid);
|
||||
if (Utils.isArray(aFlags) && 0 < aFlags.length)
|
||||
{
|
||||
if (aFlags[0])
|
||||
{
|
||||
iUnread = 1;
|
||||
}
|
||||
|
||||
switch (iSetAction)
|
||||
{
|
||||
case Enums.MessageSetAction.SetSeen:
|
||||
aFlags[0] = false;
|
||||
break;
|
||||
case Enums.MessageSetAction.UnsetSeen:
|
||||
aFlags[0] = true;
|
||||
break;
|
||||
case Enums.MessageSetAction.SetFlag:
|
||||
aFlags[1] = true;
|
||||
break;
|
||||
case Enums.MessageSetAction.UnsetFlag:
|
||||
aFlags[1] = false;
|
||||
break;
|
||||
}
|
||||
|
||||
this.setMessageFlagsToCache(sFolder, sUid, aFlags);
|
||||
}
|
||||
|
||||
return iUnread;
|
||||
};
|
||||
|
||||
module.exports = new CacheUserStorage();
|
||||
|
||||
}());
|
||||
|
|
@ -17,12 +17,13 @@
|
|||
* @constructor
|
||||
* @param {koProperty} oKoList
|
||||
* @param {koProperty} oKoSelectedItem
|
||||
* @param {koProperty} oKoFocusedItem
|
||||
* @param {string} sItemSelector
|
||||
* @param {string} sItemSelectedSelector
|
||||
* @param {string} sItemCheckedSelector
|
||||
* @param {string} sItemFocusedSelector
|
||||
*/
|
||||
function Selector(oKoList, oKoSelectedItem,
|
||||
function Selector(oKoList, oKoSelectedItem, oKoFocusedItem,
|
||||
sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector)
|
||||
{
|
||||
this.list = oKoList;
|
||||
|
|
@ -37,8 +38,8 @@
|
|||
return 0 < this.listChecked().length;
|
||||
}, this);
|
||||
|
||||
this.focusedItem = ko.observable(null);
|
||||
this.selectedItem = oKoSelectedItem;
|
||||
this.focusedItem = oKoFocusedItem || ko.observable(null);
|
||||
this.selectedItem = oKoSelectedItem || ko.observable(null);
|
||||
this.selectedItemUseCallback = true;
|
||||
|
||||
this.itemSelectedThrottle = _.debounce(_.bind(this.itemSelected, this), 300);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue