1: <?php
2: /**
3: * This code is licensed under AGPLv3 license or Afterlogic Software License
4: * if commercial version of the product was purchased.
5: * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
6: */
7:
8: namespace Aurora\Modules\CoreWebclient;
9:
10: use Aurora\System\SettingsProperty;
11:
12: /**
13: * @property bool $AllowChangeSettings
14: * @property bool $AllowClientDebug
15: * @property bool $AllowDesktopNotifications
16: * @property bool $AllowIosProfile
17: * @property bool $AllowMobile
18: * @property bool $AllowPrefetch
19: * @property int $AttachmentSizeLimit
20: * @property int $AutoRefreshIntervalMinutes
21: * @property string $ContentSecurityPolicy
22: * @property string $CustomLogoutUrl
23: * @property bool $Disabled
24: * @property string $DefaultAnonymScreenHash
25: * @property string $DefaultUserScreenHash
26: * @property string $GoogleAnalyticsAccount
27: * @property array $HeaderModulesOrder
28: * @property bool $IsDemo
29: * @property array $LanguageNames
30: * @property int $MultipleFilesUploadLimit
31: * @property bool $ShowQuotaBar
32: * @property bool $ShowQuotaBarTextAsTooltip
33: * @property int $QuotaWarningPerc
34: * @property bool $SyncIosAfterLogin
35: * @property string $Theme
36: * @property array $ThemeList
37: * @property bool $HideLogout
38: * @property bool $IncludeInMobile
39: */
40:
41: class Settings extends \Aurora\System\Module\Settings
42: {
43: protected function initDefaults()
44: {
45: $this->aContainer = [
46: "Disabled" => new SettingsProperty(
47: false,
48: "bool",
49: null,
50: "Setting to true disables the module",
51: ),
52: "AllowChangeSettings" => new SettingsProperty(
53: true,
54: "bool",
55: null,
56: "If true, users are allowed to select theme, language etc. in common settings screen",
57: ),
58: "AllowClientDebug" => new SettingsProperty(
59: false,
60: "bool",
61: null,
62: "Enables clientside debug logs, viewed by entering window.auroraLogs in browser console",
63: ),
64: "AllowDesktopNotifications" => new SettingsProperty(
65: false,
66: "bool",
67: null,
68: "Enables desktop notifications, the value is applied to new user accounts",
69: ),
70: "AllowIosProfile" => new SettingsProperty(
71: true,
72: "bool",
73: null,
74: "Enables retrieving account profile download when logging into web interface from iOS device",
75: ),
76: "AllowMobile" => new SettingsProperty(
77: false,
78: "bool",
79: null,
80: "Enables mobile version of web interface and automatically switches to it on Android or iOS smartphone",
81: ),
82: "AllowPrefetch" => new SettingsProperty(
83: true,
84: "bool",
85: null,
86: "Enables downloading message bodies in background, to display messages instantly upon selecting those",
87: ),
88: "AttachmentSizeLimit" => new SettingsProperty(
89: 0,
90: "int",
91: null,
92: "Attachment file size limit for upload, in bytes",
93: ),
94: "AutoRefreshIntervalMinutes" => new SettingsProperty(
95: 1,
96: "int",
97: null,
98: "Default value for auto refresh interval in minutes",
99: ),
100: "ContentSecurityPolicy" => new SettingsProperty(
101: "",
102: "string",
103: null,
104: "Specifies CSP header used for protection from cross-site scripting, clickjacking, code injection attacks",
105: ),
106: "CustomLogoutUrl" => new SettingsProperty(
107: "",
108: "string",
109: null,
110: "Specifies URL user will be redirected to upon logging out of their account",
111: ),
112: "DefaultAnonymScreenHash" => new SettingsProperty(
113: "login",
114: "string",
115: null,
116: "Hash ID of the screen available to non-logged in user by default",
117: ),
118: "DefaultUserScreenHash" => new SettingsProperty(
119: "",
120: "string",
121: null,
122: "Hash ID of the screen available to logged in user by default",
123: ),
124: "GoogleAnalyticsAccount" => new SettingsProperty(
125: "",
126: "string",
127: null,
128: "If specified, Google Analytics code will be loaded with this account ID used",
129: ),
130: "HeaderModulesOrder" => new SettingsProperty(
131: [],
132: "array",
133: null,
134: "Denotes the list of top menu items in the order how they're displayed",
135: ),
136: "IsDemo" => new SettingsProperty(
137: false,
138: "bool",
139: null,
140: "Enables warnings of demo limitations, used by various modules",
141: ),
142: "LanguageNames" => new SettingsProperty(
143: [
144:
145: "Arabic" => "\u0627\u0644\u0639\u0631\u0628\u064a\u0629",
146: "Bulgarian" => "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",
147: "Chinese-Simplified" => "\u4e2d\u6587(\u7b80\u4f53)",
148: "Chinese-Traditional" => "\u4e2d\u6587(\u9999\u6e2f)",
149: "Czech" => "\u010ce\u0161tina",
150: "Danish" => "Dansk",
151: "Dutch" => "Nederlands",
152: "English" => "English",
153: "Estonian" => "eesti",
154: "Finnish" => "Suomi",
155: "French" => "Fran\u00e7ais",
156: "German" => "Deutsch",
157: "Greek" => "\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac",
158: "Hebrew" => "\u05e2\u05d1\u05e8\u05d9\u05ea",
159: "Hungarian" => "Magyar",
160: "Italian" => "Italiano",
161: "Japanese" => "\u65e5\u672c\u8a9e",
162: "Korean" => "\ud55c\uad6d\uc5b4",
163: "Latvian" => "Latvie\u0161u",
164: "Lithuanian" => "Lietuvi\u0173",
165: "Norwegian" => "Norsk",
166: "Persian" => "\u0641\u0627\u0631\u0633\u06cc",
167: "Polish" => "Polski",
168: "Portuguese-Portuguese" => "Portugu\u00eas",
169: "Portuguese-Brazil" => "Portugu\u00eas Brasileiro",
170: "Romanian" => "Rom\u00e2n\u0103",
171: "Russian" => "\u0420\u0443\u0441\u0441\u043a\u0438\u0439",
172: "Serbian" => "Srpski",
173: "Slovenian" => "Sloven\u0161\u010dina",
174: "Spanish" => "Espa\u00f1ol",
175: "Swedish" => "Svenska",
176: "Thai" => "\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22",
177: "Turkish" => "T\u00fcrk\u00e7e",
178: "Ukrainian" => "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",
179: "Vietnamese" => "ti\u1ebfng Vi\u1ec7t"
180: ],
181: "array",
182: null,
183: "Mapping of language names and their local translations",
184: ),
185: "MultipleFilesUploadLimit" => new SettingsProperty(
186: 50,
187: "int",
188: null,
189: "Defines a limit for number of files uploaded during a single user request",
190: ),
191: "ShowQuotaBar" => new SettingsProperty(
192: true,
193: "bool",
194: null,
195: "If true, indicator of disk space usage by email or files will be displayed in the interface",
196: ),
197: "ShowQuotaBarTextAsTooltip" => new SettingsProperty(
198: true,
199: "bool",
200: null,
201: "If true, quota information will only be shown as the tooltip of the indicator; if false, it's shown directly in the interface",
202: ),
203: "QuotaWarningPerc" => new SettingsProperty(
204: 0,
205: "int",
206: null,
207: "Enables warning if percentage of free disk space for email account is less than this value",
208: ),
209: "SyncIosAfterLogin" => new SettingsProperty(
210: true,
211: "bool",
212: null,
213: "",
214: ),
215: "Theme" => new SettingsProperty(
216: "Default",
217: "string",
218: null,
219: "Theme used by default",
220: ),
221: "ThemeList" => new SettingsProperty(
222: [
223: "Default"
224: ],
225: "array",
226: null,
227: "List of themes available",
228: ),
229: "HideLogout" => new SettingsProperty(
230: false,
231: "bool",
232: null,
233: "If true, Logout link will be hidden",
234: ),
235: "IncludeInMobile" => new SettingsProperty(
236: true,
237: "bool",
238: null,
239: "If true, the module is used in mobile version of the interface",
240: ),
241: ];
242: }
243: }
244: