mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-07 08:27:03 +03:00
Bugfix: inboxFolderName was incorrect
You could have potentionally deleted INBOX and other issues
This commit is contained in:
parent
3bfe2c67d1
commit
b68d04aacd
4 changed files with 23 additions and 26 deletions
|
|
@ -7,7 +7,7 @@ let FOLDERS_CACHE = {},
|
||||||
FOLDERS_UID_NEXT_CACHE = {},
|
FOLDERS_UID_NEXT_CACHE = {},
|
||||||
MESSAGE_FLAGS_CACHE = {},
|
MESSAGE_FLAGS_CACHE = {},
|
||||||
NEW_MESSAGE_CACHE = {},
|
NEW_MESSAGE_CACHE = {},
|
||||||
inboxFolderName = '';
|
inboxFolderName = 'INBOX';
|
||||||
|
|
||||||
const REQUESTED_MESSAGE_CACHE = {};
|
const REQUESTED_MESSAGE_CACHE = {};
|
||||||
|
|
||||||
|
|
@ -79,7 +79,14 @@ export function clearNewMessageCache() {
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
export function getFolderInboxName() {
|
export function getFolderInboxName() {
|
||||||
return inboxFolderName || 'INBOX';
|
return inboxFolderName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
export function setFolderInboxName(name) {
|
||||||
|
inboxFolderName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -93,12 +100,11 @@ export function getFolderFullNameRaw(folderHash) {
|
||||||
/**
|
/**
|
||||||
* @param {string} folderHash
|
* @param {string} folderHash
|
||||||
* @param {string} folderFullNameRaw
|
* @param {string} folderFullNameRaw
|
||||||
|
* @param {?FolderModel} folder
|
||||||
*/
|
*/
|
||||||
export function setFolderFullNameRaw(folderHash, folderFullNameRaw) {
|
export function setFolder(folderHash, folderFullNameRaw, folder) {
|
||||||
|
FOLDERS_CACHE[folderFullNameRaw] = folder;
|
||||||
FOLDERS_NAME_CACHE[folderHash] = folderFullNameRaw;
|
FOLDERS_NAME_CACHE[folderHash] = folderFullNameRaw;
|
||||||
if (!inboxFolderName || 'INBOX' === folderFullNameRaw) {
|
|
||||||
inboxFolderName = folderFullNameRaw;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -145,19 +151,11 @@ export function getFolderFromCacheList(folderFullNameRaw) {
|
||||||
return folderFullNameRaw && FOLDERS_CACHE[folderFullNameRaw] ? FOLDERS_CACHE[folderFullNameRaw] : null;
|
return folderFullNameRaw && FOLDERS_CACHE[folderFullNameRaw] ? FOLDERS_CACHE[folderFullNameRaw] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} folderFullNameRaw
|
|
||||||
* @param {?FolderModel} folder
|
|
||||||
*/
|
|
||||||
export function setFolderToCacheList(folderFullNameRaw, folder) {
|
|
||||||
FOLDERS_CACHE[folderFullNameRaw] = folder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} folderFullNameRaw
|
* @param {string} folderFullNameRaw
|
||||||
*/
|
*/
|
||||||
export function removeFolderFromCacheList(folderFullNameRaw) {
|
export function removeFolderFromCacheList(folderFullNameRaw) {
|
||||||
setFolderToCacheList(folderFullNameRaw, null);
|
delete FOLDERS_CACHE[folderFullNameRaw];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import ko from 'ko';
|
||||||
import { FolderType } from 'Common/Enums';
|
import { FolderType } from 'Common/Enums';
|
||||||
import { isPosNumeric } from 'Common/UtilsUser';
|
import { isPosNumeric } from 'Common/UtilsUser';
|
||||||
import { i18n, trigger as translatorTrigger } from 'Common/Translator';
|
import { i18n, trigger as translatorTrigger } from 'Common/Translator';
|
||||||
import { getFolderInboxName } from 'Common/Cache';
|
|
||||||
|
|
||||||
import { AbstractModel } from 'Knoin/AbstractModel';
|
import { AbstractModel } from 'Knoin/AbstractModel';
|
||||||
|
|
||||||
|
|
@ -56,8 +55,6 @@ class FolderModel extends AbstractModel {
|
||||||
* @returns {FolderModel}
|
* @returns {FolderModel}
|
||||||
*/
|
*/
|
||||||
initComputed() {
|
initComputed() {
|
||||||
const inboxFolderName = getFolderInboxName();
|
|
||||||
|
|
||||||
this.isInbox = ko.computed(() => FolderType.Inbox === this.type());
|
this.isInbox = ko.computed(() => FolderType.Inbox === this.type());
|
||||||
|
|
||||||
this.hasSubScribedSubfolders = ko.computed(
|
this.hasSubScribedSubfolders = ko.computed(
|
||||||
|
|
@ -136,11 +133,11 @@ class FolderModel extends AbstractModel {
|
||||||
|
|
||||||
this.canBeDeleted = ko.computed(() => {
|
this.canBeDeleted = ko.computed(() => {
|
||||||
const bSystem = this.isSystemFolder();
|
const bSystem = this.isSystemFolder();
|
||||||
return !bSystem && !this.subFolders().length && inboxFolderName !== this.fullNameRaw;
|
return !bSystem && !this.subFolders().length;
|
||||||
});
|
});
|
||||||
|
|
||||||
this.canBeSubScribed = ko.computed(
|
this.canBeSubScribed = ko.computed(
|
||||||
() => !this.isSystemFolder() && this.selectable && inboxFolderName !== this.fullNameRaw
|
() => !this.isSystemFolder() && this.selectable
|
||||||
);
|
);
|
||||||
|
|
||||||
this.canBeChecked = this.canBeSubScribed;
|
this.canBeChecked = this.canBeSubScribed;
|
||||||
|
|
@ -263,7 +260,6 @@ class FolderModel extends AbstractModel {
|
||||||
*/
|
*/
|
||||||
initByJson(json) {
|
initByJson(json) {
|
||||||
let bResult = false;
|
let bResult = false;
|
||||||
const sInboxFolderName = getFolderInboxName();
|
|
||||||
|
|
||||||
if (json && 'Object/Folder' === json['@Object']) {
|
if (json && 'Object/Folder' === json['@Object']) {
|
||||||
this.name(json.Name);
|
this.name(json.Name);
|
||||||
|
|
@ -278,8 +274,6 @@ class FolderModel extends AbstractModel {
|
||||||
this.subScribed(!!json.IsSubscribed);
|
this.subScribed(!!json.IsSubscribed);
|
||||||
this.checkable(!!json.Checkable);
|
this.checkable(!!json.Checkable);
|
||||||
|
|
||||||
this.type(sInboxFolderName === this.fullNameRaw ? FolderType.Inbox : FolderType.User);
|
|
||||||
|
|
||||||
bResult = true;
|
bResult = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { AbstractCollectionModel } from 'Model/AbstractCollection';
|
||||||
|
|
||||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||||
import { pInt } from 'Common/Utils';
|
import { pInt } from 'Common/Utils';
|
||||||
import { ClientSideKeyName, ServerFolderType } from 'Common/Enums';
|
import { ClientSideKeyName, FolderType, ServerFolderType } from 'Common/Enums';
|
||||||
import * as Cache from 'Common/Cache';
|
import * as Cache from 'Common/Cache';
|
||||||
|
|
||||||
import * as Local from 'Storage/Client';
|
import * as Local from 'Storage/Client';
|
||||||
|
|
@ -55,8 +55,11 @@ export class FolderCollectionModel extends AbstractCollectionModel
|
||||||
if (!oCacheFolder) {
|
if (!oCacheFolder) {
|
||||||
oCacheFolder = FolderModel.newInstanceFromJson(oFolder);
|
oCacheFolder = FolderModel.newInstanceFromJson(oFolder);
|
||||||
if (oCacheFolder) {
|
if (oCacheFolder) {
|
||||||
Cache.setFolderToCacheList(oFolder.FullNameRaw, oCacheFolder);
|
if (oFolder.FullNameRaw == result.SystemFolders[ServerFolderType.INBOX]) {
|
||||||
Cache.setFolderFullNameRaw(oCacheFolder.fullNameHash, oFolder.FullNameRaw, oCacheFolder);
|
oCacheFolder.type(FolderType.Inbox);
|
||||||
|
Cache.setFolderInboxName(oFolder.FullNameRaw);
|
||||||
|
}
|
||||||
|
Cache.setFolder(oCacheFolder.fullNameHash, oFolder.FullNameRaw, oCacheFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3108,6 +3108,7 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
||||||
{
|
{
|
||||||
$iFolderListType = $oFolder->GetFolderListType();
|
$iFolderListType = $oFolder->GetFolderListType();
|
||||||
if (!isset($aResult[$iFolderListType]) && \in_array($iFolderListType, array(
|
if (!isset($aResult[$iFolderListType]) && \in_array($iFolderListType, array(
|
||||||
|
\MailSo\Imap\Enumerations\FolderType::INBOX,
|
||||||
\MailSo\Imap\Enumerations\FolderType::SENT,
|
\MailSo\Imap\Enumerations\FolderType::SENT,
|
||||||
\MailSo\Imap\Enumerations\FolderType::DRAFTS,
|
\MailSo\Imap\Enumerations\FolderType::DRAFTS,
|
||||||
\MailSo\Imap\Enumerations\FolderType::JUNK,
|
\MailSo\Imap\Enumerations\FolderType::JUNK,
|
||||||
|
|
@ -3139,6 +3140,7 @@ NewThemeLink IncludeCss TemplatesLink LangLink IncludeBackground PluginsLink Aut
|
||||||
{
|
{
|
||||||
$iFolderType = isset($aMap[$sName]) ? $aMap[$sName] : $aMap[$sFullName];
|
$iFolderType = isset($aMap[$sName]) ? $aMap[$sName] : $aMap[$sFullName];
|
||||||
if (!isset($aResult[$iFolderType]) && \in_array($iFolderType, array(
|
if (!isset($aResult[$iFolderType]) && \in_array($iFolderType, array(
|
||||||
|
\MailSo\Imap\Enumerations\FolderType::INBOX,
|
||||||
\MailSo\Imap\Enumerations\FolderType::SENT,
|
\MailSo\Imap\Enumerations\FolderType::SENT,
|
||||||
\MailSo\Imap\Enumerations\FolderType::DRAFTS,
|
\MailSo\Imap\Enumerations\FolderType::DRAFTS,
|
||||||
\MailSo\Imap\Enumerations\FolderType::JUNK,
|
\MailSo\Imap\Enumerations\FolderType::JUNK,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue