This commit is contained in:
the-djmaze 2023-02-01 12:21:31 +01:00
parent 67488a56f6
commit cefe679c98
47 changed files with 117 additions and 15 deletions

View file

@ -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();

View file

@ -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 = []

View file

@ -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());
}
});
}

View file

@ -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'));