]>
Commit | Line | Data |
---|---|---|
1635a4ae IB |
1 | /* |
2 | InfCloud - the open source CalDAV/CardDAV Web Client | |
3 | Copyright (C) 2011-2015 | |
4 | Jan Mate <jan.mate@inf-it.com> | |
5 | Andrej Lezo <andrej.lezo@inf-it.com> | |
6 | Matej Mihalik <matej.mihalik@inf-it.com> | |
7 | ||
8 | This program is free software: you can redistribute it and/or modify | |
9 | it under the terms of the GNU Affero General Public License as | |
10 | published by the Free Software Foundation, either version 3 of the | |
11 | License, or (at your option) any later version. | |
12 | ||
13 | This program is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU Affero General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU Affero General Public License | |
19 | along with this program. If not, see <http://www.gnu.org/licenses/>. | |
20 | */ | |
21 | ||
22 | ||
23 | // NOTE: see readme.txt before you start to configure this client! | |
24 | ||
25 | ||
26 | // NOTE: do not forget to execute the cache_update.sh script every time you | |
27 | // update this configuration file or any other files (otherwise your browser | |
28 | // will use the previous version of files stored in HTML5 cache). Alternatively | |
29 | // you can update the cache.manifest manually - edit the second line beginning | |
30 | // with "#V 20" to anything else (this file simple needs "some" change) | |
31 | ||
32 | ||
33 | // Supported setup types (use ONE of them): | |
34 | // a.) globalAccountSettings => username and password is hardcoded | |
35 | // in config.js, automatic login without the login screen | |
36 | // - advantages: fast login process = no username/password is required | |
37 | // - disadvantages: username/password is visible in your config.js, so | |
38 | // this type of setup is recommended ONLY for intranet/home users | |
39 | // b.) globalNetworkCheckSettings => standard setup with login screen | |
40 | // - advantages: username/password is required (no visible | |
41 | // username/password in config.js) | |
42 | // - disadvantages: if a user enters wrong username/password then | |
43 | // the browser will show authentication popup window (it is NOT | |
44 | // possible to disable it in JavaScript; see the next option) | |
45 | // c.) globalNetworkAccountSettings => advanced setup with login screen | |
46 | // - advantages: no authentication popup if you enter wrong username/ | |
47 | // password, dynamic XML configuration generator (you can generate | |
48 | // different configurations for your users /by modifying the "auth" | |
49 | // module configuration or the PHP code itself/) | |
50 | // - disadvantages: requires PHP >= 5.3 and additional configuration, | |
51 | // only basic http authentication is supported => always use https! | |
52 | // | |
53 | // | |
54 | // What is a "principal URL"? => Check you server documentation! | |
55 | // - "principal URL" is NOT "collection URL" | |
56 | // - this client automatically detects collections for "principal URL" | |
57 | // - PROPER "principal URL" looks like: | |
58 | // https://server.com:8443/principals/users/USER/ | |
59 | // https://server.com:8443/caldav.php/USER/ | |
60 | // - INVALID principal URL looks like: | |
61 | // https://server.com:8443/principals/users/USER/collection/ | |
62 | // => this is a collection URL | |
63 | // https://server.com:8443/caldav.php/USER/collection/ | |
64 | // => this is a collection URL | |
65 | // https://server.com:8443/principals/users/USER | |
66 | // => missing trailing '/' | |
67 | // https://server.com:8443/caldav.php/USER | |
68 | // => missing trailing '/' | |
69 | // /caldav.php/USER/ | |
70 | // => relative URL instead of full URL | |
71 | // | |
72 | // | |
73 | // List of properties used in globalAccountSettings, globalNetworkCheckSettings | |
74 | // and globalNetworkAccountSettings variables (+ in the "auth" module): | |
75 | // - href | |
76 | // Depending on the setup type set the value to: | |
77 | // a.) globalAccountSettings: full "principal URL" | |
78 | // b.) globalNetworkCheckSettings: "principal URL" WITHOUT the "USER/" part | |
79 | // c.) globalNetworkAccountSettings: "full URL" to the "auth" directory | |
80 | // This property is supported in: | |
81 | // globalAccountSettings | |
82 | // globalNetworkCheckSettings | |
83 | // globalNetworkAccountSettings | |
84 | // - userAuth | |
85 | // - userName | |
86 | // Set the username you want to login. | |
87 | // - userPassword | |
88 | // Set the password for the given username. | |
89 | // This property is supported in: | |
90 | // globalAccountSettings | |
91 | // - timeOut | |
92 | // This option sets the timeout for jQuery .ajax call (in miliseconds). | |
93 | // Example: | |
94 | // timeOut: 90000 | |
95 | // This property is supported in: | |
96 | // globalAccountSettings | |
97 | // globalNetworkCheckSettings | |
98 | // globalNetworkAccountSettings | |
99 | // - lockTimeOut | |
100 | // NOTE: used only if server supports LOCK requests | |
101 | // This option sets the LOCK timeout value if resource locking | |
102 | // is used (in miliseconds). | |
103 | // Example: | |
104 | // lockTimeOut: 10000 | |
105 | // This property is supported in: | |
106 | // globalAccountSettings | |
107 | // globalNetworkCheckSettings | |
108 | // globalNetworkAccountSettings (available in auth module only) | |
109 | // - checkContentType | |
110 | // This option enables a content-type checking for server response. | |
111 | // If enabled then only objects with proper content-type are inserted | |
112 | // into the interface. | |
113 | // If you cannot see data in the interface you may try to disable it (useful | |
114 | // if your server returns wrong value in "propstat/prop/getcontenttype"). | |
115 | // If undefined then content-type checking is enabled. | |
116 | // Examples: | |
117 | // checkContentType: true | |
118 | // checkContentType: false | |
119 | // This property is supported in: | |
120 | // globalAccountSettings | |
121 | // globalNetworkCheckSettings | |
122 | // globalNetworkAccountSettings (available in auth module only) | |
123 | // - settingsAccount | |
124 | // NOTE: server support for custom DAV properties is REQUIRED! | |
125 | // This option sets the account where the client properties such as: | |
126 | // loaded collections, enabled collections, ... are saved during | |
127 | // the logout and resource/collection synchronisation | |
128 | // NOTE: set it to true ONLY for ONE account! | |
129 | // Examples: | |
130 | // settingsAccount: true | |
131 | // settingsAccount: false | |
132 | // This property is supported in: | |
133 | // globalAccountSettings | |
134 | // globalNetworkCheckSettings | |
135 | // globalNetworkAccountSettings (available in auth module only) | |
136 | // - delegation | |
137 | // NOTE: server support for this functionality is REQUIRED! | |
138 | // This option allows you to load delegated (shared) collections. | |
139 | // If set to true (default) then delegation functionality is enabled, | |
140 | // and the interface allows you to load delegated collections. | |
141 | // If false then delegation functionality is completely disabled. | |
142 | // Examples: | |
143 | // delegation: true | |
144 | // delegation: false | |
145 | // This property is supported in: | |
146 | // globalAccountSettings | |
147 | // globalNetworkCheckSettings | |
148 | // globalNetworkAccountSettings (available in auth module only) | |
149 | // - additionalResources | |
150 | // This options sets the list of additional resources (e.g. shared resources | |
151 | // accessible by all users). If the server supports delegation (see | |
152 | // the delegation option above) there is no reason to use this option! | |
153 | // Supported values: | |
154 | // - array of URL encoded resource names (not collections), such as: | |
155 | // 'company' | |
156 | // 'shared_resource' | |
157 | // If empty (default) or undefined then shared resources are not loaded | |
158 | // using this option, but may be loaded using the delegation option. | |
159 | // Examples: | |
160 | // additionalResources=[] | |
161 | // additionalResources=['public', 'shared_resource'] | |
162 | // This property is supported in: | |
163 | // globalNetworkCheckSettings | |
164 | // - hrefLabel | |
165 | // This option sets the server name in the resource header (useful if | |
166 | // you want to see custom resource header above the collections). | |
167 | // You can use the following variables in the value: | |
168 | // %H = full hostname (including the port number) | |
169 | // %h = full hostname (without the port number) | |
170 | // %D = full domain name | |
171 | // %d = only the first and second level domain | |
172 | // %P = principal name | |
173 | // %p = principal name without the @domain.com part (if present) | |
174 | // %U = logged user name | |
175 | // %u = logged user name without the @domain.com part (if present) | |
176 | // If undefined, empty or or null then '%d/%p [%u]' is used. | |
177 | // Examples: | |
178 | // hrefLabel: '%d/%p [%u]' | |
179 | // hrefLabel: '%D/%u' | |
180 | // This property is supported in: | |
181 | // globalAccountSettings | |
182 | // globalNetworkCheckSettings | |
183 | // globalNetworkAccountSettings (available in auth module only) | |
184 | // - forceReadOnly | |
185 | // This option sets the list of collections as "read-only". | |
186 | // Supported values: | |
187 | // - true | |
188 | // all collections will be "read-only" | |
189 | // - array of URL encoded | |
190 | // - collections, such as: | |
191 | // '/caldav.php/user/calendar/' | |
192 | // '/caldav.php/user%40domain.com/calendar/' | |
193 | // - regexes, such as: | |
194 | // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i') | |
195 | // specifies the list of collections marked as "read-only" | |
196 | // If null (default) or undefined then server detected privileges are used. | |
197 | // Examples: | |
198 | // forceReadOnly: null | |
199 | // forceReadOnly: true | |
200 | // forceReadOnly: ['/caldav.php/user/calendar/', | |
201 | // '/caldav.php/user/calendar2/'] | |
202 | // forceReadOnly: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')] | |
203 | // This property is supported in: | |
204 | // globalAccountSettings | |
205 | // globalNetworkCheckSettings | |
206 | // globalNetworkAccountSettings (available in auth module only, with | |
207 | // different syntax for regexes) | |
208 | // - ignoreAlarms | |
209 | // This option sets list of calendar collections with disabled | |
210 | // alarm functionality. | |
211 | // Supported values: | |
212 | // - true | |
213 | // alarm functionality is disabled for all collections | |
214 | // - array of URL encoded | |
215 | // - collections, such as: | |
216 | // '/caldav.php/user/calendar/' | |
217 | // '/caldav.php/user%40domain.com/calendar/' | |
218 | // - regexes, such as: | |
219 | // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i') | |
220 | // specifies the list of collections with disabled alarm functionality. | |
221 | // If false (default) or undefined then alarm functionality is enabled | |
222 | // for all collections. | |
223 | // Examples: | |
224 | // ignoreAlarms: true | |
225 | // ignoreAlarms: ['/caldav.php/user/calendar/', | |
226 | // '/caldav.php/user/calendar2/'] | |
227 | // ignoreAlarms: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')] | |
228 | // This property is supported in: | |
229 | // globalAccountSettings | |
230 | // globalNetworkCheckSettings | |
231 | // globalNetworkAccountSettings (available in auth module only, with | |
232 | // different syntax for regexes) | |
233 | // - backgroundCalendars | |
234 | // This options defines a list of background calendars. If there is | |
235 | // at least one event defined for the given day in a background calendar, | |
236 | // the background color for that day will be pink/light-red. | |
237 | // Supported values: | |
238 | // - array of URL encoded | |
239 | // - collections, such as: | |
240 | // '/caldav.php/user/calendar/' | |
241 | // '/caldav.php/user%40domain.com/calendar/' | |
242 | // - regexes, such as: | |
243 | // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i') | |
244 | // specifies the list of background calendar collections. | |
245 | // Examples: | |
246 | // backgroundCalendars: ['/caldav.php/user/calendar/', | |
247 | // '/caldav.php/user/calendar2/'] | |
248 | // backgroundCalendars: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')] | |
249 | // This property is supported in: | |
250 | // globalAccountSettings | |
251 | // globalNetworkCheckSettings | |
252 | // globalNetworkAccountSettings (available in auth module only, with | |
253 | // different syntax for regexes) | |
254 | // Special options not present in configuration examples: | |
255 | // NOTE: use ONLY if you know what are you doing! | |
256 | // - crossDomain | |
257 | // This option sets the crossDomain for jQuery .ajax call. If null (default) | |
258 | // then the value is autodetected /and the result is shown in the console/ | |
259 | // - withCredentials | |
260 | // This option sets the withCredentials for jQuery .ajax call. The default | |
261 | // value is false and there is NO REASON to change it to true! | |
262 | // NOTE: if true, Access-Control-Allow-Origin "*" (CORS header) not works! | |
263 | ||
264 | ||
265 | // globalAccountSettings | |
266 | // Use this option if you want to use automatic login (without a login | |
267 | // screen) with hardcoded username/password in config.js. Otherwise use | |
268 | // globalNetworkCheckSettings or globalNetworkAccountSettings (see below). | |
269 | // NOTE: if this option is used the value must be an array of object(s). | |
270 | // List of properties used in globalAccountSettings variable: | |
271 | // - href | |
272 | // Set this option to the full "principal URL". | |
273 | // NOTE: the last character in the value must be '/' | |
274 | // - userAuth | |
275 | // - userName | |
276 | // Set the username you want to login. | |
277 | // - userPassword | |
278 | // Set the password for the given username. | |
279 | // NOTE: for description of other properties see comments at the beginning | |
280 | // of this file. | |
281 | // NOTE: for minimal/fast setup you need to set only the href and userAuth | |
282 | // options. It is safe/recommended to keep the remaining options unchanged! | |
283 | // Example: | |
284 | //var globalAccountSettings=[ | |
285 | // { | |
286 | // href: 'https://server1.com:8443/caldav.php/USERNAME1/', | |
287 | // userAuth: | |
288 | // { | |
289 | // userName: 'USERNAME1', | |
290 | // userPassword: 'PASSWORD1' | |
291 | // }, | |
292 | // timeOut: 90000, | |
293 | // lockTimeOut: 10000, | |
294 | // checkContentType: true, | |
295 | // settingsAccount: true, | |
296 | // delegation: true, | |
297 | // hrefLabel: null, | |
298 | // forceReadOnly: null, | |
299 | // ignoreAlarms: false, | |
300 | // backgroundCalendars: [] | |
301 | // }, | |
302 | // { | |
303 | // href: 'https://server2.com:8443/caldav.php/USERNAME2/', | |
304 | // ... | |
305 | // ... | |
306 | // } | |
307 | //]; | |
308 | ||
309 | ||
310 | // globalNetworkCheckSettings | |
311 | // Use this option if you want to use standard login screen without | |
312 | // hardcoded username/password in config.js (used by globalAccountSettings). | |
313 | // NOTE: if this option is used the value must be an object. | |
314 | // List of properties used in globalAccountSettings variable: | |
315 | // - href | |
316 | // Set this option to the "principal URL" WITHOUT the "USERNAME/" | |
317 | // part (this options uses the username from the login screen). | |
318 | // NOTE: the last character in the value must be '/' | |
319 | // NOTE: for description of other properties see comments at the beginning | |
320 | // of this file. | |
321 | // NOTE: for minimal/fast setup you need to set only the href option. It is | |
322 | // safe/recommended to keep the remaining options unchanged! | |
323 | // Example href values: | |
324 | // OS X server http example (see misc/readme_osx.txt for server setup): | |
325 | // href: 'http://osx.server.com:8008/principals/users/' | |
326 | // OS X server https example (see misc/readme_osx.txt for server setup): | |
327 | // href: 'https://osx.server.com:8443/principals/users/' | |
328 | // Cyrus server https example: | |
329 | // href: 'https://cyrus.server.com/dav/principals/user/' | |
330 | // Example: | |
331 | // Davical example which automatically detects the protocol, server name, | |
332 | // port, ... (client installed into Davical "htdocs" subdirectory; | |
333 | // works "out of the box", no additional setup required): | |
334 | var globalNetworkCheckSettings={ | |
d9998b44 | 335 | href: location.protocol+'//'+location.hostname+ |
1635a4ae IB |
336 | (location.port ? ':'+location.port: '')+ |
337 | location.pathname.replace(RegExp('/+[^/]+/*(index\.html)?$'),'')+ | |
338 | '/caldav.php/', | |
339 | timeOut: 90000, | |
340 | lockTimeOut: 10000, | |
341 | checkContentType: true, | |
342 | settingsAccount: true, | |
343 | delegation: true, | |
344 | additionalResources: [], | |
345 | hrefLabel: null, | |
346 | forceReadOnly: null, | |
347 | ignoreAlarms: false, | |
348 | backgroundCalendars: [] | |
349 | } | |
350 | ||
351 | ||
352 | // globalNetworkAccountSettings | |
353 | // Try this option ONLY if you have working setup using | |
354 | // globalNetworkCheckSettings and want to fix the authentication popup | |
355 | // window problem (if invalid username/password is entered)! | |
356 | // If you use this option then your browser sends username/password to the PHP | |
357 | // "auth" module ("auth" directory) instead of the DAV server itself. | |
358 | // The "auth" module then validates your username/password against your server, | |
359 | // and if the authentication is successful, then it sends back a configuration | |
360 | // XML (requires additional configuration). The resulting XML is handled | |
361 | // IDENTICALLY as the globalAccountSettings configuration option. | |
362 | // NOTE: for the "auth" module configuration see readme.txt! | |
363 | // NOTE: this option invokes a login screen and disallows access until | |
364 | // the client gets correct XML configuration file from the server! | |
365 | // List of properties used in globalNetworkAccountSettings variable: | |
366 | // - href | |
367 | // Set this option to the "full URL" of the "auth" directory | |
368 | // NOTE: the last character in the value must be '/' | |
369 | // NOTE: for description of other properties see comments at the beginning | |
370 | // of this file. | |
371 | // Example href values: | |
372 | // href: 'https://server.com/client/auth/' | |
373 | // Example: | |
374 | // Use this configuration if the "auth" module is located in the client | |
375 | // installation subdirectory (default): | |
376 | //var globalNetworkAccountSettings={ | |
377 | // href: location.protocol+'//'+location.hostname+ | |
378 | // (location.port ? ':'+location.port : '')+ | |
379 | // location.pathname.replace(RegExp('index\.html$'),'')+ | |
380 | // 'auth/', | |
381 | // timeOut: 30000 | |
382 | //}; | |
383 | ||
384 | ||
385 | // globalUseJqueryAuth | |
386 | // Use jQuery .ajax() auth or custom header for HTTP basic auth (default). | |
387 | // Set this option to true if your server uses digest auth (note: you may | |
388 | // experience auth popups on some browsers). | |
389 | // If undefined (or empty), custom header for HTTP basic auth is used. | |
390 | // Example: | |
391 | //var globalUseJqueryAuth=false; | |
392 | ||
393 | ||
394 | // globalBackgroundSync | |
395 | // Enable background synchronization even if the browser window/tab has no | |
396 | // focus. | |
397 | // If false, synchronization is performed only if the browser window/tab | |
398 | // is focused. If undefined or not false, then background sync is enabled. | |
399 | // Example: | |
400 | var globalBackgroundSync=true; | |
401 | ||
402 | ||
403 | // globalSyncResourcesInterval | |
404 | // This option defines how often (in miliseconds) are resources/collections | |
405 | // asynchronously synchronized. | |
406 | // Example: | |
407 | var globalSyncResourcesInterval=120000; | |
408 | ||
409 | ||
410 | // globalEnableRefresh | |
411 | // This option enables or disables the manual synchronization button in | |
412 | // the interface. If this option is enabled then users can perform server | |
413 | // synchronization manually. Enabling this option may cause high server | |
414 | // load (even DDOS) if users will try to manually synchronize data too | |
415 | // often (instead of waiting for the automatic synchronization). | |
416 | // If undefined or false, the synchronization button is disabled. | |
417 | // NOTE: enable this option only if you really know what are you doing! | |
418 | // Example: | |
419 | var globalEnableRefresh=false; | |
420 | ||
421 | ||
422 | // globalEnableKbNavigation | |
423 | // Enable basic keyboard navigation using arrow keys? | |
424 | // If undefined or not false, keyboard navigation is enabled. | |
425 | // Example: | |
426 | var globalEnableKbNavigation=true; | |
427 | ||
428 | ||
429 | // globalSettingsType | |
430 | // Where to store user settings such as: active view, enabled/selected | |
431 | // collections, ... (the client store them into DAV property on the server). | |
432 | // NOTE: not all servers support storing DAV properties (some servers support | |
433 | // only subset /or none/ of these URLs). | |
434 | // Supported values: | |
435 | // - 'principal-URL', '', null or undefined (default) => settings are stored | |
436 | // to principal-URL (recommended for most servers) | |
437 | // - 'addressbook-home-set' => settings are are stored to addressbook-home-set | |
438 | // - 'calendar-home-set' => settings are stored to calendar-home-set | |
439 | // Example: | |
440 | //var globalSettingsType=''; | |
441 | ||
442 | ||
443 | // globalCrossServerSettingsURL | |
444 | // Settings such as enabled/selected collections are stored on the server | |
445 | // (see the previous option) in form of full URL | |
446 | // (e.g.: https://user@server:port/principal/collection/), but even if this | |
447 | // approach is "correct" (you can use the same principal URL with multiple | |
448 | // different logins, ...) it causes a problem if your server is accessible | |
449 | // from multiple URLs (e.g. http://server/ and https://server/). If you want | |
450 | // to store only the "principal/collection/" part of the URL (instead of the | |
451 | // full URL) then enable this option. | |
452 | // Example: | |
453 | //var globalCrossServerSettingsURL=false; | |
454 | ||
455 | ||
456 | // globalInterfaceLanguage | |
457 | // Default interface language (note: this option is case sensitive): | |
458 | // cs_CZ (ÄeÅ”tina [Czech]) | |
459 | // da_DK (Dansk [Danish]; thanks Niels Bo Andersen) | |
460 | // de_DE (Deutsch [German]; thanks Marten Gajda and Thomas Scheel) | |
461 | // en_US (English [English/US]) | |
462 | // es_ES (EspaƱol [Spanish]; thanks DamiƔn Vila) | |
463 | // fr_FR (FranƧais [French]; thanks John Fischer) | |
464 | // it_IT (Italiano [Italian]; thanks Luca Ferrario) | |
465 | // ja_JP (ę„ę¬čŖ [Japan]; thanks Muimu Nakayama) | |
466 | // hu_HU (Magyar [Hungarian]) | |
467 | // nl_NL (Nederlands [Dutch]; thanks Johan Vromans) | |
468 | // sk_SK (SlovenÄina [Slovak]) | |
469 | // tr_TR (TĆ¼rkƧe [Turkish]; thanks Selcuk Pultar) | |
470 | // ru_RU (Š ŃŃŃŠŗŠøŠ¹ [Russian]; thanks ŠŠ»ŠµŠŗŃŠ°Š½Š“Ń Š”ŠøŠ¼Š¾Š½Š¾Š²) | |
471 | // uk_UA (Š£ŠŗŃŠ°ŃŠ½ŃŃŠŗŠ° [Ukrainian]; thanks Serge Yakimchuck) | |
472 | // zh_CN (äøå½ [Chinese]; thanks Fandy) | |
473 | // Example: | |
474 | var globalInterfaceLanguage='fr_FR'; | |
475 | ||
476 | ||
477 | // globalInterfaceCustomLanguages | |
478 | // If defined and not empty then only languages listed here are shown | |
479 | // at the login screen, otherwise (default) all languages are shown | |
480 | // NOTE: values in the array must refer to an existing localization | |
481 | // (see the option above) | |
482 | // Example: | |
483 | // globalInterfaceCustomLanguages=['en_US', 'sk_SK']; | |
484 | var globalInterfaceCustomLanguages=[]; | |
485 | ||
486 | ||
487 | // globalSortAlphabet | |
488 | // Use JavaScript localeCompare() or custom alphabet for data sorting. | |
489 | // Custom alphabet is used by default because JavaScript localeCompare() | |
490 | // not supports collation and often returns "wrong" result. If set to null | |
491 | // then localeCompare() is used. | |
492 | // Example: | |
493 | // var globalSortAlphabet=null; | |
494 | var globalSortAlphabet=' 0123456789'+ | |
495 | 'AĆĆĆĆĆĆĆ ÄBCĆÄÄDÄEĆĆĆĆÄÄÄÄFGÄHIĆĆĆÄ°ĆÄŖÄ®JKLÅĹĽMNÅĆÅOĆĆĆĆÅÅĆĆÅ'+ | |
496 | 'PQRÅÅSÅÅ ČČÅÅįŗTŤČČŢţUĆĆĆĆÅ°Å®ÅŖVWXYĆÅøZŹŻŽ'+ | |
497 | 'aĆ Ć”Ć¢Ć¤Ć¦Ć£Ć„ÄbcƧÄÄdÄeĆØĆ©ĆŖĆ«ÄÄÄÄfgÄhiƬĆĆ®ĆÆÄ«ÄÆıjklÅÄŗľmnÅƱÅoĆ²Ć³Ć“Ć¶ÅÅĆøƵÅ'+ | |
498 | 'pqrÅÅsÅÅ”ĆtÅ„uĆ¹ĆŗĆ»Ć¼Å±ÅÆÅ«vwxyĆ½ĆæzÅŗżžŠŠŠŠŅŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©Š®ŠÆ'+ | |
499 | 'Š¬Š°Š±Š²Š³ŅŠ“ŠµŃŠ¶Š·ŠøŃŃŠ¹ŠŗŠ»Š¼Š½Š¾ŠæŃŃŃŃŃŃ ŃŃŃŃŃŃŃ'; | |
500 | ||
501 | ||
502 | // globalSearchTransformAlphabet | |
503 | // To support search without diacritics (e.g. search for 'd' will find: 'Ä', 'Ä') | |
504 | // it is required to define something like "character equivalence". | |
505 | // key = regex text, value = search character | |
506 | // Example: | |
507 | var globalSearchTransformAlphabet={ | |
508 | '[ĆĆ ĆĆ”ĆĆ¢ĆƤĆƦĆĆ£Ć Ć„ÄÄ]': 'a', '[ĆƧÄÄÄÄ]': 'c', '[ÄÄ]': 'd', | |
509 | '[ĆĆØĆĆ©ĆĆŖĆĆ«ÄÄÄÄÄÄÄÄ]': 'e', '[ÄÄ]': 'g', '[ĆƬĆĆĆƮİıĆĆÆÄŖÄ«Ä®ÄÆ]': 'i', | |
510 | '[ÅÅĹÄŗĽľ]': 'l', '[ÅÅĆƱÅÅ]': 'n', '[ĆĆ²ĆĆ³ĆĆ“ĆƶÅÅÅÅĆĆøĆƵÅÅ]': 'o', | |
511 | '[ÅÅÅÅ]': 'r', '[ÅÅÅ Å”ČČÅÅįŗĆ]': 's', '[ŤńČČŢţ]': 't', | |
512 | '[ĆĆ¹ĆĆŗĆĆ»ĆĆ¼Å°Å±Å®ÅÆÅŖÅ«]': 'u', '[ĆĆ½ÅøĆæ]': 'y', '[ŹÅŗŻżŽž]': 'z' | |
513 | }; | |
514 | ||
515 | // globalResourceAlphabetSorting | |
516 | // If more than one resource (server account) is configured, sort the | |
517 | // resources alphabetically? | |
518 | // Example: | |
519 | var globalResourceAlphabetSorting=true; | |
520 | ||
521 | ||
522 | // globalNewVersionNotifyUsers | |
523 | // Update notification will be shown only to users with login names defined | |
524 | // in this array. | |
525 | // If undefined (or empty), update notifications will be shown to all users. | |
526 | // Example: | |
527 | // globalNewVersionNotifyUsers=['admin', 'peter']; | |
528 | var globalNewVersionNotifyUsers=[]; | |
529 | ||
530 | ||
531 | // globalDatepickerFormat | |
532 | // Set the datepicker format (see | |
533 | // http://docs.jquery.com/UI/Datepicker/formatDate for valid values). | |
534 | // NOTE: date format is predefined for each localization - use this option | |
535 | // ONLY if you want to use custom date format (instead of the localization | |
536 | // predefined one). | |
537 | // Example: | |
538 | //var globalDatepickerFormat='dd.mm.yy'; | |
539 | var globalDatepickerFormat='yy-mm-dd'; | |
540 | ||
541 | ||
542 | // globalDatepickerFirstDayOfWeek | |
543 | // Set the datepicker first day of the week: Sunday is 0, Monday is 1, etc. | |
544 | // Example: | |
545 | var globalDatepickerFirstDayOfWeek=1; | |
546 | ||
547 | ||
548 | // globalHideInfoMessageAfter | |
549 | // How long are information messages (such as: success, error) displayed | |
550 | // (in miliseconds). | |
551 | // Example: | |
552 | var globalHideInfoMessageAfter=1800; | |
553 | ||
554 | ||
555 | // globalEditorFadeAnimation | |
556 | // Set the editor fade in/out animation duration when editing or saving data | |
557 | // (in miliseconds). | |
558 | // Example: | |
559 | var globalEditorFadeAnimation=666; | |
560 | ||
561 | ||
562 | ||
563 | ||
564 | // ******* CalDAV (CalDavZAP) related settings ******* // | |
565 | ||
566 | // globalEventStartPastLimit, globalEventStartFutureLimit, globalTodoPastLimit | |
567 | // Number of months pre-loaded from past/future in advance for calendars | |
568 | // and todo lists (if null then date range synchronization is disabled). | |
569 | // NOTE: interval synchronization is used only if your server supports | |
570 | // sync-collection REPORT (e.g. DAViCal). | |
571 | // NOTE: if you experience problems with data loading and your server has | |
572 | // no time-range filtering support set these variables to null. | |
573 | // Example: | |
574 | var globalEventStartPastLimit=3; | |
575 | var globalEventStartFutureLimit=3; | |
576 | var globalTodoPastLimit=1; | |
577 | ||
578 | ||
579 | // globalLoadedCalendarCollections | |
580 | // This option sets the list of calendar collections (down)loaded after login. | |
581 | // If empty then all calendar collections for the currently logged user are | |
582 | // loaded. | |
583 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
584 | // option. | |
585 | // Example: | |
586 | var globalLoadedCalendarCollections=[]; | |
587 | ||
588 | ||
589 | // globalLoadedTodoCollections | |
590 | // This option sets the list of todo collections (down)loaded after login. | |
591 | // If empty then all todo collections for the currently logged user are loaded. | |
592 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
593 | // option. | |
594 | // Example: | |
595 | var globalLoadedTodoCollections=[]; | |
596 | ||
597 | ||
598 | // globalActiveCalendarCollections | |
599 | // This options sets the list of calendar collections checked (enabled | |
600 | // checkbox => data visible in the interface) by default after login. | |
601 | // If empty then all loaded calendar collections for the currently logged | |
602 | // user are checked. | |
603 | // NOTE: only already (down)loaded collections can be checked (see | |
604 | // the globalLoadedCalendarCollections option). | |
605 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
606 | // option. | |
607 | // Example: | |
608 | var globalActiveCalendarCollections=[]; | |
609 | ||
610 | ||
611 | // globalActiveTodoCollections | |
612 | // This options sets the list of todo collections checked (enabled | |
613 | // checkbox => data visible in the interface) by default after login. | |
614 | // If empty then all loaded todo collections for the currently logged | |
615 | // user are checked. | |
616 | // NOTE: only already (down)loaded collections can be checked (see | |
617 | // the globalLoadedTodoCollections option). | |
618 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
619 | // option. | |
620 | // Example: | |
621 | var globalActiveTodoCollections=[]; | |
622 | ||
623 | ||
624 | // globalCalendarSelected | |
625 | // This option sets which calendar collection will be pre-selected | |
626 | // (if you create a new event) by default after login. | |
627 | // The value must be URL encoded path to a calendar collection, | |
628 | // for example: 'USER/calendar/' | |
629 | // If empty or undefined then the first available calendar collection | |
630 | // is selected automatically. | |
631 | // NOTE: only already (down)loaded collections can be pre-selected (see | |
632 | // the globalLoadedCalendarCollections option). | |
633 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
634 | // option. | |
635 | // Example: | |
636 | //var globalCalendarSelected=''; | |
637 | ||
638 | ||
639 | // globalTodoCalendarSelected | |
640 | // This option sets which todo collection will be pre-selected | |
641 | // (if you create a new todo) by default after login. | |
642 | // The value must be URL encoded path to a todo collection, | |
643 | // for example: 'USER/todo_calendar/' | |
644 | // If empty or undefined then the first available todo collection | |
645 | // is selected automatically. | |
646 | // NOTE: only already (down)loaded collections can be pre-selected (see | |
647 | // the globalLoadedTodoCollections option). | |
648 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
649 | // option. | |
650 | // Example: | |
651 | //var globalTodoCalendarSelected=''; | |
652 | ||
653 | ||
654 | // globalActiveView | |
655 | // This options sets the default fullcalendar view option (the default calendar | |
656 | // view after the first login). | |
657 | // Supported values: | |
658 | // - 'month' | |
659 | // - 'multiWeek' | |
660 | // - 'agendaWeek' | |
661 | // - 'agendaDay' | |
662 | // NOTE: we use custom and enhanced version of fullcalendar! | |
663 | // Example: | |
664 | var globalActiveView='multiWeek'; | |
665 | ||
666 | ||
667 | // globalOpenFormMode | |
668 | // Open new event form on 'single' or 'double' click. | |
669 | // If undefined or not 'double', then 'single' is used. | |
670 | // Example: | |
671 | var globalOpenFormMode='double'; | |
672 | ||
673 | ||
674 | // globalTodoListFilterSelected | |
675 | // This options sets the list of filters in todo list that are selected | |
676 | // after login. | |
677 | // Supported options: | |
678 | // - 'filterAction' | |
679 | // - 'filterProgress' (available only if globalAppleRemindersMode is disabled) | |
680 | // - 'filterCompleted' | |
681 | // - 'filterCanceled' (available only if globalAppleRemindersMode is disabled) | |
682 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
683 | // option. | |
684 | // Example: | |
685 | var globalTodoListFilterSelected=['filterAction', 'filterProgress']; | |
686 | ||
687 | ||
688 | // globalCalendarStartOfBusiness, globalCalendarEndOfBusiness | |
689 | // These options set the start and end of business hours with 0.5 hour | |
690 | // precision. Non-business hours are faded out in the calendar interface. | |
691 | // If both variables are set to the same value then no fade out occurs. | |
692 | // Example: | |
693 | var globalCalendarStartOfBusiness=8; | |
694 | var globalCalendarEndOfBusiness=17; | |
695 | ||
696 | ||
697 | // globalDefaultEventDuration | |
698 | // This option sets the default duration (in minutes) for newly created events. | |
699 | // If undefined or null, globalCalendarEndOfBusiness value will be taken as | |
700 | // a default end time instead. | |
701 | // Example: | |
702 | var globalDefaultEventDuration=120; | |
703 | ||
704 | ||
705 | // globalAMPMFormat | |
706 | // This option enables to use 12 hours format (AM/PM) for displaying time. | |
707 | // NOTE: time format is predefined for each localization - use this option | |
708 | // ONLY if you want to use custom time format (instead of the localization | |
709 | // predefined one). | |
710 | // Example: | |
711 | //var globalAMPMFormat=false; | |
712 | ||
713 | ||
714 | // globalTimeFormatBasic | |
715 | // This option defines the time format information for events in month and | |
716 | // multiweek views. If undefined or null then default value is used. | |
717 | // If defined as empty string no time information is shown in these views. | |
718 | // See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact | |
719 | // formating rules. | |
720 | // Example: | |
721 | //var globalTimeFormatBasic=''; | |
722 | ||
723 | ||
724 | // globalTimeFormatAgenda | |
725 | // This option defines the time format information for events in day and | |
726 | // week views. If undefined or null then default value is used. | |
727 | // If defined as empty string no time information is shown in these views. | |
728 | // See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact | |
729 | // formating rules. | |
730 | // Example: | |
731 | //var globalTimeFormatAgenda=''; | |
732 | ||
733 | ||
734 | // globalDisplayHiddenEvents | |
735 | // This option defined whether events from unechecked calendars are displayed | |
736 | // with certain transparency (true) or completely hidden (false). | |
737 | // Example: | |
738 | var globalDisplayHiddenEvents=false; | |
739 | ||
740 | ||
741 | // globalTimeZoneSupport | |
742 | // This option enables timezone support in the client. | |
743 | // NOTE: timezone cannot be specified for all-day events because these don't | |
744 | // have start and end time. | |
745 | // If this option is disabled then local time is used. | |
746 | // Example: | |
747 | var globalTimeZoneSupport=true; | |
748 | ||
749 | ||
750 | // globalTimeZone | |
751 | // If timezone support is enabled, this option sets the default timezone. | |
752 | // See timezones.js or use the following command to get the list of supported | |
753 | // timezones (defined in timezones.js): | |
754 | // grep "'[^']\+': {" timezones.js | sed -Ee "s#(\s*'|':\s*\{)##g" | |
755 | // Example: | |
756 | var globalTimeZone='Europe/Paris'; | |
757 | ||
758 | ||
759 | // globalTimeZonesEnabled | |
760 | // This option sets the list of available timezones in the interface (for the | |
761 | // list of supported timezones see the comment for the previous configuration | |
762 | // option). | |
763 | // NOTE: if there is at least one event/todo with a certain timezone defined, | |
764 | // that timezone is enabled (even if it is not present in this list). | |
765 | // Example: | |
766 | // var globalTimeZonesEnabled=['America/New_York', 'Europe/Berlin']; | |
767 | var globalTimeZonesEnabled=[]; | |
768 | ||
769 | ||
770 | // globalRewriteTimezoneComponent | |
771 | // This options sets whether the client will enhance/replace (if you edit an | |
772 | // event or todo) the timezone information using the official IANA timezone | |
773 | // database information (recommended). | |
774 | // Example: | |
775 | var globalRewriteTimezoneComponent=true; | |
776 | ||
777 | ||
778 | // globalRemoveUnknownTimezone | |
779 | // This options sets whether the client will remove all non-standard timezone | |
780 | // names from events and todos (if you edit an event or todo) | |
781 | // (e.g.: /freeassociation.sourceforge.net/Tzfile/Europe/Vienna) | |
782 | // Example: | |
783 | var globalRemoveUnknownTimezone=false; | |
784 | ||
785 | ||
786 | // globalShowHiddenAlarms | |
787 | // This option sets whether the client will show alarm notifications for | |
788 | // unchecked calendars. If this option is enabled and you uncheck a calendar | |
789 | // in the calendar list, alarm notifications will be temporary disabled for | |
790 | // unchecked calendar(s). | |
791 | // Example: | |
792 | var globalShowHiddenAlarms=false; | |
793 | ||
794 | ||
795 | // globalIgnoreCompletedOrCancelledAlarms | |
796 | // This options sets whether the client will show alarm notifications for | |
797 | // already completed or cancelled todos. If enabled then alarm notification | |
798 | // for completed and cancelled todos are disabled. | |
799 | // Example: | |
800 | var globalIgnoreCompletedOrCancelledAlarms=true; | |
801 | ||
802 | ||
803 | // globalMozillaSupport | |
804 | // Mozilla automatically treats custom repeating event calculations as if | |
805 | // the start day of the week is Monday, despite what day is chosen in settings. | |
806 | // Set this variable to true to use the same approach, ensuring compatible | |
807 | // event rendering in special cases. | |
808 | // Example: | |
809 | var globalMozillaSupport=false; | |
810 | ||
811 | ||
812 | // globalCalendarColorPropertyXmlns | |
813 | // This options sets the namespace used for storing the "calendar-color" | |
814 | // property by the client. | |
815 | // If true, undefined (or empty) "http://apple.com/ns/ical/" is used (Apple | |
816 | // compatible). If false, then the calendar color modification functionality | |
817 | // is completely disabled. | |
818 | // Example: | |
819 | //var globalCalendarColorPropertyXmlns=true; | |
820 | ||
821 | ||
822 | // globalWeekendDays | |
823 | // This option sets the list of days considered as weekend days (these | |
824 | // are faded out in the calendar interface). Non-weekend days are automatically | |
825 | // considered as business days. | |
826 | // Sunday is 0, Monday is 1, etc. | |
827 | // Example: | |
828 | var globalWeekendDays=[0, 6]; | |
829 | ||
830 | ||
831 | // globalAppleRemindersMode | |
832 | // If this option is enabled then then client will use the same approach | |
833 | // for handling repeating reminders (todos) as Apple. It is STRONGLY | |
834 | // recommended to enabled this option if you use any Apple clients for | |
835 | // reminders (todos). | |
836 | // Supported options: | |
837 | // - 'iOS6' | |
838 | // - 'iOS7' | |
839 | // - true (support of the latest iOS version - 'iOS8') | |
840 | // - false | |
841 | // If this option is enabled: | |
842 | // - RFC todo support is SEVERELY limited and the client mimics the behaviour | |
843 | // of Apple Reminders.app (to ensure maximum compatibility) | |
844 | // - when a single instance of repeating todo is edited, it becomes an | |
845 | // autonomous non-repeating todo with NO relation to the original repeating | |
846 | // todo | |
847 | // - capabilities of repeating todos are limited - only the first instance | |
848 | // is ever visible in the interface | |
849 | // - support for todo DTSTART attribute is disabled | |
850 | // - support for todo STATUS attribute other than COMPLETED and NEEDS-ACTION | |
851 | // is disabled | |
852 | // - [iOS6 only] support for LOCATION and URL attributes is disabled | |
853 | // Example: | |
854 | var globalAppleRemindersMode=true; | |
855 | ||
856 | ||
857 | // globalSubscribedCalendars | |
858 | // This option specifies a list of remote URLs to ics files (e.g.: used | |
859 | // for distributing holidays information). Subscribed calendars are | |
860 | // ALWAYS read-only. Remote servers where ics files are hosted MUST | |
861 | // return proper CORS headers (see readme.txt) otherwise this functionality | |
862 | // will not work! | |
863 | // NOTE: subsribed calendars are NOT "shared" calendars. For "shared" | |
864 | // calendars see the delegation option in globalAccountSettings, | |
865 | // globalNetworkCheckSettings and globalNetworkAccountSettings. | |
866 | // List of properties used in globalSubscribedCalendars variable: | |
867 | // - hrefLabel | |
868 | // This options defines the header string above the subcsribed calendars. | |
869 | // - calendars | |
870 | // This option specifies an array of remote calendar objects with the | |
871 | // following properties: | |
872 | // - href | |
873 | // Set this option to the "full URL" of the remote calendar | |
874 | // - userAuth | |
875 | // NOTE: keep empty if remote authentication is not required! | |
876 | // - userName | |
877 | // Set the username you want to login. | |
878 | // - userPassword | |
879 | // Set the password for the given username. | |
880 | // - typeList | |
881 | // Set the list of objects you want to process from remote calendars; | |
882 | // two options are available: | |
883 | // - 'vevent' (show remote events in the interface) | |
884 | // - 'vtodo' (show remote todos in the interface) | |
885 | // - ignoreAlarm | |
886 | // Set this option to true if you want to disable alarm notifications | |
887 | // from the remote calendar. | |
888 | // - displayName | |
889 | // Set this option to the name of the calendar you want to see | |
890 | // in the interface. | |
891 | // - color | |
892 | // Set the calendar color you want to see in the interface. | |
893 | // Example: | |
894 | //var globalSubscribedCalendars={ | |
895 | // hrefLabel: 'Subscribed', | |
896 | // calendars: [ | |
897 | // { | |
898 | // href: 'http://something.com/calendar.ics', | |
899 | // userAuth: { | |
900 | // userName: '', | |
901 | // userPassword: '' | |
902 | // }, | |
903 | // typeList: ['vevent', 'vtodo'], | |
904 | // ignoreAlarm: true, | |
905 | // displayName: 'Remote Calendar 1', | |
906 | // color: '#ff0000' | |
907 | // }, | |
908 | // { | |
909 | // href: 'http://calendar.com/calendar2.ics', | |
910 | // ... | |
911 | // ... | |
912 | // } | |
913 | // ] | |
914 | //}; | |
915 | ||
916 | ||
917 | ||
918 | // ******* CardDAV (CardDavMATE) related settings ******* // | |
919 | ||
920 | ||
921 | // globalLoadedAddressbookCollections | |
922 | // This option sets the list of addressbook collections (down)loaded after | |
923 | // login. If empty then all addressbook collections for the currently logged | |
924 | // user are loaded. | |
925 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
926 | // option. | |
927 | // Example: | |
928 | var globalLoadedAddressbookCollections=[]; | |
929 | ||
930 | ||
931 | // globalActiveAddressbookCollections | |
932 | // This options sets the list of addressbook collections checked (enabled | |
933 | // checkbox => data visible in the interface) by default after login. | |
934 | // If empty then all loaded addressbook collections for the currently logged | |
935 | // user are checked. | |
936 | // NOTE: only already (down)loaded collections can be checked (see | |
937 | // the globalLoadedAddressbookCollections option). | |
938 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
939 | // option. | |
940 | // Example: | |
941 | var globalActiveAddressbookCollections=[]; | |
942 | ||
943 | ||
944 | // globalAddressbookSelected | |
945 | // This option sets which addressbook collection will be pre-selected | |
946 | // (if you create a new contact) by default after login. | |
947 | // The value must be URL encoded path to an addressbook collection, | |
948 | // for example: 'USER/addressbook/' | |
949 | // If empty or undefined then the first available addressbook collection | |
950 | // is selected automatically. | |
951 | // NOTE: only already (down)loaded collections can be pre-selected (see | |
952 | // the globalLoadedAddressbookCollections option). | |
953 | // NOTE: settings stored on the server (see settingsAccount) overwrite this | |
954 | // option. | |
955 | // Example: | |
956 | //var globalAddressbookSelected=''; | |
957 | ||
958 | ||
959 | // globalCompatibility | |
960 | // This options is reserved for various compatibility settings. | |
961 | // NOTE: if this option is used the value must be an object. | |
962 | // Currently there is only one supported option: | |
963 | // - anniversaryOutputFormat | |
964 | // Different clients use different (and incompatible) approach | |
965 | // to store anniversary date in vCards. Apple stores this attribute as: | |
966 | // itemX.X-ABDATE;TYPE=pref:2000-01-01\r\n | |
967 | // itemX.X-ABLabel:_$!<Anniversary>!$_\r\n' | |
968 | // other clients store this attribute as: | |
969 | // X-ANNIVERSARY:2000-01-01\r\n | |
970 | // Choose 'apple' or 'other' (lower case) for your 3rd party client | |
971 | // compatibility. You can chose both: ['apple', 'other'], but it may | |
972 | // cause many problems in the future, for example: duplicate anniversary | |
973 | // dates, invalid/old anniversary date in your clients, ...) | |
974 | // Examples: | |
975 | // anniversaryOutputFormat: ['other'] | |
976 | // anniversaryOutputFormat: ['apple', 'other'] | |
977 | // Example: | |
978 | var globalCompatibility={anniversaryOutputFormat: ['apple']}; | |
979 | ||
980 | ||
981 | // globalUriHandler{Tel,Email,Url,Profile} | |
982 | // These options set the URI handlers for TEL, EMAIL, URL and X-SOCIALPROFILE | |
983 | // vCard attributes. Set them to null (or comment out) to disable. | |
984 | // NOTE: for globalUriHandlerTel is recommended to use 'tel:', 'callto:' | |
985 | // or 'skype:'. The globalUriHandlerUrl value is used only if no URI handler | |
986 | // is defined in the URL. | |
987 | // NOTE: it is safe to keep these values unchanged! | |
988 | // Example: | |
989 | var globalUriHandlerTel='tel:'; | |
990 | var globalUriHandlerEmail='mailto:'; | |
991 | var globalUriHandlerUrl='http://'; | |
992 | var globalUriHandlerProfile={ | |
993 | 'twitter': 'http://twitter.com/%u', | |
994 | 'facebook': 'http://www.facebook.com/%u', | |
995 | 'flickr': 'http://www.flickr.com/photos/%u', | |
996 | 'linkedin': 'http://www.linkedin.com/in/%u', | |
997 | 'myspace': 'http://www.myspace.com/%u', | |
998 | 'sinaweibo': 'http://weibo.com/n/%u' | |
999 | }; | |
1000 | ||
1001 | ||
1002 | // globalDefaultAddressCountry | |
1003 | // This option sets the default country for new address fields. | |
1004 | // See common.js or use the following command to get the list of | |
1005 | // all supported country codes (defined in common.js): | |
1006 | // grep -E "'[a-z]{2}':\s+\[" common.js | sed -Ee 's#^\s+|\s+\[\s+# #g' | |
1007 | // Example: | |
1008 | var globalDefaultAddressCountry='fr'; | |
1009 | ||
1010 | ||
1011 | // globalAddressCountryEquivalence | |
1012 | // This option sets the processing of the country field specified | |
1013 | // in the vCard ADR attribute. | |
1014 | // By default the address field in vCard looks like: | |
1015 | // ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n | |
1016 | // what cause a problem, because the country field is a plain | |
1017 | // text and can contain any value, e.g.: | |
1018 | // USA | |
1019 | // United States of America | |
1020 | // US | |
1021 | // and because the address format can be completely different for | |
1022 | // each country, e.g.: | |
1023 | // China address example: | |
1024 | // [China] | |
1025 | // [Province] [City] | |
1026 | // [Street] | |
1027 | // [Postal] | |
1028 | // Japan address example: | |
1029 | // [Postal] | |
1030 | // [Prefecture] [County/City] | |
1031 | // [Further Divisions] | |
1032 | // [Japan] | |
1033 | // the client needs to correctly detect the country from the ADR | |
1034 | // attribute. Apple solved this problem by using: | |
1035 | // item1.ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n | |
1036 | // item1.X-ABADR:us\r\n | |
1037 | // where the second "related" attribute defines the country code | |
1038 | // for the ADR attribute. This client uses the same approach, but | |
1039 | // if the vCard is created by 3rd party clients and the X-ABADR | |
1040 | // is missing, it is possible to define additional "rules" for | |
1041 | // country matching. These rules are specied by the country code | |
1042 | // (for full list of country codes see the comment for pre previous | |
1043 | // option) and a case insensitive regular expression (which matches | |
1044 | // the plain text value in the country field). | |
1045 | // NOTE: if X-ABADR is not present and the country not matches any | |
1046 | // country defined in this option, then globalDefaultAddressCountry | |
1047 | // is used by default. | |
1048 | // Example: | |
1049 | var globalAddressCountryEquivalence=[ | |
1050 | {country: 'de', regex: '^\\W*Deutschland\\W*$'}, | |
1051 | {country: 'sk', regex: '^\\W*Slovensko\\W*$'} | |
1052 | ]; | |
1053 | ||
1054 | ||
1055 | // globalAddressCountryFavorites | |
1056 | // This option defines the list of countries which are shown at the top | |
1057 | // of the country list in the interface (for full list of country codes | |
1058 | // see the comment for pre globalDefaultAddressCountry option). | |
1059 | // Example: | |
1060 | // var globalAddressCountryFavorites=['de','sk']; | |
1061 | var globalAddressCountryFavorites=[]; | |
1062 | ||
1063 | ||
1064 | // globalAddrColorPropertyXmlns | |
1065 | // This options sets the namespace used for storing the "addressbook-color" | |
1066 | // property by the client. | |
1067 | // If true, undefined (or empty) "http://inf-it.com/ns/ab/" is used. | |
1068 | // If false, then the addressbook color modification functionality | |
1069 | // is completely disabled, and addressbook colors in the interface are | |
1070 | // generated automatically. | |
1071 | // Example: | |
1072 | //var globalAddrColorPropertyXmlns=true; | |
1073 | ||
1074 | ||
1075 | // globalContactStoreFN | |
1076 | // This option specifies how the FN (formatted name) is stored into vCard. | |
1077 | // The value for this options must be an array of strings, that can contain | |
1078 | // the following variables: | |
1079 | // prefix | |
1080 | // last | |
1081 | // middle | |
1082 | // first | |
1083 | // suffix | |
1084 | // The string element of the array can contain any other characters (usually | |
1085 | // space or colon). Elements are added into FN only if the there is | |
1086 | // a variable match, for example if: | |
1087 | // last='Lastname' | |
1088 | // first='Firstname' | |
1089 | // middle='' (empty) | |
1090 | // and this option is set to: | |
1091 | // ['last', ' middle', ' first'] (space in the second and third element) | |
1092 | // the resulting value for FN will be: 'Lastname Firstname' and not | |
1093 | // 'Lastname Firstname' (two spaces), because the middle name is empty (so | |
1094 | // the second element is completely ignored /not added into FN/). | |
1095 | // NOTE: this attribute is NOT used by this client, and it is also NOT | |
1096 | // possible to directly edit it in the interface. | |
1097 | // Examples: | |
1098 | // var globalContactStoreFN=[' last', ' middle', ' first']; | |
1099 | // var globalContactStoreFN=['last', ', middle', ' ,first']; | |
1100 | var globalContactStoreFN=['prefix',' last',' middle',' first',' suffix']; | |
1101 | ||
1102 | ||
1103 | // globalGroupContactsByCompanies | |
1104 | // This options specifies how contacts are grouped in the interface. | |
1105 | // By default the interface looks like (very simple example): | |
1106 | // A | |
1107 | // Adams Adam | |
1108 | // Anderson Peter | |
1109 | // B | |
1110 | // Brown John | |
1111 | // Baker Josh | |
1112 | // if grouped by company/deparment the result is: | |
1113 | // Company A [Department X] | |
1114 | // Adams Adam | |
1115 | // Brown John | |
1116 | // Company B [Department Y] | |
1117 | // Anderson Peter | |
1118 | // Baker Josh | |
1119 | // If this option is set to true contacts are grouped by company/department, | |
1120 | // otherwise (default) contacts are grouped by letters of the alphabet. | |
1121 | // If undefined or not true, grouping by alphabet letters is used. | |
1122 | // NOTE: see also the globalCollectionDisplay option below. | |
1123 | var globalGroupContactsByCompanies=false; | |
1124 | ||
1125 | ||
1126 | // globalCollectionDisplay | |
1127 | // This options specifies how data columns in the contact list are displayed. | |
1128 | // | |
1129 | // NOTE: columns are displayed ONLY if there is enought horizontal place in | |
1130 | // the browser window (e.g. if you define 5 columns here, but your browser | |
1131 | // window is not wide enough, you will see only first 3 columns instead of 5). | |
1132 | // | |
1133 | // NOTE: see the globalContactDataMinVisiblePercentage option which defines the | |
1134 | // width for columns. | |
1135 | // | |
1136 | // The value must be an array of columns, where each column is represented by | |
1137 | // an object with the following properties: | |
1138 | // label => the value of this option is a string used as column header | |
1139 | // You can use the following localized variables in the label string: | |
1140 | // - {Name} | |
1141 | // - {FirstName} | |
1142 | // - {LastName} | |
1143 | // - {MiddleName} | |
1144 | // - {NickName} | |
1145 | // - {Prefix} | |
1146 | // - {Suffix} | |
1147 | // - {BirthDay} | |
1148 | // - {PhoneticLastName} | |
1149 | // - {PhoneticFirstName} | |
1150 | // - {JobTitle} | |
1151 | // - {Company} | |
1152 | // - {Department} | |
1153 | // - {Categories} | |
1154 | // - {NoteText} | |
1155 | // - {Address}, {AddressWork}, {AddressHome}, {AddressOther} | |
1156 | // - {Phone}, {PhoneWork}, {PhoneHome}, {PhoneCell}, {PhoneMain}, | |
1157 | // {PhonePager}, {PhoneFax}, {PhoneIphone}, {PhoneOther} | |
1158 | // - {Email}, {EmailWork}, {EmailHome}, {EmailMobileme}, {EmailOther} | |
1159 | // - {URL}, {URLWork}, {URLHome}, {URLHomepage}, {URLOther} | |
1160 | // - {Dates}, {DatesAnniversary}, {DatesOther} | |
1161 | // - {Related}, {RelatedManager}, {RelatedAssistant}, {RelatedFather}, | |
1162 | // {RelatedMother}, {RelatedParent}, {RelatedBrother}, {RelatedSister}, | |
1163 | // {RelatedChild}, {RelatedFriend}, {RelatedSpouse}, {RelatedPartner}, | |
1164 | // {RelatedOther} | |
1165 | // - {Profile}, {ProfileTwitter}, {ProfileFacebook}, {ProfileFlickr}, | |
1166 | // {ProfileLinkedin}, {ProfileMyspace}, {ProfileSinaweibo} | |
1167 | // - {IM}, {IMWork}, {IMHome}, {IMMobileme}, {IMOther}, {IMAim}, {IMIcq}, | |
1168 | // {IMIrc}, {IMJabber}, {IMMsn}, {IMYahoo}, {IMFacebook}, {IMGadugadu}, | |
1169 | // {IMGoogletalk}, {IMQq}, {IMSkype} | |
1170 | // value => the value of this option is an array of format strings, or | |
1171 | // an object with the following properties: | |
1172 | // - company (used for company contacts) | |
1173 | // - personal (used for user contacts) | |
1174 | // where the value of these properties is an array of format strings used | |
1175 | // for company or user contacts (you can have different values in the same | |
1176 | // column for personal and company contacts). | |
1177 | // You can use the following simple variables in the format string: | |
1178 | // - {FirstName} | |
1179 | // - {LastName} | |
1180 | // - {MiddleName} | |
1181 | // - {NickName} | |
1182 | // - {Prefix} | |
1183 | // - {Suffix} | |
1184 | // - {BirthDay} | |
1185 | // - {PhoneticLastName} | |
1186 | // - {PhoneticFirstName} | |
1187 | // - {JobTitle} | |
1188 | // - {Company} | |
1189 | // - {Department} | |
1190 | // - {Categories} | |
1191 | // - {NoteText} | |
1192 | // You can also use parametrized variables, where the parameter is enclosed | |
1193 | // in square bracket. Paramatrized variables are useful to extract data | |
1194 | // such as home phone {Phone[type=home]}, extract the second phone number | |
1195 | // {Phone[:1]} (zero based indexing) or extract the third home phone number | |
1196 | // {Phone[type=home][:2]} from the vCard. | |
1197 | // NOTE: if the parametrized variable matches multiple items, e.g.: | |
1198 | // {Phone[type=work]} (if the contact has multiple work phones) then the | |
1199 | // first one is used! | |
1200 | // | |
1201 | // The following parametrized variables are supported (note: you can use | |
1202 | // all of them also without parameters /the first one will be used/): | |
1203 | // - {Address[type=XXX]} or {Address[:NUM]} or {Address[type=XXX][:NUM]} | |
1204 | // where supported values for XXX are: | |
1205 | // - work | |
1206 | // - home | |
1207 | // - other | |
1208 | // - any other custom value | |
1209 | // - {Phone[type=XXX]} or {Phone[:NUM]} or {Phone[type=XXX][:NUM]} | |
1210 | // where supported values for XXX are: | |
1211 | // - work | |
1212 | // - home | |
1213 | // - cell | |
1214 | // - main | |
1215 | // - pager | |
1216 | // - fax | |
1217 | // - iphone | |
1218 | // - other | |
1219 | // - any other custom value | |
1220 | // - {Email[type=XXX]} or {Email[:NUM]} or {Email[type=XXX][:NUM]} | |
1221 | // where supported values for XXX are: | |
1222 | // - work | |
1223 | // - home | |
1224 | // - mobileme | |
1225 | // - other | |
1226 | // - any other custom value | |
1227 | // - {URL[type=XXX]} or {URL[:NUM]} or {URL[type=XXX][:NUM]} | |
1228 | // where supported values for XXX are: | |
1229 | // - work | |
1230 | // - home | |
1231 | // - homepage | |
1232 | // - other | |
1233 | // - any other custom value | |
1234 | // - {Dates[type=XXX]} or {Dates[:NUM]} or {Dates[type=XXX][:NUM]} | |
1235 | // where supported values for XXX are: | |
1236 | // - anniversary | |
1237 | // - other | |
1238 | // - any other custom value | |
1239 | // - {Related[type=XXX]} or {Related[:NUM]} or {Related[type=XXX][:NUM]} | |
1240 | // where supported values for XXX are: | |
1241 | // - manager | |
1242 | // - assistant | |
1243 | // - father | |
1244 | // - mother | |
1245 | // - parent | |
1246 | // - brother | |
1247 | // - sister | |
1248 | // - child | |
1249 | // - friend | |
1250 | // - spouse | |
1251 | // - partner | |
1252 | // - other | |
1253 | // - any other custom value | |
1254 | // - {Profile[type=XXX]} or {Profile[:NUM]} or {Profile[type=XXX][:NUM]} | |
1255 | // where supported values for XXX are: | |
1256 | ||
1257 | ||
1258 | // - flickr | |
1259 | ||
1260 | // - myspace | |
1261 | // - sinaweibo | |
1262 | // - any other custom value | |
1263 | // - {IM[type=XXX]} or {IM[service-type=YYY]} or {IM[:NUM]} | |
1264 | // where supported values for XXX are: | |
1265 | // - work | |
1266 | // - home | |
1267 | // - mobileme | |
1268 | // - other | |
1269 | // - any other custom value | |
1270 | // and supported values for YYY are: | |
1271 | // - aim | |
1272 | // - icq | |
1273 | // - irc | |
1274 | // - jabber | |
1275 | // - msn | |
1276 | // - yahoo | |
1277 | ||
1278 | // - gadugadu | |
1279 | // - googletalk | |
1280 | ||
1281 | // - skype | |
1282 | // - any other custom value | |
1283 | // | |
1284 | // NOTE: if you want to use the "any other custom value" option (for XXX | |
1285 | // or YYY above) you MUST double escape the following characters: | |
1286 | // =[]{}\ | |
1287 | // for example: | |
1288 | // - for profile type "=XXX=" use: '{Profile[type=\\=XXX\\=]}' | |
1289 | // - for profile type "\XXX\" use: '{Profile[type=\\\\XXX\\\\]}' | |
1290 | // | |
1291 | // NOTE: if you want to use curly brackets in the format string you must | |
1292 | // double escape it, e.g.: ['{Company}', '\\{{Department}\\}'] | |
1293 | // | |
1294 | // The format string (for the value option) is an array to allow full | |
1295 | // customization of the interface. For example if: | |
1296 | // value: ['{LastName} {MiddleName} {FirstName}'] | |
1297 | // and the person has no middle name, then the result in the column | |
1298 | // will be (without quotes): | |
1299 | // "Parker Peter" (note: two space characters) | |
1300 | // but if you use: | |
1301 | // value: ['{LastName}', ' {MiddleName}', ' {FirstName}'] | |
1302 | // then the result will be (without quotes): | |
1303 | // "Parker Peter" (note: only one space character) | |
1304 | // The reason is that only those elements of the array are appended | |
1305 | // into the result where non-empty substitution was performed (so the | |
1306 | // ' {MiddleName}' element in this case is ignored, because the person | |
1307 | // in the example above has no /more precisely has empty/ middle name). | |
1308 | // | |
1309 | // Examples: | |
1310 | // To specify two columns (named "Company" and "Department / LastName"), | |
1311 | // where the first will display the company name, and the second will display | |
1312 | // department for company contacts (with "Dep -" prefix), and lastname for | |
1313 | // personal contacts (with "Name -" prefix) use: | |
1314 | // var globalCollectionDisplay=[ | |
1315 | // { | |
1316 | // label: 'Company', | |
1317 | // value: ['{Company}'] | |
1318 | // }, | |
1319 | // { | |
1320 | // label: 'Department / LastName', | |
1321 | // value: { | |
1322 | // company: ['Dep - {Department}'], | |
1323 | // personal: ['Name - {LastName}'] | |
1324 | // } | |
1325 | // } | |
1326 | // ]; | |
1327 | // To specify 3 columns (named "Categories", "URL" and "IM"), where the first | |
1328 | // will display categories, second will display the third work URL, and third | |
1329 | // will display ICQ IM use: | |
1330 | // var globalCollectionDisplay=[ | |
1331 | // { | |
1332 | // label: 'Categories', | |
1333 | // value: ['{Categories}'] | |
1334 | // }, | |
1335 | // { | |
1336 | // label: 'URL', | |
1337 | // value: ['{URL[type=WORK][:2]}'] | |
1338 | // }, | |
1339 | // { | |
1340 | // label: 'IM', | |
1341 | // value: ['{IM[service-type=ICQ]}'] | |
1342 | // } | |
1343 | // ]; | |
1344 | // | |
1345 | // Recommended settings if globalGroupContactsByCompanies | |
1346 | // is set to false: | |
1347 | // var globalCollectionDisplay=[ | |
1348 | // { | |
1349 | // label: '{Name}', | |
1350 | // value: ['{LastName}', ' {MiddleName}', ' {FirstName}'] | |
1351 | // }, | |
1352 | // { | |
1353 | // label: '{Company} [{Department}]', | |
1354 | // value: ['{Company}', ' [{Department}]'] | |
1355 | // }, | |
1356 | // { | |
1357 | // label: '{JobTitle}', | |
1358 | // value: ['{JobTitle}'] | |
1359 | // }, | |
1360 | // { | |
1361 | // label: '{Email}', | |
1362 | // value: ['{Email[:0]}'] | |
1363 | // }, | |
1364 | // { | |
1365 | // label: '{Phone} 1', | |
1366 | // value: ['{Phone[:0]}'] | |
1367 | // }, | |
1368 | // { | |
1369 | // label: '{Phone} 2', | |
1370 | // value: ['{Phone[:1]}'] | |
1371 | // }, | |
1372 | // { | |
1373 | // label: '{NoteText}', | |
1374 | // value: ['{NoteText}'] | |
1375 | // } | |
1376 | // ]; | |
1377 | // | |
1378 | // Recommended settings if globalGroupContactsByCompanies | |
1379 | // is set to true: | |
1380 | // var globalCollectionDisplay=[ | |
1381 | // { | |
1382 | // label: '{Name}', | |
1383 | // value: { | |
1384 | // personal: ['{LastName}', ' {MiddleName}', ' {FirstName}'], | |
1385 | // company: ['{Company}', ' [{Department}]'] | |
1386 | // } | |
1387 | // }, | |
1388 | // { | |
1389 | // label: '{JobTitle}', | |
1390 | // value: ['{JobTitle}'] | |
1391 | // }, | |
1392 | // { | |
1393 | // label: '{Email}', | |
1394 | // value: ['{Email[:0]}'] | |
1395 | // }, | |
1396 | // { | |
1397 | // label: '{Phone} 1', | |
1398 | // value: ['{Phone[:0]}'] | |
1399 | // }, | |
1400 | // { | |
1401 | // label: '{Phone} 2', | |
1402 | // value: ['{Phone[:1]}'] | |
1403 | // }, | |
1404 | // { | |
1405 | // label: '{NoteText}', | |
1406 | // value: ['{NoteText}'] | |
1407 | // } | |
1408 | // ]; | |
1409 | // | |
1410 | // NOTE: if left undefined, the recommended settings will be used. | |
1411 | ||
1412 | ||
1413 | // globalCollectionSort | |
1414 | // This options sets the ordering of contacts in the interface. In general | |
1415 | // contacts are ordered alphabetically by an internal "sort string" which | |
1416 | // is created for each contact. Here you can specify how this internal string | |
1417 | // is created. The value is a simple array holding only the values from the | |
1418 | // value property defined in the globalCollectionDisplay option. | |
1419 | // If undefined, the definition from globalCollectionDisplay is used. | |
1420 | // Example: | |
1421 | // var globalCollectionSort = [ | |
1422 | // ['{LastName}'], | |
1423 | // ['{FirstName}'], | |
1424 | // ['{MiddleName}'], | |
1425 | // { | |
1426 | // company: ['{Categories}'], | |
1427 | // personal: ['{Company}'] | |
1428 | // } | |
1429 | // ]; | |
1430 | var globalCollectionSort=[ | |
1431 | ['{LastName}'], | |
1432 | ['{FirstName}'], | |
1433 | ['{MiddleName}'] | |
1434 | ]; | |
1435 | ||
1436 | ||
1437 | // globalContactDataMinVisiblePercentage | |
1438 | // This option defines how the width for columns are computed. If you set | |
1439 | // it to 1 then 100% of all data in the column will be visible (the column | |
1440 | // width is determined by the longest string in the column). If you set it | |
1441 | // to 0.95 then 95% of data will fit into the column width, and the remaining | |
1442 | // 5% will be truncated (" ..."). | |
1443 | // Example: | |
1444 | var globalContactDataMinVisiblePercentage=0.95; | |
1445 | ||
1446 |