mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-27 02:59:21 +03:00
Update ckeditor
Move e2e tests Code refactoring
This commit is contained in:
parent
9993432c7b
commit
e5af98b04b
122 changed files with 617 additions and 561 deletions
|
|
@ -2,7 +2,9 @@
|
|||
import window from 'window';
|
||||
import $ from '$';
|
||||
import _ from '_';
|
||||
import ko from 'ko';
|
||||
import key from 'key';
|
||||
import ssm from 'ssm';
|
||||
|
||||
import {
|
||||
$win, $html, $doc,
|
||||
|
|
@ -22,6 +24,10 @@ import {toggle as toggleCmd} from 'Common/Cmd';
|
|||
import * as Events from 'Common/Events';
|
||||
import * as Settings from 'Storage/Settings';
|
||||
|
||||
import LanguageStore from 'Stores/Language';
|
||||
import ThemeStore from 'Stores/Theme';
|
||||
import SocialStore from 'Stores/Social';
|
||||
|
||||
import {routeOff, setHash} from 'Knoin/Knoin';
|
||||
import {AbstractBoot} from 'Knoin/AbstractBoot';
|
||||
|
||||
|
|
@ -289,10 +295,7 @@ class AbstractApp extends AbstractBoot
|
|||
|
||||
Events.pub('rl.bootstart');
|
||||
|
||||
const
|
||||
mobile = Settings.appSettingsGet('mobile'),
|
||||
ssm = require('ssm'),
|
||||
ko = require('ko');
|
||||
const mobile = Settings.appSettingsGet('mobile');
|
||||
|
||||
ko.components.register('SaveTrigger', require('Component/SaveTrigger'));
|
||||
ko.components.register('Input', require('Component/Input'));
|
||||
|
|
@ -395,9 +398,9 @@ class AbstractApp extends AbstractBoot
|
|||
|
||||
leftPanelDisabled.valueHasMutated();
|
||||
|
||||
require('Stores/Language').populate();
|
||||
require('Stores/Theme').populate();
|
||||
require('Stores/Social').populate();
|
||||
LanguageStore.populate();
|
||||
ThemeStore.populate();
|
||||
SocialStore.populate();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import {pInt, isNormal, isArray, inArray, isUnd} from 'Common/Utils';
|
|||
import * as Settings from 'Storage/Settings';
|
||||
|
||||
import AppStore from 'Stores/Admin/App';
|
||||
import CapaStore from 'Stores/Admin/Capa';
|
||||
import DomainStore from 'Stores/Admin/Domain';
|
||||
import PluginStore from 'Stores/Admin/Plugin';
|
||||
import LicenseStore from 'Stores/Admin/License';
|
||||
|
|
@ -217,8 +218,8 @@ class AdminApp extends AbstractApp
|
|||
|
||||
super.bootstart();
|
||||
|
||||
require('Stores/Admin/App').populate();
|
||||
require('Stores/Admin/Capa').populate();
|
||||
AppStore.populate();
|
||||
CapaStore.populate();
|
||||
|
||||
hideLoading();
|
||||
|
||||
|
|
|
|||
|
|
@ -43,14 +43,16 @@ import * as Events from 'Common/Events';
|
|||
import {getNotification, i18n} from 'Common/Translator';
|
||||
|
||||
import SocialStore from 'Stores/Social';
|
||||
import AppStore from 'Stores/User/App';
|
||||
import SettingsStore from 'Stores/User/Settings';
|
||||
import NotificationStore from 'Stores/User/Notification';
|
||||
import AccountStore from 'Stores/User/Account';
|
||||
import ContactStore from 'Stores/User/Contact';
|
||||
import IdentityStore from 'Stores/User/Identity';
|
||||
import TemplateStore from 'Stores/User/Template';
|
||||
import FolderStore from 'Stores/User/Folder';
|
||||
import PgpStore from 'Stores/User/Pgp';
|
||||
import MessageStore from 'Stores/User/Message';
|
||||
import ContactStore from 'Stores/User/Contact';
|
||||
import QuotaStore from 'Stores/User/Quota';
|
||||
|
||||
import * as Local from 'Storage/Client';
|
||||
|
|
@ -1258,11 +1260,11 @@ class AppUser extends AbstractApp
|
|||
|
||||
super.bootstart();
|
||||
|
||||
require('Stores/User/App').populate();
|
||||
require('Stores/User/Settings').populate();
|
||||
require('Stores/User/Notification').populate();
|
||||
require('Stores/User/Account').populate();
|
||||
require('Stores/User/Contact').populate();
|
||||
AppStore.populate();
|
||||
SettingsStore.populate();
|
||||
NotificationStore.populate();
|
||||
AccountStore.populate();
|
||||
ContactStore.populate();
|
||||
|
||||
let
|
||||
contactsSyncInterval = pInt(Settings.settingsGet('ContactsSyncInterval'));
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {pString, inArray, isNonEmptyArray, fakeMd5, delegateRunOnDestroy, window
|
|||
import {i18n} from 'Common/Translator';
|
||||
import {getFolderFromCacheList} from 'Common/Cache';
|
||||
|
||||
import AccountStore from 'Stores/User/Account';
|
||||
|
||||
import {FilterConditionModel} from 'Model/FilterCondition';
|
||||
import {AbstractModel} from 'Knoin/AbstractModel';
|
||||
|
||||
|
|
@ -214,7 +216,7 @@ class FilterModel extends AbstractModel
|
|||
}
|
||||
|
||||
setRecipients() {
|
||||
this.actionValueFourth(require('Stores/User/Account').accountsEmails().join(', '));
|
||||
this.actionValueFourth(AccountStore.accountsEmails().join(', '));
|
||||
}
|
||||
|
||||
parse(json) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ import {
|
|||
import {$win} from 'Common/Globals';
|
||||
import {messageViewLink, messageDownloadLink} from 'Common/Links';
|
||||
|
||||
import FolderStore from 'Stores/User/Folder';
|
||||
import PgpStore from 'Stores/User/Pgp';
|
||||
|
||||
import {emailArrayFromJson, emailArrayToStringClear, emailArrayToString, replyHelper} from 'Helper/Message';
|
||||
|
||||
import {AttachmentModel, staticCombinedIconClass} from 'Model/Attachment';
|
||||
|
|
@ -211,8 +214,8 @@ class MessageModel extends AbstractModel
|
|||
|
||||
computeSenderEmail() {
|
||||
const
|
||||
sentFolder = require('Stores/User/Folder').sentFolder(),
|
||||
draftFolder = require('Stores/User/Folder').draftFolder();
|
||||
sentFolder = FolderStore.sentFolder(),
|
||||
draftFolder = FolderStore.draftFolder();
|
||||
|
||||
this.senderEmailsString(this.folderFullNameRaw === sentFolder || this.folderFullNameRaw === draftFolder ?
|
||||
this.toEmailsString() : this.fromEmailString());
|
||||
|
|
@ -307,7 +310,7 @@ class MessageModel extends AbstractModel
|
|||
|
||||
this.proxy = !!json.ExternalProxy;
|
||||
|
||||
if (require('Stores/User/Pgp').capaOpenPGP())
|
||||
if (PgpStore.capaOpenPGP())
|
||||
{
|
||||
this.isPgpSigned(!!json.PgpSigned);
|
||||
this.isPgpEncrypted(!!json.PgpEncrypted);
|
||||
|
|
|
|||
|
|
@ -61,4 +61,4 @@ class UserAjaxUserPromises extends AbstractAjaxPromises
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new UserAjaxUserPromises();
|
||||
export default new UserAjaxUserPromises();
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ import * as Local from 'Storage/Client';
|
|||
import AppStore from 'Stores/User/App';
|
||||
import FolderStore from 'Stores/User/Folder';
|
||||
|
||||
import Remote from 'Remote/User/Ajax';
|
||||
|
||||
import {FolderModel} from 'Model/Folder';
|
||||
import {AbstractBasicPromises} from 'Promises/AbstractBasic';
|
||||
|
||||
|
|
@ -165,7 +167,7 @@ class PromisesUserPopulator extends AbstractBasicPromises
|
|||
|
||||
if (update)
|
||||
{
|
||||
require('Remote/User/Ajax').saveSystemFolders(noop, {
|
||||
Remote.saveSystemFolders(noop, {
|
||||
SentFolder: FolderStore.sentFolder(),
|
||||
DraftFolder: FolderStore.draftFolder(),
|
||||
SpamFolder: FolderStore.spamFolder(),
|
||||
|
|
@ -180,4 +182,4 @@ class PromisesUserPopulator extends AbstractBasicPromises
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new PromisesUserPopulator();
|
||||
export default new PromisesUserPopulator();
|
||||
|
|
|
|||
|
|
@ -279,4 +279,4 @@ class RemoteAdminAjax extends AbstractAjaxRemote
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new RemoteAdminAjax();
|
||||
export default new RemoteAdminAjax();
|
||||
|
|
|
|||
|
|
@ -854,4 +854,4 @@ class RemoteUserAjax extends AbstractAjaxRemote
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new RemoteUserAjax();
|
||||
export default new RemoteUserAjax();
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ import {phpInfo} from 'Common/Links';
|
|||
import {settingsGet} from 'Storage/Settings';
|
||||
import {showScreenPopup} from 'Knoin/Knoin';
|
||||
|
||||
import Remote from 'Remote/Admin/Ajax';
|
||||
|
||||
import ThemeStore from 'Stores/Theme';
|
||||
import LanguageStore from 'Stores/Language';
|
||||
import AppAdminStore from 'Stores/Admin/App';
|
||||
|
|
@ -63,7 +65,6 @@ class GeneralAdminSettings
|
|||
onBuild() {
|
||||
_.delay(() => {
|
||||
const
|
||||
Remote = require('Remote/Admin/Ajax'),
|
||||
f1 = settingsSaveHelperSimpleFunction(this.attachmentLimitTrigger, this),
|
||||
f2 = settingsSaveHelperSimpleFunction(this.languageTrigger, this),
|
||||
f3 = settingsSaveHelperSimpleFunction(this.themeTrigger, this),
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {settingsGet} from 'Storage/Settings';
|
|||
|
||||
import AppStore from 'Stores/Admin/App';
|
||||
|
||||
import Remote from 'Remote/Admin/Ajax';
|
||||
|
||||
class LoginAdminSettings
|
||||
{
|
||||
constructor() {
|
||||
|
|
@ -21,9 +23,7 @@ class LoginAdminSettings
|
|||
|
||||
onBuild() {
|
||||
_.delay(() => {
|
||||
const
|
||||
Remote = require('Remote/Admin/Ajax'),
|
||||
f1 = settingsSaveHelperSimpleFunction(this.defaultDomain.trigger, this);
|
||||
const f1 = settingsSaveHelperSimpleFunction(this.defaultDomain.trigger, this);
|
||||
|
||||
this.determineUserLanguage.subscribe((value) => {
|
||||
Remote.saveAdminConfig(null, {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {settingsSaveHelperSimpleFunction, trim, boolToAjax} from 'Common/Utils';
|
|||
|
||||
import SocialStore from 'Stores/Social';
|
||||
|
||||
import Remote from 'Remote/Admin/Ajax';
|
||||
|
||||
class SocialAdminSettings
|
||||
{
|
||||
constructor() {
|
||||
|
|
@ -51,7 +53,6 @@ class SocialAdminSettings
|
|||
onBuild() {
|
||||
_.delay(() => {
|
||||
const
|
||||
Remote = require('Remote/Admin/Ajax'),
|
||||
f1 = settingsSaveHelperSimpleFunction(this.facebookTrigger1, this),
|
||||
f2 = settingsSaveHelperSimpleFunction(this.facebookTrigger2, this),
|
||||
f3 = settingsSaveHelperSimpleFunction(this.twitterTrigger1, this),
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@ class AppAdminStore extends AbstractAppStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new AppAdminStore();
|
||||
export default new AppAdminStore();
|
||||
|
|
|
|||
|
|
@ -36,4 +36,4 @@ class CapaAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new CapaAdminStore();
|
||||
export default new CapaAdminStore();
|
||||
|
|
|
|||
|
|
@ -19,4 +19,4 @@ class CoreAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new CoreAdminStore();
|
||||
export default new CoreAdminStore();
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ class DomainAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new DomainAdminStore();
|
||||
export default new DomainAdminStore();
|
||||
|
|
|
|||
|
|
@ -14,4 +14,4 @@ class LicenseAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new LicenseAdminStore();
|
||||
export default new LicenseAdminStore();
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ class PackageAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new PackageAdminStore();
|
||||
export default new PackageAdminStore();
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ class PluginAdminStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new PluginAdminStore();
|
||||
export default new PluginAdminStore();
|
||||
|
|
|
|||
|
|
@ -37,4 +37,4 @@ class LanguageStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new LanguageStore();
|
||||
export default new LanguageStore();
|
||||
|
|
|
|||
|
|
@ -100,4 +100,4 @@ class SocialStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new SocialStore();
|
||||
export default new SocialStore();
|
||||
|
|
|
|||
|
|
@ -23,4 +23,4 @@ class ThemeStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new ThemeStore();
|
||||
export default new ThemeStore();
|
||||
|
|
|
|||
|
|
@ -48,4 +48,4 @@ class AccountUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new AccountUserStore();
|
||||
export default new AccountUserStore();
|
||||
|
|
|
|||
|
|
@ -69,4 +69,4 @@ class AppUserStore extends AbstractAppStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new AppUserStore();
|
||||
export default new AppUserStore();
|
||||
|
|
|
|||
|
|
@ -30,4 +30,4 @@ class ContactUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new ContactUserStore();
|
||||
export default new ContactUserStore();
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@ class FilterUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new FilterUserStore();
|
||||
export default new FilterUserStore();
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import {UNUSED_OPTION_VALUE} from 'Common/Consts';
|
|||
import {isArray, folderListOptionsBuilder} from 'Common/Utils';
|
||||
import {getFolderInboxName, getFolderFromCacheList} from 'Common/Cache';
|
||||
|
||||
import {momentNowUnix} from 'Common/Momentor';
|
||||
|
||||
class FolderUserStore
|
||||
{
|
||||
constructor() {
|
||||
|
|
@ -157,7 +159,7 @@ class FolderUserStore
|
|||
const
|
||||
result = [],
|
||||
limit = 5,
|
||||
utc = require('Common/Momentor').momentNowUnix(),
|
||||
utc = momentNowUnix(),
|
||||
timeout = utc - 60 * 5,
|
||||
timeouts = [],
|
||||
inboxFolderName = getFolderInboxName(),
|
||||
|
|
@ -208,4 +210,4 @@ class FolderUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new FolderUserStore();
|
||||
export default new FolderUserStore();
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@ class IdentityUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new IdentityUserStore();
|
||||
export default new IdentityUserStore();
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import {MESSAGE_BODY_CACHE_LIMIT} from 'Common/Consts';
|
|||
import {data as GlobalsData, $div} from 'Common/Globals';
|
||||
import {mailBox, notificationMailIcon} from 'Common/Links';
|
||||
import {i18n, getNotification} from 'Common/Translator';
|
||||
import {momentNowUnix} from 'Common/Momentor';
|
||||
|
||||
import * as MessageHelper from 'Helper/Message';
|
||||
import {MessageModel} from 'Model/Message';
|
||||
|
|
@ -42,9 +43,11 @@ import {MessageModel} from 'Model/Message';
|
|||
import {setHash} from 'Knoin/Knoin';
|
||||
|
||||
import AppStore from 'Stores/User/App';
|
||||
import AccountStore from 'Stores/User/Account';
|
||||
import FolderStore from 'Stores/User/Folder';
|
||||
import PgpStore from 'Stores/User/Pgp';
|
||||
import SettingsStore from 'Stores/User/Settings';
|
||||
import NotificationStore from 'Stores/User/Notification';
|
||||
|
||||
import {getApp} from 'Helper/Apps/User';
|
||||
|
||||
|
|
@ -253,21 +256,18 @@ class MessageUserStore
|
|||
{
|
||||
if (isArray(newMessages) && 0 < newMessages.length)
|
||||
{
|
||||
const
|
||||
len = newMessages.length,
|
||||
NotificationStore = require('Stores/User/Notification');
|
||||
|
||||
_.each(newMessages, (item) => {
|
||||
addNewMessageCache(folder, item.Uid);
|
||||
});
|
||||
|
||||
NotificationStore.playSoundNotification();
|
||||
|
||||
const len = newMessages.length;
|
||||
if (3 < len)
|
||||
{
|
||||
NotificationStore.displayDesktopNotification(
|
||||
notificationMailIcon(),
|
||||
require('Stores/User/Account').email(),
|
||||
AccountStore.email(),
|
||||
i18n('MESSAGE_LIST/NEW_MESSAGE_NOTIFICATION', {
|
||||
'COUNT': len
|
||||
}),
|
||||
|
|
@ -551,7 +551,7 @@ class MessageUserStore
|
|||
isHtml = false;
|
||||
resultHtml = plainToHtml(data.Result.Plain.toString(), false);
|
||||
|
||||
if ((message.isPgpSigned() || message.isPgpEncrypted()) && require('Stores/User/Pgp').capaOpenPGP())
|
||||
if ((message.isPgpSigned() || message.isPgpEncrypted()) && PgpStore.capaOpenPGP())
|
||||
{
|
||||
plain = pString(data.Result.Plain);
|
||||
|
||||
|
|
@ -780,7 +780,7 @@ class MessageUserStore
|
|||
|
||||
const
|
||||
list = [],
|
||||
utc = require('Common/Momentor').momentNowUnix(),
|
||||
utc = momentNowUnix(),
|
||||
iCount = pInt(data.Result.MessageResultCount),
|
||||
iOffset = pInt(data.Result.Offset);
|
||||
|
||||
|
|
@ -876,4 +876,4 @@ class MessageUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new MessageUserStore();
|
||||
export default new MessageUserStore();
|
||||
|
|
|
|||
|
|
@ -204,4 +204,4 @@ class NotificationUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new NotificationUserStore();
|
||||
export default new NotificationUserStore();
|
||||
|
|
|
|||
|
|
@ -3,11 +3,13 @@ import ko from 'ko';
|
|||
import _ from '_';
|
||||
import $ from '$';
|
||||
|
||||
import {showScreenPopup} from 'Knoin/Knoin';
|
||||
|
||||
import {i18n} from 'Common/Translator';
|
||||
import {log, isArray, isNonEmptyArray, pString, isUnd, trim} from 'Common/Utils';
|
||||
|
||||
import AccountStore from 'Stores/User/Account';
|
||||
|
||||
import {showScreenPopup} from 'Knoin/Knoin';
|
||||
|
||||
class PgpUserStore
|
||||
{
|
||||
constructor() {
|
||||
|
|
@ -139,7 +141,7 @@ class PgpUserStore
|
|||
* @returns {?}
|
||||
*/
|
||||
findSelfPrivateKey(password) {
|
||||
return this.findPrivateKeyByEmail(require('Stores/User/Account').email(), password);
|
||||
return this.findPrivateKeyByEmail(AccountStore.email(), password);
|
||||
}
|
||||
|
||||
decryptMessage(message, recipients, fCallback) {
|
||||
|
|
@ -400,4 +402,4 @@ class PgpUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new PgpUserStore();
|
||||
export default new PgpUserStore();
|
||||
|
|
|
|||
|
|
@ -31,4 +31,4 @@ class QuotaUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new QuotaUserStore();
|
||||
export default new QuotaUserStore();
|
||||
|
|
|
|||
|
|
@ -78,4 +78,4 @@ class SettingsUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new SettingsUserStore();
|
||||
export default new SettingsUserStore();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
import ko from 'ko';
|
||||
import _ from '_';
|
||||
|
||||
// Remote = require('Remote/User/Ajax');
|
||||
// import Remote from 'Remote/User/Ajax';
|
||||
|
||||
class TemplateUserStore
|
||||
{
|
||||
|
|
@ -35,4 +35,4 @@ class TemplateUserStore
|
|||
}
|
||||
}
|
||||
|
||||
module.exports = new TemplateUserStore();
|
||||
export default new TemplateUserStore();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue