mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 04:29:21 +03:00
This commit is contained in:
parent
1cff18218e
commit
d4c4f84c13
9 changed files with 94 additions and 84 deletions
|
|
@ -153,7 +153,7 @@ folderInformation = (folder, list) => {
|
|||
MessagelistUserStore.reloadFlagsAndCachedMessage();
|
||||
}
|
||||
|
||||
MessagelistUserStore.notifyNewMessages(folderFromCache.fullName, result.NewMessages);
|
||||
MessagelistUserStore.notifyNewMessages(folderFromCache.fullName, result.newMessages);
|
||||
|
||||
if (!oldHash || unreadCountChange || result.Hash !== oldHash) {
|
||||
if (folderFromCache.fullName === FolderUserStore.currentFolderFullName()) {
|
||||
|
|
|
|||
|
|
@ -14,16 +14,15 @@ export class MessageCollectionModel extends AbstractCollectionModel
|
|||
super();
|
||||
this.Filtered
|
||||
this.Folder
|
||||
this.FolderHash
|
||||
this.FolderInfo
|
||||
this.folderHash
|
||||
this.folderInfo
|
||||
this.totalEmails
|
||||
this.unreadEmails
|
||||
this.UidNext
|
||||
this.ThreadUid
|
||||
this.NewMessages
|
||||
this.Offset
|
||||
this.Limit
|
||||
this.Search
|
||||
this.threadUid
|
||||
this.newMessages
|
||||
this.offset
|
||||
this.limit
|
||||
this.search
|
||||
}
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -27,23 +27,23 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
|||
folderHash = folder?.hash || '';
|
||||
|
||||
params = Object.assign({
|
||||
Offset: 0,
|
||||
Limit: SettingsUserStore.messagesPerPage(),
|
||||
Search: '',
|
||||
UidNext: folder?.uidNext || 0, // Used to check for new messages
|
||||
Sort: FolderUserStore.sortMode(),
|
||||
offset: 0,
|
||||
limit: SettingsUserStore.messagesPerPage(),
|
||||
search: '',
|
||||
uidNext: folder?.uidNext || 0, // Used to check for new messages
|
||||
sort: FolderUserStore.sortMode(),
|
||||
Hash: folderHash + SettingsGet('AccountHash')
|
||||
}, params);
|
||||
params.Folder = sFolderFullName;
|
||||
if (AppUserStore.threadsAllowed() && SettingsUserStore.useThreads()) {
|
||||
params.UseThreads = 1;
|
||||
params.useThreads = 1;
|
||||
} else {
|
||||
params.ThreadUid = 0;
|
||||
params.threadUid = 0;
|
||||
}
|
||||
|
||||
let sGetAdd = '';
|
||||
|
||||
if (folderHash && (!params.Search || !params.Search.includes('is:'))) {
|
||||
if (folderHash && (!params.search || !params.search.includes('is:'))) {
|
||||
sGetAdd = 'MessageList/' +
|
||||
SUB_QUERY_PREFIX +
|
||||
'/' +
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ export const MessagelistUserStore = ko.observableArray().extend({ debounce: 0 })
|
|||
addObservablesTo(MessagelistUserStore, {
|
||||
count: 0,
|
||||
listSearch: '',
|
||||
listLimited: 0,
|
||||
threadUid: 0,
|
||||
page: 1,
|
||||
pageBeforeThread: 1,
|
||||
|
|
@ -208,12 +209,12 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
|||
|
||||
const
|
||||
folder = getFolderFromCacheList(collection.Folder),
|
||||
folderInfo = collection.FolderInfo;
|
||||
folderInfo = collection.folderInfo;
|
||||
if (folder && !bCached) {
|
||||
// folder.revivePropertiesFromJson(result);
|
||||
folder.expires = Date.now();
|
||||
folder.uidNext = folderInfo.UidNext;
|
||||
folder.hash = collection.FolderHash;
|
||||
folder.hash = collection.folderHash;
|
||||
|
||||
if (null != folderInfo.totalEmails) {
|
||||
folder.totalEmails(folderInfo.totalEmails);
|
||||
|
|
@ -242,21 +243,22 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
|||
});
|
||||
folder.permanentFlags(flags);
|
||||
|
||||
MessagelistUserStore.notifyNewMessages(folder.fullName, collection.NewMessages);
|
||||
MessagelistUserStore.notifyNewMessages(folder.fullName, collection.newMessages);
|
||||
}
|
||||
|
||||
MessagelistUserStore.count(collection.totalEmails);
|
||||
MessagelistUserStore.listSearch(pString(collection.Search));
|
||||
MessagelistUserStore.page(Math.ceil(collection.Offset / SettingsUserStore.messagesPerPage() + 1));
|
||||
MessagelistUserStore.threadUid(collection.ThreadUid);
|
||||
MessagelistUserStore.listSearch(pString(collection.search));
|
||||
MessagelistUserStore.listLimited(!!collection.limited);
|
||||
MessagelistUserStore.page(Math.ceil(collection.offset / SettingsUserStore.messagesPerPage() + 1));
|
||||
MessagelistUserStore.threadUid(collection.threadUid);
|
||||
|
||||
MessagelistUserStore.endHash(
|
||||
collection.Folder +
|
||||
'|' + collection.Search +
|
||||
'|' + collection.search +
|
||||
'|' + MessagelistUserStore.threadUid() +
|
||||
'|' + MessagelistUserStore.page()
|
||||
);
|
||||
MessagelistUserStore.endThreadUid(collection.ThreadUid);
|
||||
MessagelistUserStore.endThreadUid(collection.threadUid);
|
||||
const message = MessageUserStore.message();
|
||||
if (message && collection.Folder !== message.folder) {
|
||||
MessageUserStore.message(null);
|
||||
|
|
@ -264,7 +266,7 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
|||
|
||||
disableAutoSelect(true);
|
||||
|
||||
if (collection.ThreadUid) {
|
||||
if (collection.threadUid) {
|
||||
let refs = {};
|
||||
collection.forEach(msg => {
|
||||
msg.level = 0;
|
||||
|
|
@ -292,10 +294,10 @@ MessagelistUserStore.reload = (bDropPagePosition = false, bDropCurrentFolderCach
|
|||
},
|
||||
{
|
||||
Folder: FolderUserStore.currentFolderFullName(),
|
||||
Offset: iOffset,
|
||||
Limit: SettingsUserStore.messagesPerPage(),
|
||||
Search: MessagelistUserStore.listSearch(),
|
||||
ThreadUid: MessagelistUserStore.threadUid()
|
||||
offset: iOffset,
|
||||
limit: SettingsUserStore.messagesPerPage(),
|
||||
search: MessagelistUserStore.listSearch(),
|
||||
threadUid: MessagelistUserStore.threadUid()
|
||||
}
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -115,10 +115,10 @@ export class MailMessageList extends AbstractViewRight {
|
|||
|
||||
sortSupported: () =>
|
||||
(FolderUserStore.hasCapability('SORT') | FolderUserStore.hasCapability('ESORT'))
|
||||
&& !MessagelistUserStore.threadUid(),
|
||||
&& !(MessagelistUserStore.listLimited() | MessagelistUserStore.threadUid()),
|
||||
|
||||
messageListSearchDesc: () => {
|
||||
const value = MessagelistUserStore().Search;
|
||||
const value = MessagelistUserStore().search;
|
||||
return value ? i18n('MESSAGE_LIST/SEARCH_RESULT_FOR', { SEARCH: value }) : ''
|
||||
},
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
listGrouped: () => {
|
||||
let uid = MessagelistUserStore.threadUid(),
|
||||
sort = FolderUserStore.sortMode() || 'DATE';
|
||||
return SettingsUserStore.listGrouped() && sort.includes('DATE') && !uid;
|
||||
return SettingsUserStore.listGrouped() && (sort.includes('DATE') || sort.includes('FROM')) && !uid;
|
||||
},
|
||||
|
||||
timeFormat: () => (FolderUserStore.sortMode() || '').includes('FROM') ? 'SHORT' : 'LT',
|
||||
|
|
@ -159,7 +159,7 @@ export class MailMessageList extends AbstractViewRight {
|
|||
let list = [], current, sort = FolderUserStore.sortMode() || 'DATE';
|
||||
if (sort.includes('FROM')) {
|
||||
MessagelistUserStore.forEach(msg => {
|
||||
let email = msg.from[0].email;
|
||||
let email = msg.from?.[0].email;
|
||||
if (!current || email != current.id) {
|
||||
current = {
|
||||
id: email,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue