芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/public_html/cloud.pulsehost.co.uk/modules/MailWebclient/js/Settings.js
'use strict'; var ko = require('knockout'), _ = require('underscore'), Types = require('%PathToCoreWebclientModule%/js/utils/Types.js'), App = require('%PathToCoreWebclientModule%/js/App.js') ; module.exports = { ServerModuleName: 'Mail', HashModuleName: 'mail', FetchersServerModuleName: 'MtaConnector', AliasesServerModuleName: 'CpanelIntegrator', // from Core module EnableMultiTenant: false, // from Mail module AllowAddAccounts: false, AllowAutosaveInDrafts: true, AllowChangeMailQuotaOnMailServer: false, AllowDefaultAccountForUser: true, AllowEditDomainsInServer: true, AllowFetchers: false, AllowIdentities: false, AllowAliases: false, OnlyUserEmailsInIdentities: false, AllowInsertImage: true, AllowMultiAccounts: false, AutoSaveIntervalSeconds: 60, AllowTemplateFolders: false, AllowInsertTemplateOnCompose: false, MaxTemplatesCountOnCompose: 100, AllowAlwaysRefreshFolders: false, AutocreateMailAccountOnNewUserFirstLogin: false, IgnoreImapSubscription: false, ImageUploadSizeLimit: 0, AllowUnifiedInbox: true, AllowScheduledAutoresponder: false, // from MailWebclient module AllowAppRegisterMailto: false, AllowChangeInputDirection: true, FoldersExpandedByDefault: false, AllowSpamFolder: true, AllowAddNewFolderOnMainScreen: false, ComposeToolbarOrder: ['back', 'send', 'save', 'importance', 'MailSensitivity', 'confirmation', 'OpenPgp'], DefaultFontName: 'Tahoma', DefaultFontSize: 3, AlwaysTryUseImageWhilePasting: true, AllowHorizontalLineButton: false, AllowComposePlainText: false, AllowEditHtmlSource: false, JoinReplyPrefixes: true, MailsPerPage: 20, AllowChangeStarredMessagesSource: false, StarredMessagesSource: Enums.StarredMessagesSource.InboxOnly, MaxMessagesBodiesSizeToPrefetch: 50000, MessageBodyTruncationThreshold: 650000, // in bytes MessagesSortBy: {}, ShowEmailAsTabName: true, AllowOtherModulesToReplaceTabsbarHeader: false, AllowShowMessagesCountInFolderList: false, showMessagesCountInFolderList: ko.observable(false), AllowSearchMessagesBySubject: false, PrefixesToRemoveBeforeSearchMessagesBySubject: [], AllowHorizontalLayout: false, HorizontalLayout: false, HorizontalLayoutByDefault: false, DisableRtlRendering: false, AllowQuickReply: false, AllowQuickSendOnCompose: false, AllowUserGroupsInComposeAutocomplete: true, MarkMessageSeenWhenViewing: true, MarkMessageSeenWhenAnswerForward: false, UserLoginPartInAccountDropdown: false, UseMeRecipientForMessages: true, userMailAccountsCount: ko.observable(0), mailAccountsEmails: ko.observableArray([]), ImageResizerOptions: { "%ModuleName%/ACTION_MAKE_IMAGE_SMALL": "300px", "%ModuleName%/ACTION_MAKE_IMAGE_MEDIUM": "600px", "%ModuleName%/ACTION_MAKE_IMAGE_LARGE": "1200px", "%ModuleName%/ACTION_MAKE_IMAGE_ORIGINAL": "" }, /** * Initializes settings from AppData object sections. * * @param {Object} oAppData Object contained modules settings. */ init: function (oAppData) { var oCoreDataSection = oAppData['Core'], oAppDataMailSection = oAppData[this.ServerModuleName], oAppDataMailWebclientSection = oAppData['%ModuleName%'], oAppDataFetchersSection = oAppData[this.FetchersServerModuleName], oAppDataAliasesSection = oAppData[this.AliasesServerModuleName] ; if (!_.isEmpty(oCoreDataSection)) { this.EnableMultiTenant = Types.pBool(oCoreDataSection.EnableMultiTenant, this.EnableMultiTenant); } if (!_.isEmpty(oAppDataMailSection)) { this.AllowAddAccounts = Types.pBool(oAppDataMailSection.AllowAddAccounts, this.AllowAddAccounts); this.AllowAutosaveInDrafts = Types.pBool(oAppDataMailSection.AllowAutosaveInDrafts, this.AllowAutosaveInDrafts); this.AllowChangeMailQuotaOnMailServer = Types.pBool(oAppDataMailSection.AllowChangeMailQuotaOnMailServer, this.AllowChangeMailQuotaOnMailServer); this.AllowDefaultAccountForUser = Types.pBool(oAppDataMailSection.AllowDefaultAccountForUser, this.AllowDefaultAccountForUser); this.AllowEditDomainsInServer = Types.pBool(oAppDataMailSection.AllowEditDomainsInServer, this.AllowEditDomainsInServer); this.AllowIdentities = Types.pBool(oAppDataMailSection.AllowIdentities, this.AllowIdentities); this.OnlyUserEmailsInIdentities = Types.pBool(oAppDataMailSection.OnlyUserEmailsInIdentities, this.OnlyUserEmailsInIdentities); this.AllowInsertImage = Types.pBool(oAppDataMailSection.AllowInsertImage, this.AllowInsertImage); this.AllowMultiAccounts = Types.pBool(oAppDataMailSection.AllowMultiAccounts, this.AllowMultiAccounts); this.AutoSaveIntervalSeconds = Types.pNonNegativeInt(oAppDataMailSection.AutoSaveIntervalSeconds, this.AutoSaveIntervalSeconds); this.AllowTemplateFolders = Types.pBool(oAppDataMailSection.AllowTemplateFolders, this.AllowTemplateFolders); this.AllowInsertTemplateOnCompose = Types.pBool(oAppDataMailSection.AllowInsertTemplateOnCompose, this.AllowInsertTemplateOnCompose); this.MaxTemplatesCountOnCompose = Types.pPositiveInt(oAppDataMailSection.MaxTemplatesCountOnCompose, this.MaxTemplatesCountOnCompose); this.AllowAlwaysRefreshFolders = Types.pBool(oAppDataMailSection.AllowAlwaysRefreshFolders, this.AllowAlwaysRefreshFolders); this.AutocreateMailAccountOnNewUserFirstLogin = Types.pBool(oAppDataMailSection.AutocreateMailAccountOnNewUserFirstLogin, this.AutocreateMailAccountOnNewUserFirstLogin); this.IgnoreImapSubscription = Types.pBool(oAppDataMailSection.IgnoreImapSubscription, this.IgnoreImapSubscription); this.ImageUploadSizeLimit = Types.pNonNegativeInt(oAppDataMailSection.ImageUploadSizeLimit, this.ImageUploadSizeLimit); this.AllowUnifiedInbox = Types.pBool(oAppDataMailSection.AllowUnifiedInbox, this.AllowUnifiedInbox); this.AllowScheduledAutoresponder = Types.pBool(oAppDataMailSection.AllowScheduledAutoresponder, this.AllowScheduledAutoresponder); window.Enums.SmtpAuthType = Types.pObject(oAppDataMailSection.SmtpAuthType); this.MessagesSortBy = _.clone(Types.pObject(oAppDataMailSection.MessagesSortBy, this.MessagesSortBy)); this.MessagesSortBy.Allow = Types.pBool(this.MessagesSortBy.Allow, false); this.MessagesSortBy.List = Types.pArray(this.MessagesSortBy.List, []); this.MessagesSortBy.DefaultSortBy = Types.pString(this.MessagesSortBy.DefaultSortBy, 'arrival'); var sOrder = Types.pString(this.MessagesSortBy.DefaultSortOrder, 'desc'); this.MessagesSortBy.DefaultSortOrder = sOrder === 'desc' ? Enums.SortOrder.Desc : Enums.SortOrder.Asc; } if (!_.isEmpty(oAppDataMailWebclientSection)) { this.AllowAppRegisterMailto = Types.pBool(oAppDataMailWebclientSection.AllowAppRegisterMailto, this.AllowAppRegisterMailto); this.AllowChangeInputDirection = Types.pBool(oAppDataMailWebclientSection.AllowChangeInputDirection, this.AllowChangeInputDirection); this.FoldersExpandedByDefault = Types.pBool(oAppDataMailWebclientSection.FoldersExpandedByDefault, this.FoldersExpandedByDefault); this.AllowSpamFolder = Types.pBool(oAppDataMailWebclientSection.AllowSpamFolder, this.AllowSpamFolder); this.AllowAddNewFolderOnMainScreen = Types.pBool(oAppDataMailWebclientSection.AllowAddNewFolderOnMainScreen, this.AllowAddNewFolderOnMainScreen); this.ComposeToolbarOrder = Types.pArray(oAppDataMailWebclientSection.ComposeToolbarOrder, this.ComposeToolbarOrder); this.DefaultFontName = Types.pString(oAppDataMailWebclientSection.DefaultFontName, this.DefaultFontName); this.DefaultFontSize = Types.pPositiveInt(oAppDataMailWebclientSection.DefaultFontSize, this.DefaultFontSize); this.AlwaysTryUseImageWhilePasting = Types.pBool(oAppDataMailWebclientSection.AlwaysTryUseImageWhilePasting, this.AlwaysTryUseImageWhilePasting); this.AllowHorizontalLineButton = Types.pBool(oAppDataMailWebclientSection.AllowHorizontalLineButton, this.AllowHorizontalLineButton); this.AllowComposePlainText = Types.pBool(oAppDataMailWebclientSection.AllowComposePlainText, this.AllowComposePlainText); this.AllowEditHtmlSource = Types.pBool(oAppDataMailWebclientSection.AllowEditHtmlSource, this.AllowEditHtmlSource); this.JoinReplyPrefixes = Types.pBool(oAppDataMailWebclientSection.JoinReplyPrefixes, this.JoinReplyPrefixes); this.MailsPerPage = Types.pPositiveInt(oAppDataMailWebclientSection.MailsPerPage, this.MailsPerPage); this.AllowChangeStarredMessagesSource = Types.pBool(oAppDataMailWebclientSection.AllowChangeStarredMessagesSource, this.AllowChangeStarredMessagesSource); if (this.AllowChangeStarredMessagesSource) { this.StarredMessagesSource = Types.pEnum(oAppDataMailWebclientSection.StarredMessagesSource, Enums.StarredMessagesSource, Enums.StarredMessagesSource.InboxOnly); } this.MaxMessagesBodiesSizeToPrefetch = Types.pNonNegativeInt(oAppDataMailWebclientSection.MaxMessagesBodiesSizeToPrefetch, this.MaxMessagesBodiesSizeToPrefetch); this.MessageBodyTruncationThreshold = Types.pNonNegativeInt(oAppDataMailWebclientSection.MessageBodyTruncationThreshold, this.MessageBodyTruncationThreshold); this.ShowEmailAsTabName = Types.pBool(oAppDataMailWebclientSection.ShowEmailAsTabName, this.ShowEmailAsTabName); this.AllowOtherModulesToReplaceTabsbarHeader = Types.pBool(oAppDataMailWebclientSection.AllowOtherModulesToReplaceTabsbarHeader, this.AllowOtherModulesToReplaceTabsbarHeader); this.AllowShowMessagesCountInFolderList = Types.pBool(oAppDataMailWebclientSection.AllowShowMessagesCountInFolderList, this.AllowShowMessagesCountInFolderList); this.showMessagesCountInFolderList(Types.pBool(oAppDataMailWebclientSection.ShowMessagesCountInFolderList, this.showMessagesCountInFolderList())); this.AllowSearchMessagesBySubject = Types.pBool(oAppDataMailWebclientSection.AllowSearchMessagesBySubject, this.AllowSearchMessagesBySubject); this.PrefixesToRemoveBeforeSearchMessagesBySubject = Types.pArray(oAppDataMailWebclientSection.PrefixesToRemoveBeforeSearchMessagesBySubject, this.PrefixesToRemoveBeforeSearchMessagesBySubject); this.AllowHorizontalLayout = Types.pBool(oAppDataMailWebclientSection.AllowHorizontalLayout, this.AllowHorizontalLayout); this.HorizontalLayoutByDefault = this.AllowHorizontalLayout && Types.pBool(oAppDataMailWebclientSection.HorizontalLayoutByDefault, this.HorizontalLayoutByDefault); this.HorizontalLayout = this.AllowHorizontalLayout && Types.pBool(oAppDataMailWebclientSection.HorizontalLayout, this.HorizontalLayoutByDefault); this.DisableRtlRendering = Types.pBool(oAppDataMailWebclientSection.DisableRtlRendering, this.DisableRtlRendering); this.AllowQuickReply = Types.pBool(oAppDataMailWebclientSection.AllowQuickReply, this.AllowQuickReply); this.AllowQuickSendOnCompose = Types.pBool(oAppDataMailWebclientSection.AllowQuickSendOnCompose, this.AllowQuickSendOnCompose); this.AllowUserGroupsInComposeAutocomplete = Types.pBool(oAppDataMailWebclientSection.AllowUserGroupsInComposeAutocomplete, this.AllowUserGroupsInComposeAutocomplete); this.MarkMessageSeenWhenViewing = Types.pBool(oAppDataMailWebclientSection.MarkMessageSeenWhenViewing, this.MarkMessageSeenWhenViewing); this.MarkMessageSeenWhenAnswerForward = Types.pBool(oAppDataMailWebclientSection.MarkMessageSeenWhenAnswerForward, this.MarkMessageSeenWhenAnswerForward); this.UserLoginPartInAccountDropdown = Types.pBool(oAppDataMailWebclientSection.UserLoginPartInAccountDropdown, this.UserLoginPartInAccountDropdown); this.UseMeRecipientForMessages = Types.pBool(oAppDataMailWebclientSection.UseMeRecipientForMessages, this.UseMeRecipientForMessages); this.ImageResizerOptions = Types.pObject(oAppDataMailWebclientSection.TextEditorImageResizerOptions, this.ImageResizerOptions); } if (!_.isEmpty(oAppDataFetchersSection)) { this.AllowFetchers = Types.pBool(oAppDataFetchersSection.AllowFetchers, this.AllowFetchers); } if (!_.isEmpty(oAppDataAliasesSection)) { this.AllowAliases = Types.pBool(oAppDataAliasesSection.AllowAliases, this.AllowAliases); } App.registerUserAccountsCount(this.userMailAccountsCount); App.registerAccountsWithPass(this.mailAccountsEmails); }, /** * Updates new settings values after saving on server. * * @param {object} parameters */ update: function (parameters) { this.AllowAutosaveInDrafts = Types.pBool(parameters.AllowAutosaveInDrafts, this.AllowAutosaveInDrafts); this.AllowChangeInputDirection = Types.pBool(parameters.AllowChangeInputDirection, this.AllowChangeInputDirection); this.MailsPerPage = Types.pPositiveInt(parameters.MailsPerPage, this.MailsPerPage); this.showMessagesCountInFolderList(Types.pBool(parameters.ShowMessagesCountInFolderList, this.showMessagesCountInFolderList())); this.StarredMessagesSource = Types.pEnum(parameters.StarredMessagesSource, Enums.StarredMessagesSource, Enums.StarredMessagesSource.InboxOnly); }, /** * Updates new admin settings values after saving on server. * * @param {boolean} bAutocreateMailAccountOnNewUserFirstLogin * @param {boolean} bAllowAddAccounts * @param {boolean} bHorizontalLayoutByDefault */ updateAdmin: function (bAutocreateMailAccountOnNewUserFirstLogin, bAllowAddAccounts, bHorizontalLayoutByDefault) { this.AutocreateMailAccountOnNewUserFirstLogin = Types.pBool(bAutocreateMailAccountOnNewUserFirstLogin, this.AutocreateMailAccountOnNewUserFirstLogin); this.AllowAddAccounts = Types.pBool(bAllowAddAccounts, this.AllowAddAccounts); this.HorizontalLayoutByDefault = Types.pBool(bHorizontalLayoutByDefault, this.HorizontalLayoutByDefault); }, disableEditDomainsInServer: function () { this.AllowEditDomainsInServer = false; } };