mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Cleanup and split Enums
This commit is contained in:
parent
864da66b5f
commit
f3bfa0e8c1
31 changed files with 315 additions and 344 deletions
|
|
@ -2,15 +2,18 @@ import { pInt, pString } from 'Common/Utils';
|
|||
import { isPosNumeric, delegateRunOnDestroy, mailToHelper } from 'Common/UtilsUser';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
Capa,
|
||||
StorageResultType,
|
||||
Notification,
|
||||
Notification
|
||||
} from 'Common/Enums';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
FolderType,
|
||||
SetSystemFoldersNotification,
|
||||
MessageSetAction,
|
||||
ClientSideKeyName
|
||||
} from 'Common/Enums';
|
||||
} from 'Common/EnumsUser';
|
||||
|
||||
import { $htmlCL, leftPanelDisabled } from 'Common/Globals';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { MessageSetAction } from 'Common/Enums';
|
||||
import { MessageSetAction } from 'Common/EnumsUser';
|
||||
import { pInt } from 'Common/Utils';
|
||||
|
||||
let FOLDERS_CACHE = {},
|
||||
|
|
|
|||
|
|
@ -10,16 +10,6 @@ export const StorageResultType = {
|
|||
Unload: 'unload'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const Focused = {
|
||||
None: 'none',
|
||||
MessageList: 'message-list',
|
||||
MessageView: 'message-view',
|
||||
FolderList: 'folder-list'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
|
|
@ -71,66 +61,6 @@ export const KeyState = {
|
|||
PopupAsk: 'popup-ask'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const FolderType = {
|
||||
Inbox: 10,
|
||||
SentItems: 11,
|
||||
Draft: 12,
|
||||
Trash: 13,
|
||||
Spam: 14,
|
||||
Archive: 15,
|
||||
NotSpam: 80,
|
||||
User: 99
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ServerFolderType = {
|
||||
USER: 0,
|
||||
INBOX: 1,
|
||||
SENT: 2,
|
||||
DRAFTS: 3,
|
||||
JUNK: 4,
|
||||
TRASH: 5,
|
||||
IMPORTANT: 10,
|
||||
FLAGGED: 11,
|
||||
ALL: 12
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const LoginSignMeTypeAsString = {
|
||||
DefaultOff: 'defaultoff',
|
||||
DefaultOn: 'defaulton',
|
||||
Unused: 'unused'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const LoginSignMeType = {
|
||||
DefaultOff: 0,
|
||||
DefaultOn: 1,
|
||||
Unused: 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const ComposeType = {
|
||||
Empty: 'empty',
|
||||
Reply: 'reply',
|
||||
ReplyAll: 'replyall',
|
||||
Forward: 'forward',
|
||||
ForwardAsAttachment: 'forward-as-attachment',
|
||||
Draft: 'draft',
|
||||
EditAsNew: 'editasnew'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
|
|
@ -145,96 +75,6 @@ export const UploadErrorCode = {
|
|||
Unknown: 99
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const SetSystemFoldersNotification = {
|
||||
None: 0,
|
||||
Sent: 1,
|
||||
Draft: 2,
|
||||
Spam: 3,
|
||||
Trash: 4,
|
||||
Archive: 5
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ClientSideKeyName = {
|
||||
FoldersLashHash: 0,
|
||||
MessagesInboxLastHash: 1,
|
||||
MailBoxListSize: 2,
|
||||
ExpandedFolders: 3,
|
||||
FolderListSize: 4,
|
||||
MessageListSize: 5,
|
||||
LastReplyAction: 6,
|
||||
LastSignMe: 7,
|
||||
ComposeLastIdentityID: 8,
|
||||
MessageHeaderFullInfo: 9,
|
||||
MessageAttachmentControls: 10
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const MessageSetAction = {
|
||||
SetSeen: 0,
|
||||
UnsetSeen: 1,
|
||||
SetFlag: 2,
|
||||
UnsetFlag: 3
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const MessageSelectAction = {
|
||||
All: 0,
|
||||
None: 1,
|
||||
Invert: 2,
|
||||
Unseen: 3,
|
||||
Seen: 4,
|
||||
Flagged: 5,
|
||||
Unflagged: 6
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const MessagePriority = {
|
||||
Low: 5,
|
||||
Normal: 3,
|
||||
High: 1
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const EditorDefaultType = {
|
||||
Html: 'Html',
|
||||
Plain: 'Plain',
|
||||
HtmlForced: 'HtmlForced',
|
||||
PlainForced: 'PlainForced'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ServerSecure = {
|
||||
None: 0,
|
||||
SSL: 1,
|
||||
TLS: 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const SearchDateType = {
|
||||
All: -1,
|
||||
Days3: 3,
|
||||
Days7: 7,
|
||||
Month: 30
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
|
|
@ -245,105 +85,6 @@ export const SaveSettingsStep = {
|
|||
FalseResult: 0
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const Layout = {
|
||||
NoPreview: 0,
|
||||
SidePreview: 1,
|
||||
BottomPreview: 2
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterConditionField = {
|
||||
From: 'From',
|
||||
Recipient: 'Recipient',
|
||||
Subject: 'Subject',
|
||||
Header: 'Header',
|
||||
Body: 'Body',
|
||||
Size: 'Size'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterConditionType = {
|
||||
Contains: 'Contains',
|
||||
NotContains: 'NotContains',
|
||||
EqualTo: 'EqualTo',
|
||||
NotEqualTo: 'NotEqualTo',
|
||||
Regex: 'Regex',
|
||||
Over: 'Over',
|
||||
Under: 'Under',
|
||||
Text: 'Text',
|
||||
Raw: 'Raw'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FiltersAction = {
|
||||
None: 'None',
|
||||
MoveTo: 'MoveTo',
|
||||
Discard: 'Discard',
|
||||
Vacation: 'Vacation',
|
||||
Reject: 'Reject',
|
||||
Forward: 'Forward'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterRulesType = {
|
||||
All: 'All',
|
||||
Any: 'Any'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const SignedVerifyStatus = {
|
||||
UnknownPublicKeys: -4,
|
||||
UnknownPrivateKey: -3,
|
||||
Unverified: -2,
|
||||
Error: -1,
|
||||
None: 0,
|
||||
Success: 1
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ContactPropertyType = {
|
||||
Unknown: 0,
|
||||
|
||||
FullName: 10,
|
||||
|
||||
FirstName: 15,
|
||||
LastName: 16,
|
||||
MiddleName: 17,
|
||||
Nick: 18,
|
||||
|
||||
NamePrefix: 20,
|
||||
NameSuffix: 21,
|
||||
|
||||
Email: 30,
|
||||
Phone: 31,
|
||||
Web: 32,
|
||||
|
||||
Birthday: 40,
|
||||
|
||||
Facebook: 90,
|
||||
Skype: 91,
|
||||
GitHub: 92,
|
||||
|
||||
Note: 110,
|
||||
|
||||
Custom: 250
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
|
|
|
|||
105
dev/Common/EnumsUser.js
Normal file
105
dev/Common/EnumsUser.js
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
/* eslint quote-props: 0 */
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const Focused = {
|
||||
None: 'none',
|
||||
MessageList: 'message-list',
|
||||
MessageView: 'message-view',
|
||||
FolderList: 'folder-list'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const FolderType = {
|
||||
Inbox: 10,
|
||||
SentItems: 11,
|
||||
Draft: 12,
|
||||
Trash: 13,
|
||||
Spam: 14,
|
||||
Archive: 15,
|
||||
NotSpam: 80,
|
||||
User: 99
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const ComposeType = {
|
||||
Empty: 'empty',
|
||||
Reply: 'reply',
|
||||
ReplyAll: 'replyall',
|
||||
Forward: 'forward',
|
||||
ForwardAsAttachment: 'forward-as-attachment',
|
||||
Draft: 'draft',
|
||||
EditAsNew: 'editasnew'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const SetSystemFoldersNotification = {
|
||||
None: 0,
|
||||
Sent: 1,
|
||||
Draft: 2,
|
||||
Spam: 3,
|
||||
Trash: 4,
|
||||
Archive: 5
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ClientSideKeyName = {
|
||||
FoldersLashHash: 0,
|
||||
MessagesInboxLastHash: 1,
|
||||
MailBoxListSize: 2,
|
||||
ExpandedFolders: 3,
|
||||
FolderListSize: 4,
|
||||
MessageListSize: 5,
|
||||
LastReplyAction: 6,
|
||||
LastSignMe: 7,
|
||||
ComposeLastIdentityID: 8,
|
||||
MessageHeaderFullInfo: 9,
|
||||
MessageAttachmentControls: 10
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const MessageSetAction = {
|
||||
SetSeen: 0,
|
||||
UnsetSeen: 1,
|
||||
SetFlag: 2,
|
||||
UnsetFlag: 3
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const MessagePriority = {
|
||||
Low: 5,
|
||||
Normal: 3,
|
||||
High: 1
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const EditorDefaultType = {
|
||||
Html: 'Html',
|
||||
Plain: 'Plain',
|
||||
HtmlForced: 'HtmlForced',
|
||||
PlainForced: 'PlainForced'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const Layout = {
|
||||
NoPreview: 0,
|
||||
SidePreview: 1,
|
||||
BottomPreview: 2
|
||||
};
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { ComposeType, FolderType } from 'Common/Enums';
|
||||
import { ComposeType, FolderType } from 'Common/EnumsUser';
|
||||
|
||||
const
|
||||
tpl = document.createElement('template'),
|
||||
|
|
|
|||
2
dev/External/ko.js
vendored
2
dev/External/ko.js
vendored
|
|
@ -171,7 +171,7 @@ ko.bindingHandlers.command = {
|
|||
['command-disabled','disable','disabled'].forEach(s=>cl.toggle(s, !result));
|
||||
cl.toggle('no-disabled', !!result);
|
||||
|
||||
if (element.nodeName.match(/INPUT|TEXTAREA|BUTTON/)) {
|
||||
if (element.matches('INPUT,TEXTAREA,BUTTON')) {
|
||||
element.disabled = !result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -180,12 +180,12 @@ function buildViewModel(ViewModelClass, vmScreen) {
|
|||
}
|
||||
}
|
||||
|
||||
return ViewModelClass ? ViewModelClass.__vm : null;
|
||||
return ViewModelClass && ViewModelClass.__vm;
|
||||
}
|
||||
|
||||
function getScreenPopupViewModel(ViewModelClassToShow) {
|
||||
const ModalView = getScreenPopup(ViewModelClassToShow);
|
||||
return (buildViewModel(ModalView) && ModalView.__dom) ? ModalView.__vm : null;
|
||||
return (buildViewModel(ModalView) && ModalView.__dom) && ModalView.__vm;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -221,7 +221,7 @@ export function warmUpScreenPopup(ViewModelClassToShow) {
|
|||
*/
|
||||
export function isPopupVisible(ViewModelClassToShow) {
|
||||
const ModalView = getScreenPopup(ViewModelClassToShow);
|
||||
return ModalView && ModalView.__vm ? ModalView.__vm.modalVisibility() : false;
|
||||
return ModalView && ModalView.__vm && ModalView.__vm.modalVisibility();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -329,7 +329,7 @@ export function startScreens(screensClasses) {
|
|||
screensClasses.forEach(CScreen => {
|
||||
if (CScreen) {
|
||||
const vmScreen = new CScreen(),
|
||||
screenName = vmScreen ? vmScreen.screenName() : '';
|
||||
screenName = vmScreen && vmScreen.screenName();
|
||||
|
||||
if (vmScreen && screenName) {
|
||||
if (!defaultScreenName) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import { ContactPropertyModel } from 'Model/ContactProperty';
|
||||
import { ContactPropertyType } from 'Common/Enums';
|
||||
import { ContactPropertyModel, ContactPropertyType } from 'Model/ContactProperty';
|
||||
|
||||
import { AbstractModel } from 'Knoin/AbstractModel';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
import { ContactPropertyType } from 'Common/Enums';
|
||||
import { pInt, pString } from 'Common/Utils';
|
||||
import { i18n } from 'Common/Translator';
|
||||
|
||||
|
|
@ -6,6 +5,37 @@ import { AbstractModel } from 'Knoin/AbstractModel';
|
|||
|
||||
const trim = text => null == text ? "" : (text + "").trim();
|
||||
|
||||
/**
|
||||
* @enum {number}
|
||||
*/
|
||||
export const ContactPropertyType = {
|
||||
Unknown: 0,
|
||||
|
||||
FullName: 10,
|
||||
|
||||
FirstName: 15,
|
||||
LastName: 16,
|
||||
MiddleName: 17,
|
||||
Nick: 18,
|
||||
|
||||
NamePrefix: 20,
|
||||
NameSuffix: 21,
|
||||
|
||||
Email: 30,
|
||||
Phone: 31,
|
||||
Web: 32,
|
||||
|
||||
Birthday: 40,
|
||||
|
||||
Facebook: 90,
|
||||
Skype: 91,
|
||||
GitHub: 92,
|
||||
|
||||
Note: 110,
|
||||
|
||||
Custom: 250
|
||||
};
|
||||
|
||||
export class ContactPropertyModel extends AbstractModel {
|
||||
/**
|
||||
* @param {number=} type = Enums.ContactPropertyType.Unknown
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { FilterRulesType, FiltersAction } from 'Common/Enums';
|
||||
import { pString } from 'Common/Utils';
|
||||
import { delegateRunOnDestroy } from 'Common/UtilsUser';
|
||||
import { i18n } from 'Common/Translator';
|
||||
|
|
@ -11,6 +10,26 @@ import AccountStore from 'Stores/User/Account';
|
|||
import { FilterConditionModel } from 'Model/FilterCondition';
|
||||
import { AbstractModel } from 'Knoin/AbstractModel';
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterAction = {
|
||||
None: 'None',
|
||||
MoveTo: 'MoveTo',
|
||||
Discard: 'Discard',
|
||||
Vacation: 'Vacation',
|
||||
Reject: 'Reject',
|
||||
Forward: 'Forward'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
const FilterRulesType = {
|
||||
All: 'All',
|
||||
Any: 'Any'
|
||||
};
|
||||
|
||||
export class FilterModel extends AbstractModel {
|
||||
constructor() {
|
||||
super();
|
||||
|
|
@ -43,7 +62,7 @@ export class FilterModel extends AbstractModel {
|
|||
actionKeep: true,
|
||||
actionNoStop: false,
|
||||
|
||||
actionType: FiltersAction.MoveTo
|
||||
actionType: FilterAction.MoveTo
|
||||
});
|
||||
|
||||
this.conditions = ko.observableArray();
|
||||
|
|
@ -59,23 +78,23 @@ export class FilterModel extends AbstractModel {
|
|||
const actionValue = this.actionValue();
|
||||
|
||||
switch (this.actionType()) {
|
||||
case FiltersAction.MoveTo:
|
||||
case FilterAction.MoveTo:
|
||||
result = i18n('SETTINGS_FILTERS/SUBNAME_MOVE_TO', {
|
||||
FOLDER: fGetRealFolderName(actionValue)
|
||||
});
|
||||
break;
|
||||
case FiltersAction.Forward:
|
||||
case FilterAction.Forward:
|
||||
result = i18n('SETTINGS_FILTERS/SUBNAME_FORWARD_TO', {
|
||||
EMAIL: actionValue
|
||||
});
|
||||
break;
|
||||
case FiltersAction.Vacation:
|
||||
case FilterAction.Vacation:
|
||||
result = i18n('SETTINGS_FILTERS/SUBNAME_VACATION_MESSAGE');
|
||||
break;
|
||||
case FiltersAction.Reject:
|
||||
case FilterAction.Reject:
|
||||
result = i18n('SETTINGS_FILTERS/SUBNAME_REJECT');
|
||||
break;
|
||||
case FiltersAction.Discard:
|
||||
case FilterAction.Discard:
|
||||
result = i18n('SETTINGS_FILTERS/SUBNAME_DISCARD');
|
||||
break;
|
||||
// no default
|
||||
|
|
@ -88,24 +107,24 @@ export class FilterModel extends AbstractModel {
|
|||
let result = '';
|
||||
|
||||
switch (this.actionType()) {
|
||||
case FiltersAction.Forward:
|
||||
result = 'SettingsFiltersActionForward';
|
||||
case FilterAction.Forward:
|
||||
result = 'SettingsFilterActionForward';
|
||||
break;
|
||||
case FiltersAction.Vacation:
|
||||
result = 'SettingsFiltersActionVacation';
|
||||
case FilterAction.Vacation:
|
||||
result = 'SettingsFilterActionVacation';
|
||||
break;
|
||||
case FiltersAction.Reject:
|
||||
result = 'SettingsFiltersActionReject';
|
||||
case FilterAction.Reject:
|
||||
result = 'SettingsFilterActionReject';
|
||||
break;
|
||||
case FiltersAction.None:
|
||||
result = 'SettingsFiltersActionNone';
|
||||
case FilterAction.None:
|
||||
result = 'SettingsFilterActionNone';
|
||||
break;
|
||||
case FiltersAction.Discard:
|
||||
result = 'SettingsFiltersActionDiscard';
|
||||
case FilterAction.Discard:
|
||||
result = 'SettingsFilterActionDiscard';
|
||||
break;
|
||||
case FiltersAction.MoveTo:
|
||||
case FilterAction.MoveTo:
|
||||
default:
|
||||
result = 'SettingsFiltersActionMoveToFolder';
|
||||
result = 'SettingsFilterActionMoveToFolder';
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -143,10 +162,10 @@ export class FilterModel extends AbstractModel {
|
|||
|
||||
if (!this.actionValue()) {
|
||||
if ([
|
||||
FiltersAction.MoveTo,
|
||||
FiltersAction.Forward,
|
||||
FiltersAction.Reject,
|
||||
FiltersAction.Vacation
|
||||
FilterAction.MoveTo,
|
||||
FilterAction.Forward,
|
||||
FilterAction.Reject,
|
||||
FilterAction.Vacation
|
||||
].includes(this.actionType())
|
||||
) {
|
||||
this.actionValueError(true);
|
||||
|
|
@ -154,13 +173,13 @@ export class FilterModel extends AbstractModel {
|
|||
}
|
||||
}
|
||||
|
||||
if (FiltersAction.Forward === this.actionType() && !this.actionValue().includes('@')) {
|
||||
if (FilterAction.Forward === this.actionType() && !this.actionValue().includes('@')) {
|
||||
this.actionValueError(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
FiltersAction.Vacation === this.actionType() &&
|
||||
FilterAction.Vacation === this.actionType() &&
|
||||
this.actionValueFourth() &&
|
||||
!this.actionValueFourth().includes('@')
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,34 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { FilterConditionField, FilterConditionType } from 'Common/Enums';
|
||||
|
||||
import { AbstractModel } from 'Knoin/AbstractModel';
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterConditionField = {
|
||||
From: 'From',
|
||||
Recipient: 'Recipient',
|
||||
Subject: 'Subject',
|
||||
Header: 'Header',
|
||||
Body: 'Body',
|
||||
Size: 'Size'
|
||||
};
|
||||
|
||||
/**
|
||||
* @enum {string}
|
||||
*/
|
||||
export const FilterConditionType = {
|
||||
Contains: 'Contains',
|
||||
NotContains: 'NotContains',
|
||||
EqualTo: 'EqualTo',
|
||||
NotEqualTo: 'NotEqualTo',
|
||||
Regex: 'Regex',
|
||||
Over: 'Over',
|
||||
Under: 'Under',
|
||||
Text: 'Text',
|
||||
Raw: 'Raw'
|
||||
};
|
||||
|
||||
export class FilterConditionModel extends AbstractModel {
|
||||
constructor() {
|
||||
super();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { FolderType } from 'Common/Enums';
|
||||
import { FolderType } from 'Common/EnumsUser';
|
||||
import { isPosNumeric } from 'Common/UtilsUser';
|
||||
import { i18n, trigger as translatorTrigger } from 'Common/Translator';
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { AbstractCollectionModel } from 'Model/AbstractCollection';
|
|||
|
||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||
import { pInt } from 'Common/Utils';
|
||||
import { ClientSideKeyName, FolderType, ServerFolderType } from 'Common/Enums';
|
||||
import { ClientSideKeyName, FolderType } from 'Common/EnumsUser';
|
||||
import * as Cache from 'Common/Cache';
|
||||
|
||||
import * as Local from 'Storage/Client';
|
||||
|
|
@ -18,6 +18,18 @@ import Remote from 'Remote/User/Fetch';
|
|||
|
||||
const Settings = rl.settings,
|
||||
|
||||
ServerFolderType = {
|
||||
USER: 0,
|
||||
INBOX: 1,
|
||||
SENT: 2,
|
||||
DRAFTS: 3,
|
||||
JUNK: 4,
|
||||
TRASH: 5,
|
||||
IMPORTANT: 10,
|
||||
FLAGGED: 11,
|
||||
ALL: 12
|
||||
},
|
||||
|
||||
normalizeFolder = sFolderFullNameRaw => ('' === sFolderFullNameRaw
|
||||
|| UNUSED_OPTION_VALUE === sFolderFullNameRaw
|
||||
|| null !== Cache.getFolderFromCacheList(sFolderFullNameRaw))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { MessagePriority, SignedVerifyStatus } from 'Common/Enums';
|
||||
import { MessagePriority } from 'Common/EnumsUser';
|
||||
import { i18n } from 'Common/Translator';
|
||||
|
||||
import { encodeHtml } from 'Common/UtilsUser';
|
||||
|
|
@ -16,6 +16,15 @@ import { AbstractModel } from 'Knoin/AbstractModel';
|
|||
|
||||
const isArray = Array.isArray,
|
||||
|
||||
SignedVerifyStatus = {
|
||||
UnknownPublicKeys: -4,
|
||||
UnknownPrivateKey: -3,
|
||||
Unverified: -2,
|
||||
Error: -1,
|
||||
None: 0,
|
||||
Success: 1
|
||||
},
|
||||
|
||||
replyHelper = (emails, unic, localEmails) => {
|
||||
emails.forEach(email => {
|
||||
if (undefined === unic[email.email]) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Focused, Capa, ClientSideKeyName } from 'Common/Enums';
|
||||
import { Capa } from 'Common/Enums';
|
||||
import { Focused, ClientSideKeyName } from 'Common/EnumsUser';
|
||||
import { leftPanelDisabled, leftPanelType, moveAction } from 'Common/Globals';
|
||||
import { pString, pInt } from 'Common/Utils';
|
||||
import { getFolderFromCacheList, getFolderFullNameRaw, getFolderInboxName } from 'Common/Cache';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { ClientSideKeyName, Notification } from 'Common/Enums';
|
||||
import { Notification } from 'Common/Enums';
|
||||
import { ClientSideKeyName } from 'Common/EnumsUser';
|
||||
import { getNotification, i18n } from 'Common/Translator';
|
||||
|
||||
import { removeFolderFromCacheList } from 'Common/Cache';
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@ import ko from 'ko';
|
|||
|
||||
import { MESSAGES_PER_PAGE_VALUES } from 'Common/Consts';
|
||||
|
||||
import { SaveSettingsStep, EditorDefaultType, Layout } from 'Common/Enums';
|
||||
import { SaveSettingsStep } from 'Common/Enums';
|
||||
import { EditorDefaultType, Layout } from 'Common/EnumsUser';
|
||||
|
||||
import { settingsSaveHelperSimpleFunction, convertLangName } from 'Common/Utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import ko from 'ko';
|
||||
import { Focused, KeyState } from 'Common/Enums';
|
||||
import { KeyState } from 'Common/Enums';
|
||||
import { Focused } from 'Common/EnumsUser';
|
||||
|
||||
import { keyScope, leftPanelDisabled } from 'Common/Globals';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { FolderType } from 'Common/Enums';
|
||||
import { FolderType } from 'Common/EnumsUser';
|
||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||
import { folderListOptionsBuilder } from 'Common/UtilsUser';
|
||||
import { getFolderInboxName, getFolderFromCacheList } from 'Common/Cache';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { Layout, Focused, MessageSetAction, StorageResultType, Notification } from 'Common/Enums';
|
||||
import { StorageResultType, Notification } from 'Common/Enums';
|
||||
import { Layout, Focused, MessageSetAction } from 'Common/EnumsUser';
|
||||
|
||||
import { pInt, pString } from 'Common/Utils';
|
||||
import { plainToHtml } from 'Common/UtilsUser';
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { MESSAGES_PER_PAGE_VALUES } from 'Common/Consts';
|
||||
import { Layout, EditorDefaultType } from 'Common/Enums';
|
||||
import { Layout, EditorDefaultType } from 'Common/EnumsUser';
|
||||
import { pInt } from 'Common/Utils';
|
||||
|
||||
class SettingsUserStore {
|
||||
|
|
|
|||
|
|
@ -3,14 +3,17 @@ import ko from 'ko';
|
|||
import {
|
||||
Capa,
|
||||
KeyState,
|
||||
ComposeType,
|
||||
StorageResultType,
|
||||
EditorDefaultType,
|
||||
Notification,
|
||||
SetSystemFoldersNotification,
|
||||
UploadErrorCode
|
||||
} from 'Common/Enums';
|
||||
|
||||
import {
|
||||
ComposeType,
|
||||
EditorDefaultType,
|
||||
SetSystemFoldersNotification
|
||||
} from 'Common/EnumsUser';
|
||||
|
||||
import { inFocus, pInt } from 'Common/Utils';
|
||||
import { encodeHtml, delegateRunOnDestroy } from 'Common/UtilsUser';
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@ import ko from 'ko';
|
|||
|
||||
import {
|
||||
SaveSettingsStep,
|
||||
ContactPropertyType,
|
||||
ComposeType,
|
||||
Capa,
|
||||
StorageResultType,
|
||||
Notification,
|
||||
KeyState
|
||||
} from 'Common/Enums';
|
||||
|
||||
import { ComposeType } from 'Common/EnumsUser';
|
||||
|
||||
import { pInt } from 'Common/Utils';
|
||||
import { delegateRunOnDestroy, computedPaginatorHelper } from 'Common/UtilsUser';
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ import Remote from 'Remote/User/Fetch';
|
|||
|
||||
import { EmailModel } from 'Model/Email';
|
||||
import { ContactModel } from 'Model/Contact';
|
||||
import { ContactPropertyModel } from 'Model/ContactProperty';
|
||||
import { ContactPropertyModel, ContactPropertyType } from 'Model/ContactProperty';
|
||||
|
||||
import { command, showScreenPopup, hideScreenPopup } from 'Knoin/Knoin';
|
||||
import { AbstractViewPopup } from 'Knoin/AbstractViews';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { StorageResultType, ServerSecure, Notification } from 'Common/Enums';
|
||||
import { StorageResultType, Notification } from 'Common/Enums';
|
||||
import { pInt, pString } from 'Common/Utils';
|
||||
import { i18n } from 'Common/Translator';
|
||||
|
||||
|
|
@ -37,15 +37,15 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
|
||||
imapServer: '',
|
||||
imapPort: '143',
|
||||
imapSecure: ServerSecure.None,
|
||||
imapSecure: 0,
|
||||
imapShortLogin: false,
|
||||
useSieve: false,
|
||||
sieveServer: '',
|
||||
sievePort: '4190',
|
||||
sieveSecure: ServerSecure.None,
|
||||
sieveSecure: 0,
|
||||
smtpServer: '',
|
||||
smtpPort: '25',
|
||||
smtpSecure: ServerSecure.None,
|
||||
smtpSecure: 0,
|
||||
smtpShortLogin: false,
|
||||
smtpAuth: true,
|
||||
smtpPhpMail: false,
|
||||
|
|
@ -325,17 +325,17 @@ class DomainPopupView extends AbstractViewPopup {
|
|||
|
||||
this.imapServer('');
|
||||
this.imapPort('143');
|
||||
this.imapSecure(ServerSecure.None);
|
||||
this.imapSecure(0);
|
||||
this.imapShortLogin(false);
|
||||
|
||||
this.useSieve(false);
|
||||
this.sieveServer('');
|
||||
this.sievePort('4190');
|
||||
this.sieveSecure(ServerSecure.None);
|
||||
this.sieveSecure(0);
|
||||
|
||||
this.smtpServer('');
|
||||
this.smtpPort('25');
|
||||
this.smtpSecure(ServerSecure.None);
|
||||
this.smtpSecure(0);
|
||||
this.smtpShortLogin(false);
|
||||
this.smtpAuth(true);
|
||||
this.smtpPhpMail(false);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { FiltersAction, FilterConditionField, FilterConditionType } from 'Common/Enums';
|
||||
import { FilterAction } from 'Model/Filter';
|
||||
import { FilterConditionField, FilterConditionType } from 'Model/FilterCondition';
|
||||
import { defaultOptionsAfterRender } from 'Common/Utils';
|
||||
import { i18n, initOnStartOrLangChange } from 'Common/Translator';
|
||||
|
||||
|
|
@ -40,7 +41,7 @@ class FilterPopupView extends AbstractViewPopup {
|
|||
@command()
|
||||
saveFilterCommand() {
|
||||
if (this.filter()) {
|
||||
if (FiltersAction.MoveTo === this.filter().actionType()) {
|
||||
if (FilterAction.MoveTo === this.filter().actionType()) {
|
||||
this.filter().actionValue(this.selectedFolderValue());
|
||||
}
|
||||
|
||||
|
|
@ -74,7 +75,7 @@ class FilterPopupView extends AbstractViewPopup {
|
|||
{ 'id': FilterConditionType.NotEqualTo, 'name': i18n('POPUPS_FILTER/SELECT_TYPE_NOT_EQUAL_TO') }
|
||||
]);
|
||||
|
||||
// this.actionTypeOptions.push({'id': FiltersAction.None,
|
||||
// this.actionTypeOptions.push({'id': FilterAction.None,
|
||||
// 'name': i18n('GLOBAL/NONE')});
|
||||
const modules = SieveStore.capa;
|
||||
if (modules) {
|
||||
|
|
@ -84,22 +85,22 @@ class FilterPopupView extends AbstractViewPopup {
|
|||
|
||||
if (modules.includes('fileinto')) {
|
||||
this.actionTypeOptions.push({
|
||||
'id': FiltersAction.MoveTo,
|
||||
'id': FilterAction.MoveTo,
|
||||
'name': i18n('POPUPS_FILTER/SELECT_ACTION_MOVE_TO')
|
||||
});
|
||||
this.actionTypeOptions.push({
|
||||
'id': FiltersAction.Forward,
|
||||
'id': FilterAction.Forward,
|
||||
'name': i18n('POPUPS_FILTER/SELECT_ACTION_FORWARD_TO')
|
||||
});
|
||||
}
|
||||
|
||||
if (modules.includes('reject')) {
|
||||
this.actionTypeOptions.push({ 'id': FiltersAction.Reject, 'name': i18n('POPUPS_FILTER/SELECT_ACTION_REJECT') });
|
||||
this.actionTypeOptions.push({ 'id': FilterAction.Reject, 'name': i18n('POPUPS_FILTER/SELECT_ACTION_REJECT') });
|
||||
}
|
||||
|
||||
if (modules.includes('vacation')) {
|
||||
this.actionTypeOptions.push({
|
||||
'id': FiltersAction.Vacation,
|
||||
'id': FilterAction.Vacation,
|
||||
'name': i18n('POPUPS_FILTER/SELECT_ACTION_VACATION_MESSAGE')
|
||||
});
|
||||
}
|
||||
|
|
@ -113,7 +114,7 @@ class FilterPopupView extends AbstractViewPopup {
|
|||
}
|
||||
}
|
||||
|
||||
this.actionTypeOptions.push({ 'id': FiltersAction.Discard, 'name': i18n('POPUPS_FILTER/SELECT_ACTION_DISCARD') });
|
||||
this.actionTypeOptions.push({ 'id': FilterAction.Discard, 'name': i18n('POPUPS_FILTER/SELECT_ACTION_DISCARD') });
|
||||
|
||||
this.typeOptionsSize([
|
||||
{ 'id': FilterConditionType.Over, 'name': i18n('POPUPS_FILTER/SELECT_TYPE_OVER') },
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { SetSystemFoldersNotification } from 'Common/Enums';
|
||||
import { SetSystemFoldersNotification } from 'Common/EnumsUser';
|
||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||
import { defaultOptionsAfterRender } from 'Common/Utils';
|
||||
import { folderListOptionsBuilder } from 'Common/UtilsUser';
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import {
|
||||
LoginSignMeType,
|
||||
LoginSignMeTypeAsString,
|
||||
ClientSideKeyName,
|
||||
StorageResultType,
|
||||
Notification
|
||||
} from 'Common/Enums';
|
||||
|
||||
import { ClientSideKeyName } from 'Common/EnumsUser';
|
||||
|
||||
import { convertLangName } from 'Common/Utils';
|
||||
|
||||
import { getNotification, getNotificationFromResponse, reload as translatorReload } from 'Common/Translator';
|
||||
|
|
@ -24,7 +23,20 @@ import { AbstractViewCenter } from 'Knoin/AbstractViews';
|
|||
|
||||
import { rootAdmin } from 'Common/Links';
|
||||
|
||||
const Settings = rl.settings;
|
||||
const Settings = rl.settings,
|
||||
|
||||
LoginSignMeType = {
|
||||
DefaultOff: 0,
|
||||
DefaultOn: 1,
|
||||
Unused: 2
|
||||
},
|
||||
|
||||
LoginSignMeTypeAsString = {
|
||||
DefaultOff: 'defaultoff',
|
||||
DefaultOn: 'defaulton',
|
||||
Unused: 'unused'
|
||||
};
|
||||
|
||||
|
||||
class LoginUserView extends AbstractViewCenter {
|
||||
constructor() {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import ko from 'ko';
|
||||
|
||||
import { Capa, Focused, Layout, KeyState } from 'Common/Enums';
|
||||
import { Capa, KeyState } from 'Common/Enums';
|
||||
import { Focused, Layout } from 'Common/EnumsUser';
|
||||
import { leftPanelDisabled, moveAction } from 'Common/Globals';
|
||||
import { mailBox, settings } from 'Common/Links';
|
||||
import { setFolderHash } from 'Common/Cache';
|
||||
|
|
|
|||
|
|
@ -2,14 +2,17 @@ import ko from 'ko';
|
|||
|
||||
import {
|
||||
Capa,
|
||||
KeyState,
|
||||
StorageResultType
|
||||
} from 'Common/Enums';
|
||||
|
||||
import {
|
||||
Layout,
|
||||
Focused,
|
||||
ComposeType,
|
||||
FolderType,
|
||||
MessageSetAction,
|
||||
KeyState,
|
||||
StorageResultType
|
||||
} from 'Common/Enums';
|
||||
MessageSetAction
|
||||
} from 'Common/EnumsUser';
|
||||
|
||||
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
||||
|
||||
|
|
|
|||
|
|
@ -4,14 +4,17 @@ import { UNUSED_OPTION_VALUE } from 'Common/Consts';
|
|||
|
||||
import {
|
||||
Capa,
|
||||
KeyState
|
||||
} from 'Common/Enums';
|
||||
|
||||
import {
|
||||
ComposeType,
|
||||
ClientSideKeyName,
|
||||
KeyState,
|
||||
FolderType,
|
||||
Focused,
|
||||
Layout,
|
||||
MessageSetAction
|
||||
} from 'Common/Enums';
|
||||
} from 'Common/EnumsUser';
|
||||
|
||||
import { $htmlCL, leftPanelDisabled, keyScopeReal, moveAction } from 'Common/Globals';
|
||||
|
||||
|
|
|
|||
4
dev/bootstrap.js
vendored
4
dev/bootstrap.js
vendored
|
|
@ -13,10 +13,10 @@ export default (App) => {
|
|||
if ('S' == event.key) {
|
||||
event.preventDefault();
|
||||
} else if ('A' == event.key) {
|
||||
const sender = event.target || event.srcElement;
|
||||
const sender = event.target;
|
||||
if (
|
||||
sender &&
|
||||
('true' === '' + sender.contentEditable || (sender.tagName && sender.tagName.match(/INPUT|TEXTAREA/i)))
|
||||
('true' === '' + sender.contentEditable || (sender.matches && sender.matches('INPUT,TEXTAREA')))
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue