mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-06-27 00:36:44 +03:00
Resolve #486
This commit is contained in:
parent
67488a56f6
commit
cefe679c98
47 changed files with 117 additions and 15 deletions
|
|
@ -1,7 +1,7 @@
|
|||
import 'External/User/ko';
|
||||
|
||||
import { SMAudio } from 'Common/Audio';
|
||||
import { isArray, pString } from 'Common/Utils';
|
||||
import { isArray, pString, pInt } from 'Common/Utils';
|
||||
import { mailToHelper, setLayoutResizer, dropdownsDetectVisibility } from 'Common/UtilsUser';
|
||||
|
||||
import {
|
||||
|
|
@ -61,7 +61,7 @@ import { AskPopupView } from 'View/Popup/Ask';
|
|||
import {
|
||||
folderInformation,
|
||||
folderInformationMultiply,
|
||||
refreshFoldersInterval,
|
||||
setRefreshFoldersInterval,
|
||||
messagesMoveHelper,
|
||||
messagesDeleteHelper
|
||||
} from 'Common/Folders';
|
||||
|
|
@ -229,13 +229,7 @@ export class AppUser extends AbstractApp {
|
|||
SettingsUserScreen
|
||||
]);
|
||||
|
||||
setInterval(() => {
|
||||
const cF = FolderUserStore.currentFolderFullName(),
|
||||
iF = getFolderInboxName();
|
||||
folderInformation(iF);
|
||||
iF === cF || folderInformation(cF);
|
||||
folderInformationMultiply();
|
||||
}, refreshFoldersInterval);
|
||||
setRefreshFoldersInterval(pInt(SettingsGet('CheckMailInterval')));
|
||||
|
||||
ContactUserStore.init();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,24 @@ import { serverRequest } from 'Common/Links';
|
|||
|
||||
import Remote from 'Remote/User/Fetch';
|
||||
|
||||
let refreshInterval,
|
||||
// Default every 5 minutes
|
||||
refreshFoldersInterval = 300000;
|
||||
|
||||
export const
|
||||
|
||||
setRefreshFoldersInterval = minutes => {
|
||||
refreshFoldersInterval = Math.max(5, minutes) * 60000;
|
||||
clearInterval(refreshInterval);
|
||||
refreshInterval = setInterval(() => {
|
||||
const cF = FolderUserStore.currentFolderFullName(),
|
||||
iF = getFolderInboxName();
|
||||
folderInformation(iF);
|
||||
iF === cF || folderInformation(cF);
|
||||
folderInformationMultiply();
|
||||
}, refreshFoldersInterval);
|
||||
},
|
||||
|
||||
sortFolders = folders => {
|
||||
try {
|
||||
let collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
|
||||
|
|
@ -87,9 +103,6 @@ folderListOptionsBuilder = (
|
|||
return aResult;
|
||||
},
|
||||
|
||||
// Every 5 minutes
|
||||
refreshFoldersInterval = 300000,
|
||||
|
||||
/**
|
||||
* @param {string} folder
|
||||
* @param {Array=} list = []
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import ko from 'ko';
|
|||
import { SMAudio } from 'Common/Audio';
|
||||
import { SaveSettingStatus } from 'Common/Enums';
|
||||
import { EditorDefaultType, Layout } from 'Common/EnumsUser';
|
||||
import { setRefreshFoldersInterval } from 'Common/Folders';
|
||||
import { Settings, SettingsGet } from 'Common/Globals';
|
||||
import { isArray } from 'Common/Utils';
|
||||
import { addSubscribablesTo, addComputablesTo } from 'External/ko';
|
||||
|
|
@ -41,7 +42,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
|
|||
|
||||
this.threadsAllowed = AppUserStore.threadsAllowed;
|
||||
|
||||
['layout', 'messageReadDelay', 'messagesPerPage',
|
||||
['layout', 'messageReadDelay', 'messagesPerPage', 'checkMailInterval',
|
||||
'editorDefaultType', 'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt',
|
||||
'viewHTML', 'viewImages', 'viewImagesWhitelist', 'removeColors',
|
||||
'hideDeleted', 'listInlineAttachments', 'simpleAttachmentsList',
|
||||
|
|
@ -97,6 +98,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
|
|||
this.addSetting('MsgDefaultAction');
|
||||
this.addSetting('MessageReadDelay');
|
||||
this.addSetting('MessagesPerPage');
|
||||
this.addSetting('CheckMailInterval');
|
||||
this.addSetting('Layout');
|
||||
|
||||
this.addSettings(['ViewHTML', 'ViewImages', 'ViewImagesWhitelist', 'HideDeleted',
|
||||
|
|
@ -136,6 +138,10 @@ export class UserSettingsGeneral extends AbstractViewSettings {
|
|||
useThreads: value => {
|
||||
MessagelistUserStore([]);
|
||||
Remote.saveSetting('UseThreads', value);
|
||||
},
|
||||
|
||||
checkMailInterval: () => {
|
||||
setRefreshFoldersInterval(SettingsUserStore.checkMailInterval());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ export const SettingsUserStore = new class {
|
|||
const self = this;
|
||||
|
||||
self.messagesPerPage = ko.observable(25).extend({ debounce: 999 });
|
||||
|
||||
self.checkMailInterval = ko.observable(5).extend({ debounce: 999 });
|
||||
self.messageReadDelay = ko.observable(5).extend({ debounce: 999 });
|
||||
|
||||
addObservablesTo(self, {
|
||||
|
|
@ -77,6 +77,7 @@ export const SettingsUserStore = new class {
|
|||
|
||||
self.layout(pInt(SettingsGet('Layout')));
|
||||
self.messagesPerPage(pInt(SettingsGet('MessagesPerPage')));
|
||||
self.checkMailInterval(pInt(SettingsGet('CheckMailInterval')));
|
||||
self.messageReadDelay(pInt(SettingsGet('MessageReadDelay')));
|
||||
self.autoLogout(pInt(SettingsGet('AutoLogout')));
|
||||
self.msgDefaultAction(SettingsGet('MsgDefaultAction'));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue