mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Easier refresh Folders
This commit is contained in:
parent
11fd6736bb
commit
87bee226b4
4 changed files with 14 additions and 14 deletions
|
|
@ -81,6 +81,9 @@ import { FolderSystemPopupView } from 'View/Popup/FolderSystem';
|
||||||
import { AskPopupView } from 'View/Popup/Ask';
|
import { AskPopupView } from 'View/Popup/Ask';
|
||||||
import { TwoFactorConfigurationPopupView } from 'View/Popup/TwoFactorConfiguration';
|
import { TwoFactorConfigurationPopupView } from 'View/Popup/TwoFactorConfiguration';
|
||||||
|
|
||||||
|
// Every 5 minutes
|
||||||
|
const refreshFolders = 300000;
|
||||||
|
|
||||||
class AppUser extends AbstractApp {
|
class AppUser extends AbstractApp {
|
||||||
constructor() {
|
constructor() {
|
||||||
super(Remote);
|
super(Remote);
|
||||||
|
|
@ -561,7 +564,7 @@ class AppUser extends AbstractApp {
|
||||||
|
|
||||||
const folderFromCache = getFolderFromCacheList(data.Result.Folder);
|
const folderFromCache = getFolderFromCacheList(data.Result.Folder);
|
||||||
if (folderFromCache) {
|
if (folderFromCache) {
|
||||||
folderFromCache.interval = Date.now();
|
folderFromCache.expires = Date.now();
|
||||||
|
|
||||||
if (data.Result.Hash) {
|
if (data.Result.Hash) {
|
||||||
setFolderHash(data.Result.Folder, data.Result.Hash);
|
setFolderHash(data.Result.Folder, data.Result.Hash);
|
||||||
|
|
@ -630,7 +633,7 @@ class AppUser extends AbstractApp {
|
||||||
* @param {boolean=} boot = false
|
* @param {boolean=} boot = false
|
||||||
*/
|
*/
|
||||||
folderInformationMultiply(boot = false) {
|
folderInformationMultiply(boot = false) {
|
||||||
const folders = FolderUserStore.getNextFolderNames();
|
const folders = FolderUserStore.getNextFolderNames(refreshFolders);
|
||||||
if (isNonEmptyArray(folders)) {
|
if (isNonEmptyArray(folders)) {
|
||||||
Remote.folderInformationMultiply((iError, oData) => {
|
Remote.folderInformationMultiply((iError, oData) => {
|
||||||
if (!iError && oData && oData.Result && oData.Result.List && isNonEmptyArray(oData.Result.List)) {
|
if (!iError && oData && oData.Result && oData.Result.List && isNonEmptyArray(oData.Result.List)) {
|
||||||
|
|
@ -641,7 +644,7 @@ class AppUser extends AbstractApp {
|
||||||
let unreadCountChange = false;
|
let unreadCountChange = false;
|
||||||
|
|
||||||
if (folder) {
|
if (folder) {
|
||||||
folder.interval = utc;
|
folder.expires = utc;
|
||||||
|
|
||||||
if (item.Hash) {
|
if (item.Hash) {
|
||||||
setFolderHash(item.Folder, item.Hash);
|
setFolderHash(item.Folder, item.Hash);
|
||||||
|
|
@ -956,7 +959,6 @@ class AppUser extends AbstractApp {
|
||||||
// false ? AboutUserScreen : null
|
// false ? AboutUserScreen : null
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Every 5 minutes
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
const cF = FolderUserStore.currentFolderFullNameRaw(),
|
const cF = FolderUserStore.currentFolderFullNameRaw(),
|
||||||
iF = getFolderInboxName();
|
iF = getFolderInboxName();
|
||||||
|
|
@ -965,7 +967,7 @@ class AppUser extends AbstractApp {
|
||||||
this.folderInformation(cF);
|
this.folderInformation(cF);
|
||||||
}
|
}
|
||||||
this.folderInformationMultiply();
|
this.folderInformationMultiply();
|
||||||
}, 300000);
|
}, refreshFolders);
|
||||||
|
|
||||||
// Every 15 minutes
|
// Every 15 minutes
|
||||||
setInterval(this.quota, 900000);
|
setInterval(this.quota, 900000);
|
||||||
|
|
|
||||||
|
|
@ -187,7 +187,7 @@ export class FolderModel extends AbstractModel {
|
||||||
this.delimiter = '';
|
this.delimiter = '';
|
||||||
this.namespace = '';
|
this.namespace = '';
|
||||||
this.deep = 0;
|
this.deep = 0;
|
||||||
this.interval = 0;
|
this.expires = 0;
|
||||||
|
|
||||||
this.selectable = false;
|
this.selectable = false;
|
||||||
this.exists = true;
|
this.exists = true;
|
||||||
|
|
|
||||||
|
|
@ -157,25 +157,23 @@ export const FolderUserStore = new class {
|
||||||
/**
|
/**
|
||||||
* @returns {Array}
|
* @returns {Array}
|
||||||
*/
|
*/
|
||||||
getNextFolderNames() {
|
getNextFolderNames(ttl) {
|
||||||
const result = [],
|
const result = [],
|
||||||
limit = 10,
|
limit = 10,
|
||||||
utc = Date.now(),
|
utc = Date.now(),
|
||||||
timeout = utc - 60000 * 5,
|
timeout = utc - ttl,
|
||||||
timeouts = [],
|
timeouts = [],
|
||||||
inboxFolderName = getFolderInboxName(),
|
|
||||||
bDisplaySpecSetting = this.displaySpecSetting(),
|
bDisplaySpecSetting = this.displaySpecSetting(),
|
||||||
fSearchFunction = (list) => {
|
fSearchFunction = (list) => {
|
||||||
list.forEach(folder => {
|
list.forEach(folder => {
|
||||||
if (
|
if (
|
||||||
folder &&
|
folder &&
|
||||||
inboxFolderName !== folder.fullNameRaw &&
|
|
||||||
folder.selectable &&
|
folder.selectable &&
|
||||||
folder.exists &&
|
folder.exists &&
|
||||||
timeout > folder.interval &&
|
timeout > folder.expires &&
|
||||||
(folder.isSystemFolder() || (folder.subscribed() && (folder.checkable() || !bDisplaySpecSetting)))
|
(folder.isSystemFolder() || (folder.subscribed() && (folder.checkable() || !bDisplaySpecSetting)))
|
||||||
) {
|
) {
|
||||||
timeouts.push([folder.interval, folder.fullNameRaw]);
|
timeouts.push([folder.expires, folder.fullNameRaw]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (folder && folder.subFolders.length) {
|
if (folder && folder.subFolders.length) {
|
||||||
|
|
@ -191,7 +189,7 @@ export const FolderUserStore = new class {
|
||||||
timeouts.find(aItem => {
|
timeouts.find(aItem => {
|
||||||
const folder = getFolderFromCacheList(aItem[1]);
|
const folder = getFolderFromCacheList(aItem[1]);
|
||||||
if (folder) {
|
if (folder) {
|
||||||
folder.interval = utc;
|
folder.expires = utc;
|
||||||
result.push(aItem[1]);
|
result.push(aItem[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -671,7 +671,7 @@ export const MessageUserStore = new class {
|
||||||
folder = getFolderFromCacheList(collection.Folder);
|
folder = getFolderFromCacheList(collection.Folder);
|
||||||
|
|
||||||
if (folder && !cached) {
|
if (folder && !cached) {
|
||||||
folder.interval = Date.now();
|
folder.expires = Date.now();
|
||||||
|
|
||||||
setFolderHash(collection.Folder, collection.FolderHash);
|
setFolderHash(collection.Folder, collection.FolderHash);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue