config.js 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911
  1. /*
  2. CalDavZAP - the open source CalDAV 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. This program is free software: you can redistribute it and/or modify
  8. it under the terms of the GNU Affero General Public License as
  9. published by the Free Software Foundation, either version 3 of the
  10. License, or (at your option) any later version.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. GNU Affero General Public License for more details.
  15. You should have received a copy of the GNU Affero General Public License
  16. along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. // NOTE: see readme.txt before you start to configure this client!
  19. // NOTE: do not forget to execute the cache_update.sh script every time you
  20. // update this configuration file or any other files (otherwise your browser
  21. // will use the previous version of files stored in HTML5 cache). Alternatively
  22. // you can update the cache.manifest manually - edit the second line beginning
  23. // with "#V 20" to anything else (this file simple needs "some" change)
  24. // Supported setup types (use ONE of them):
  25. // a.) globalAccountSettings => username and password is hardcoded
  26. // in config.js, automatic login without the login screen
  27. // - advantages: fast login process = no username/password is required
  28. // - disadvantages: username/password is visible in your config.js, so
  29. // this type of setup is recommended ONLY for intranet/home users
  30. // b.) globalNetworkCheckSettings => standard setup with login screen
  31. // - advantages: username/password is required (no visible
  32. // username/password in config.js)
  33. // - disadvantages: if a user enters wrong username/password then
  34. // the browser will show authentication popup window (it is NOT
  35. // possible to disable it in JavaScript; see the next option)
  36. // c.) globalNetworkAccountSettings => advanced setup with login screen
  37. // - advantages: no authentication popup if you enter wrong username/
  38. // password, dynamic XML configuration generator (you can generate
  39. // different configurations for your users /by modifying the "auth"
  40. // module configuration or the PHP code itself/)
  41. // - disadvantages: requires PHP >= 5.3 and additional configuration,
  42. // only basic http authentication is supported => always use https!
  43. //
  44. //
  45. // What is a "principal URL"? => Check you server documentation!
  46. // - "principal URL" is NOT "collection URL"
  47. // - this client automatically detects collections for "principal URL"
  48. // - PROPER "principal URL" looks like:
  49. // https://server.com:8443/principals/users/USER/
  50. // https://server.com:8443/caldav.php/USER/
  51. // - INVALID principal URL looks like:
  52. // https://server.com:8443/principals/users/USER/collection/
  53. // => this is a collection URL
  54. // https://server.com:8443/caldav.php/USER/collection/
  55. // => this is a collection URL
  56. // https://server.com:8443/principals/users/USER
  57. // => missing trailing '/'
  58. // https://server.com:8443/caldav.php/USER
  59. // => missing trailing '/'
  60. // /caldav.php/USER/
  61. // => relative URL instead of full URL
  62. //
  63. //
  64. // List of properties used in globalAccountSettings, globalNetworkCheckSettings
  65. // and globalNetworkAccountSettings variables (+ in the "auth" module):
  66. // - href
  67. // Depending on the setup type set the value to:
  68. // a.) globalAccountSettings: full "principal URL"
  69. // b.) globalNetworkCheckSettings: "principal URL" WITHOUT the "USER/" part
  70. // c.) globalNetworkAccountSettings: "full URL" to the "auth" directory
  71. // This property is supported in:
  72. // globalAccountSettings
  73. // globalNetworkCheckSettings
  74. // globalNetworkAccountSettings
  75. // - userAuth
  76. // - userName
  77. // Set the username you want to login.
  78. // - userPassword
  79. // Set the password for the given username.
  80. // This property is supported in:
  81. // globalAccountSettings
  82. // - timeOut
  83. // This option sets the timeout for jQuery .ajax call (in miliseconds).
  84. // Example:
  85. // timeOut: 90000
  86. // This property is supported in:
  87. // globalAccountSettings
  88. // globalNetworkCheckSettings
  89. // globalNetworkAccountSettings
  90. // - lockTimeOut
  91. // NOTE: used only if server supports LOCK requests
  92. // This option sets the LOCK timeout value if resource locking
  93. // is used (in miliseconds).
  94. // Example:
  95. // lockTimeOut: 10000
  96. // This property is supported in:
  97. // globalAccountSettings
  98. // globalNetworkCheckSettings
  99. // globalNetworkAccountSettings (available in auth module only)
  100. // - checkContentType
  101. // This option enables a content-type checking for server response.
  102. // If enabled then only objects with proper content-type are inserted
  103. // into the interface.
  104. // If you cannot see data in the interface you may try to disable it (useful
  105. // if your server returns wrong value in "propstat/prop/getcontenttype").
  106. // If undefined then content-type checking is enabled.
  107. // Examples:
  108. // checkContentType: true
  109. // checkContentType: false
  110. // This property is supported in:
  111. // globalAccountSettings
  112. // globalNetworkCheckSettings
  113. // globalNetworkAccountSettings (available in auth module only)
  114. // - settingsAccount
  115. // NOTE: server support for custom DAV properties is REQUIRED!
  116. // This option sets the account where the client properties such as:
  117. // loaded collections, enabled collections, ... are saved during
  118. // the logout and resource/collection synchronisation
  119. // NOTE: set it to true ONLY for ONE account!
  120. // Examples:
  121. // settingsAccount: true
  122. // settingsAccount: false
  123. // This property is supported in:
  124. // globalAccountSettings
  125. // globalNetworkCheckSettings
  126. // globalNetworkAccountSettings (available in auth module only)
  127. // - delegation
  128. // NOTE: server support for this functionality is REQUIRED!
  129. // This option allows you to load delegated (shared) collections.
  130. // If set to true (default) then delegation functionality is enabled,
  131. // and the interface allows you to load delegated collections.
  132. // If false then delegation functionality is completely disabled.
  133. // Examples:
  134. // delegation: true
  135. // delegation: false
  136. // This property is supported in:
  137. // globalAccountSettings
  138. // globalNetworkCheckSettings
  139. // globalNetworkAccountSettings (available in auth module only)
  140. // - additionalResources
  141. // This options sets the list of additional resources (e.g. shared resources
  142. // accessible by all users). If the server supports delegation (see
  143. // the delegation option above) there is no reason to use this option!
  144. // Supported values:
  145. // - array of URL encoded resource names (not collections), such as:
  146. // 'company'
  147. // 'shared_resource'
  148. // If empty (default) or undefined then shared resources are not loaded
  149. // using this option, but may be loaded using the delegation option.
  150. // Examples:
  151. // additionalResources=[]
  152. // additionalResources=['public', 'shared_resource']
  153. // This property is supported in:
  154. // globalNetworkCheckSettings
  155. // - hrefLabel
  156. // This option sets the server name in the resource header (useful if
  157. // you want to see custom resource header above the collections).
  158. // You can use the following variables in the value:
  159. // %H = full hostname (including the port number)
  160. // %h = full hostname (without the port number)
  161. // %D = full domain name
  162. // %d = only the first and second level domain
  163. // %P = principal name
  164. // %p = principal name without the @domain.com part (if present)
  165. // %U = logged user name
  166. // %u = logged user name without the @domain.com part (if present)
  167. // If undefined, empty or or null then '%d/%p [%u]' is used.
  168. // Examples:
  169. // hrefLabel: '%d/%p [%u]'
  170. // hrefLabel: '%D/%u'
  171. // This property is supported in:
  172. // globalAccountSettings
  173. // globalNetworkCheckSettings
  174. // globalNetworkAccountSettings (available in auth module only)
  175. // - forceReadOnly
  176. // This option sets the list of collections as "read-only".
  177. // Supported values:
  178. // - true
  179. // all collections will be "read-only"
  180. // - array of URL encoded
  181. // - collections, such as:
  182. // '/caldav.php/user/calendar/'
  183. // '/caldav.php/user%40domain.com/calendar/'
  184. // - regexes, such as:
  185. // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
  186. // specifies the list of collections marked as "read-only"
  187. // If null (default) or undefined then server detected privileges are used.
  188. // Examples:
  189. // forceReadOnly: null
  190. // forceReadOnly: true
  191. // forceReadOnly: ['/caldav.php/user/calendar/',
  192. // '/caldav.php/user/calendar2/']
  193. // forceReadOnly: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
  194. // This property is supported in:
  195. // globalAccountSettings
  196. // globalNetworkCheckSettings
  197. // globalNetworkAccountSettings (available in auth module only, with
  198. // different syntax for regexes)
  199. // - ignoreAlarms
  200. // This option sets list of calendar collections with disabled
  201. // alarm functionality.
  202. // Supported values:
  203. // - true
  204. // alarm functionality is disabled for all collections
  205. // - array of URL encoded
  206. // - collections, such as:
  207. // '/caldav.php/user/calendar/'
  208. // '/caldav.php/user%40domain.com/calendar/'
  209. // - regexes, such as:
  210. // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
  211. // specifies the list of collections with disabled alarm functionality.
  212. // If false (default) or undefined then alarm functionality is enabled
  213. // for all collections.
  214. // Examples:
  215. // ignoreAlarms: true
  216. // ignoreAlarms: ['/caldav.php/user/calendar/',
  217. // '/caldav.php/user/calendar2/']
  218. // ignoreAlarms: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
  219. // This property is supported in:
  220. // globalAccountSettings
  221. // globalNetworkCheckSettings
  222. // globalNetworkAccountSettings (available in auth module only, with
  223. // different syntax for regexes)
  224. // - backgroundCalendars
  225. // This options defines a list of background calendars. If there is
  226. // at least one event defined for the given day in a background calendar,
  227. // the background color for that day will be pink/light-red.
  228. // Supported values:
  229. // - array of URL encoded
  230. // - collections, such as:
  231. // '/caldav.php/user/calendar/'
  232. // '/caldav.php/user%40domain.com/calendar/'
  233. // - regexes, such as:
  234. // new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
  235. // specifies the list of background calendar collections.
  236. // Examples:
  237. // backgroundCalendars: ['/caldav.php/user/calendar/',
  238. // '/caldav.php/user/calendar2/']
  239. // backgroundCalendars: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
  240. // This property is supported in:
  241. // globalAccountSettings
  242. // globalNetworkCheckSettings
  243. // globalNetworkAccountSettings (available in auth module only, with
  244. // different syntax for regexes)
  245. // Special options not present in configuration examples:
  246. // NOTE: use ONLY if you know what are you doing!
  247. // - crossDomain
  248. // This option sets the crossDomain for jQuery .ajax call. If null (default)
  249. // then the value is autodetected /and the result is shown in the console/
  250. // - withCredentials
  251. // This option sets the withCredentials for jQuery .ajax call. The default
  252. // value is false and there is NO REASON to change it to true!
  253. // NOTE: if true, Access-Control-Allow-Origin "*" (CORS header) not works!
  254. // globalAccountSettings
  255. // Use this option if you want to use automatic login (without a login
  256. // screen) with hardcoded username/password in config.js. Otherwise use
  257. // globalNetworkCheckSettings or globalNetworkAccountSettings (see below).
  258. // NOTE: if this option is used the value must be an array of object(s).
  259. // List of properties used in globalAccountSettings variable:
  260. // - href
  261. // Set this option to the full "principal URL".
  262. // NOTE: the last character in the value must be '/'
  263. // - userAuth
  264. // - userName
  265. // Set the username you want to login.
  266. // - userPassword
  267. // Set the password for the given username.
  268. // NOTE: for description of other properties see comments at the beginning
  269. // of this file.
  270. // NOTE: for minimal/fast setup you need to set only the href and userAuth
  271. // options. It is safe/recommended to keep the remaining options unchanged!
  272. // Example:
  273. //var globalAccountSettings=[
  274. // {
  275. // href: 'https://server1.com:8443/caldav.php/USERNAME1/',
  276. // userAuth:
  277. // {
  278. // userName: 'USERNAME1',
  279. // userPassword: 'PASSWORD1'
  280. // },
  281. // timeOut: 90000,
  282. // lockTimeOut: 10000,
  283. // checkContentType: true,
  284. // settingsAccount: true,
  285. // delegation: true,
  286. // hrefLabel: null,
  287. // forceReadOnly: null,
  288. // ignoreAlarms: false,
  289. // backgroundCalendars: []
  290. // },
  291. // {
  292. // href: 'https://server2.com:8443/caldav.php/USERNAME2/',
  293. // ...
  294. // ...
  295. // }
  296. //];
  297. // globalNetworkCheckSettings
  298. // Use this option if you want to use standard login screen without
  299. // hardcoded username/password in config.js (used by globalAccountSettings).
  300. // NOTE: if this option is used the value must be an object.
  301. // List of properties used in globalAccountSettings variable:
  302. // - href
  303. // Set this option to the "principal URL" WITHOUT the "USERNAME/"
  304. // part (this options uses the username from the login screen).
  305. // NOTE: the last character in the value must be '/'
  306. // NOTE: for description of other properties see comments at the beginning
  307. // of this file.
  308. // NOTE: for minimal/fast setup you need to set only the href option. It is
  309. // safe/recommended to keep the remaining options unchanged!
  310. // Example href values:
  311. // OS X server http example (see misc/readme_osx.txt for server setup):
  312. // href: 'http://osx.server.com:8008/principals/users/'
  313. // OS X server https example (see misc/readme_osx.txt for server setup):
  314. // href: 'https://osx.server.com:8443/principals/users/'
  315. // Cyrus server https example:
  316. // href: 'https://cyrus.server.com/dav/principals/user/'
  317. // Example:
  318. // Davical example which automatically detects the protocol, server name,
  319. // port, ... (client installed into Davical "htdocs" subdirectory;
  320. // works "out of the box", no additional setup required):
  321. var globalNetworkCheckSettings={
  322. href: location.protocol+'//'+location.hostname+
  323. (location.port ? ':'+location.port: '')+
  324. location.pathname.replace(RegExp('/+[^/]+/*(index\.html)?$'),'')+
  325. '/caldav.php/',
  326. timeOut: 90000,
  327. lockTimeOut: 10000,
  328. checkContentType: true,
  329. settingsAccount: true,
  330. delegation: true,
  331. additionalResources: [],
  332. hrefLabel: null,
  333. forceReadOnly: null,
  334. ignoreAlarms: false,
  335. backgroundCalendars: []
  336. }
  337. // globalNetworkAccountSettings
  338. // Try this option ONLY if you have working setup using
  339. // globalNetworkCheckSettings and want to fix the authentication popup
  340. // window problem (if invalid username/password is entered)!
  341. // If you use this option then your browser sends username/password to the PHP
  342. // "auth" module ("auth" directory) instead of the DAV server itself.
  343. // The "auth" module then validates your username/password against your server,
  344. // and if the authentication is successful, then it sends back a configuration
  345. // XML (requires additional configuration). The resulting XML is handled
  346. // IDENTICALLY as the globalAccountSettings configuration option.
  347. // NOTE: for the "auth" module configuration see readme.txt!
  348. // NOTE: this option invokes a login screen and disallows access until
  349. // the client gets correct XML configuration file from the server!
  350. // List of properties used in globalNetworkAccountSettings variable:
  351. // - href
  352. // Set this option to the "full URL" of the "auth" directory
  353. // NOTE: the last character in the value must be '/'
  354. // NOTE: for description of other properties see comments at the beginning
  355. // of this file.
  356. // Example href values:
  357. // href: 'https://server.com/client/auth/'
  358. // Example:
  359. // Use this configuration if the "auth" module is located in the client
  360. // installation subdirectory (default):
  361. //var globalNetworkAccountSettings={
  362. // href: location.protocol+'//'+location.hostname+
  363. // (location.port ? ':'+location.port : '')+
  364. // location.pathname.replace(RegExp('index\.html$'),'')+
  365. // 'auth/',
  366. // timeOut: 30000
  367. //};
  368. // globalUseJqueryAuth
  369. // Use jQuery .ajax() auth or custom header for HTTP basic auth (default).
  370. // Set this option to true if your server uses digest auth (note: you may
  371. // experience auth popups on some browsers).
  372. // If undefined (or empty), custom header for HTTP basic auth is used.
  373. // Example:
  374. //var globalUseJqueryAuth=false;
  375. // globalBackgroundSync
  376. // Enable background synchronization even if the browser window/tab has no
  377. // focus.
  378. // If false, synchronization is performed only if the browser window/tab
  379. // is focused. If undefined or not false, then background sync is enabled.
  380. // Example:
  381. var globalBackgroundSync=true;
  382. // globalSyncResourcesInterval
  383. // This option defines how often (in miliseconds) are resources/collections
  384. // asynchronously synchronized.
  385. // Example:
  386. var globalSyncResourcesInterval=120000;
  387. // globalEnableRefresh
  388. // This option enables or disables the manual synchronization button in
  389. // the interface. If this option is enabled then users can perform server
  390. // synchronization manually. Enabling this option may cause high server
  391. // load (even DDOS) if users will try to manually synchronize data too
  392. // often (instead of waiting for the automatic synchronization).
  393. // If undefined or false, the synchronization button is disabled.
  394. // NOTE: enable this option only if you really know what are you doing!
  395. // Example:
  396. var globalEnableRefresh=false;
  397. // globalEnableKbNavigation
  398. // Enable basic keyboard navigation using arrow keys?
  399. // If undefined or not false, keyboard navigation is enabled.
  400. // Example:
  401. var globalEnableKbNavigation=true;
  402. // globalSettingsType
  403. // Where to store user settings such as: active view, enabled/selected
  404. // collections, ... (the client store them into DAV property on the server).
  405. // NOTE: not all servers support storing DAV properties (some servers support
  406. // only subset /or none/ of these URLs).
  407. // Supported values:
  408. // - 'principal-URL', '', null or undefined (default) => settings are stored
  409. // to principal-URL (recommended for most servers)
  410. // - 'addressbook-home-set' => settings are are stored to addressbook-home-set
  411. // Example:
  412. //var globalSettingsType='';
  413. // globalCrossServerSettingsURL
  414. // Settings such as enabled/selected collections are stored on the server
  415. // (see the previous option) in form of full URL
  416. // (e.g.: https://user@server:port/principal/collection/), but even if this
  417. // approach is "correct" (you can use the same principal URL with multiple
  418. // different logins, ...) it causes a problem if your server is accessible
  419. // from multiple URLs (e.g. http://server/ and https://server/). If you want
  420. // to store only the "principal/collection/" part of the URL (instead of the
  421. // full URL) then enable this option.
  422. // Example:
  423. //var globalCrossServerSettingsURL=false;
  424. // globalInterfaceLanguage
  425. // Default interface language (note: this option is case sensitive):
  426. // cs_CZ (Čeština [Czech])
  427. // da_DK (Dansk [Danish]; thanks Niels Bo Andersen)
  428. // de_DE (Deutsch [German]; thanks Marten Gajda and Thomas Scheel)
  429. // en_US (English [English/US])
  430. // es_ES (Español [Spanish]; thanks Damián Vila)
  431. // fr_FR (Français [French]; thanks John Fischer)
  432. // it_IT (Italiano [Italian]; thanks Luca Ferrario)
  433. // ja_JP (日本語 [Japan]; thanks Muimu Nakayama)
  434. // hu_HU (Magyar [Hungarian])
  435. // nl_NL (Nederlands [Dutch]; thanks Johan Vromans)
  436. // sk_SK (Slovenčina [Slovak])
  437. // tr_TR (Türkçe [Turkish]; thanks Selcuk Pultar)
  438. // ru_RU (Русский [Russian]; thanks Александр Симонов)
  439. // uk_UA (Українська [Ukrainian]; thanks Serge Yakimchuck)
  440. // zh_CN (中国 [Chinese]; thanks Fandy)
  441. // Example:
  442. var globalInterfaceLanguage='en_US';
  443. // globalInterfaceCustomLanguages
  444. // If defined and not empty then only languages listed here are shown
  445. // at the login screen, otherwise (default) all languages are shown
  446. // NOTE: values in the array must refer to an existing localization
  447. // (see the option above)
  448. // Example:
  449. // globalInterfaceCustomLanguages=['en_US', 'sk_SK'];
  450. var globalInterfaceCustomLanguages=[];
  451. // globalSortAlphabet
  452. // Use JavaScript localeCompare() or custom alphabet for data sorting.
  453. // Custom alphabet is used by default because JavaScript localeCompare()
  454. // not supports collation and often returns "wrong" result. If set to null
  455. // then localeCompare() is used.
  456. // Example:
  457. // var globalSortAlphabet=null;
  458. var globalSortAlphabet=' 0123456789'+
  459. 'AÀÁÂÄÆÃÅĀBCÇĆČDĎEÈÉÊËĒĖĘĚFGĞHIÌÍÎİÏĪĮJKLŁĹĽMNŃÑŇOÒÓÔÖŐŒØÕŌ'+
  460. 'PQRŔŘSŚŠȘșŞşẞTŤȚțŢţUÙÚÛÜŰŮŪVWXYÝŸZŹŻŽ'+
  461. 'aàáâäæãåābcçćčdďeèéêëēėęěfgğhiìíîïīįıjklłĺľmnńñňoòóôöőœøõō'+
  462. 'pqrŕřsśšßtťuùúûüűůūvwxyýÿzźżžАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЮЯ'+
  463. 'Ьабвгґдеєжзиіїйклмнопрстуфхцчшщюяь';
  464. // globalSearchTransformAlphabet
  465. // To support search without diacritics (e.g. search for 'd' will find: 'Ď', 'ď')
  466. // it is required to define something like "character equivalence".
  467. // key = regex text, value = search character
  468. // Example:
  469. var globalSearchTransformAlphabet={
  470. '[ÀàÁáÂâÄäÆæÃãÅåĀā]': 'a', '[ÇçĆćČč]': 'c', '[Ďď]': 'd',
  471. '[ÈèÉéÊêËëĒēĖėĘęĚě]': 'e', '[Ğğ]': 'g', '[ÌìÍíÎîİıÏïĪīĮį]': 'i',
  472. '[ŁłĹ弾]': 'l', '[ŃńÑñŇň]': 'n', '[ÒòÓóÔôÖöŐőŒœØøÕõŌō]': 'o',
  473. '[ŔŕŘř]': 'r', '[ŚśŠšȘșŞşẞß]': 's', '[ŤťȚțŢţ]': 't',
  474. '[ÙùÚúÛûÜüŰűŮůŪū]': 'u', '[ÝýŸÿ]': 'y', '[ŹźŻżŽž]': 'z'
  475. };
  476. // globalResourceAlphabetSorting
  477. // If more than one resource (server account) is configured, sort the
  478. // resources alphabetically?
  479. // Example:
  480. var globalResourceAlphabetSorting=true;
  481. // globalNewVersionNotifyUsers
  482. // Update notification will be shown only to users with login names defined
  483. // in this array.
  484. // If undefined (or empty), update notifications will be shown to all users.
  485. // Example:
  486. // globalNewVersionNotifyUsers=['admin', 'peter'];
  487. var globalNewVersionNotifyUsers=[];
  488. // globalDatepickerFormat
  489. // Set the datepicker format (see
  490. // http://docs.jquery.com/UI/Datepicker/formatDate for valid values).
  491. // NOTE: date format is predefined for each localization - use this option
  492. // ONLY if you want to use custom date format (instead of the localization
  493. // predefined one).
  494. // Example:
  495. //var globalDatepickerFormat='dd.mm.yy';
  496. // globalDatepickerFirstDayOfWeek
  497. // Set the datepicker first day of the week: Sunday is 0, Monday is 1, etc.
  498. // Example:
  499. var globalDatepickerFirstDayOfWeek=1;
  500. // globalHideInfoMessageAfter
  501. // How long are information messages (such as: success, error) displayed
  502. // (in miliseconds).
  503. // Example:
  504. var globalHideInfoMessageAfter=1800;
  505. // globalEditorFadeAnimation
  506. // Set the editor fade in/out animation duration when editing or saving data
  507. // (in miliseconds).
  508. // Example:
  509. var globalEditorFadeAnimation=666;
  510. // globalEventStartPastLimit, globalEventStartFutureLimit, globalTodoPastLimit
  511. // Number of months pre-loaded from past/future in advance for calendars
  512. // and todo lists (if null then date range synchronization is disabled).
  513. // NOTE: interval synchronization is used only if your server supports
  514. // sync-collection REPORT (e.g. DAViCal).
  515. // NOTE: if you experience problems with data loading and your server has
  516. // no time-range filtering support set these variables to null.
  517. // Example:
  518. var globalEventStartPastLimit=3;
  519. var globalEventStartFutureLimit=3;
  520. var globalTodoPastLimit=1;
  521. // globalLoadedCalendarCollections
  522. // This option sets the list of calendar collections (down)loaded after login.
  523. // If empty then all calendar collections for the currently logged user are
  524. // loaded.
  525. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  526. // option.
  527. // Example:
  528. var globalLoadedCalendarCollections=[];
  529. // globalLoadedTodoCollections
  530. // This option sets the list of todo collections (down)loaded after login.
  531. // If empty then all todo collections for the currently logged user are loaded.
  532. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  533. // option.
  534. // Example:
  535. var globalLoadedTodoCollections=[];
  536. // globalActiveCalendarCollections
  537. // This options sets the list of calendar collections checked (enabled
  538. // checkbox => data visible in the interface) by default after login.
  539. // If empty then all loaded calendar collections for the currently logged
  540. // user are checked.
  541. // NOTE: only already (down)loaded collections can be checked (see
  542. // the globalLoadedCalendarCollections option).
  543. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  544. // option.
  545. // Example:
  546. var globalActiveCalendarCollections=[];
  547. // globalActiveTodoCollections
  548. // This options sets the list of todo collections checked (enabled
  549. // checkbox => data visible in the interface) by default after login.
  550. // If empty then all loaded todo collections for the currently logged
  551. // user are checked.
  552. // NOTE: only already (down)loaded collections can be checked (see
  553. // the globalLoadedTodoCollections option).
  554. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  555. // option.
  556. // Example:
  557. var globalActiveTodoCollections=[];
  558. // globalCalendarSelected
  559. // This option sets which calendar collection will be pre-selected
  560. // (if you create a new event) by default after login.
  561. // The value must be URL encoded path to a calendar collection,
  562. // for example: 'USER/calendar/'
  563. // If empty or undefined then the first available calendar collection
  564. // is selected automatically.
  565. // NOTE: only already (down)loaded collections can be pre-selected (see
  566. // the globalLoadedCalendarCollections option).
  567. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  568. // option.
  569. // Example:
  570. //var globalCalendarSelected='';
  571. // globalTodoCalendarSelected
  572. // This option sets which todo collection will be pre-selected
  573. // (if you create a new todo) by default after login.
  574. // The value must be URL encoded path to a todo collection,
  575. // for example: 'USER/todo_calendar/'
  576. // If empty or undefined then the first available todo collection
  577. // is selected automatically.
  578. // NOTE: only already (down)loaded collections can be pre-selected (see
  579. // the globalLoadedTodoCollections option).
  580. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  581. // option.
  582. // Example:
  583. //var globalTodoCalendarSelected='';
  584. // globalActiveView
  585. // This options sets the default fullcalendar view option (the default calendar
  586. // view after the first login).
  587. // Supported values:
  588. // - 'month'
  589. // - 'multiWeek'
  590. // - 'agendaWeek'
  591. // - 'agendaDay'
  592. // NOTE: we use custom and enhanced version of fullcalendar!
  593. // Example:
  594. var globalActiveView='multiWeek';
  595. // globalOpenFormMode
  596. // Open new event form on 'single' or 'double' click.
  597. // If undefined or not 'double', then 'single' is used.
  598. // Example:
  599. var globalOpenFormMode='double';
  600. // globalTodoListFilterSelected
  601. // This options sets the list of filters in todo list that are selected
  602. // after login.
  603. // Supported options:
  604. // - 'filterAction'
  605. // - 'filterProgress' (available only if globalAppleRemindersMode is disabled)
  606. // - 'filterCompleted'
  607. // - 'filterCanceled' (available only if globalAppleRemindersMode is disabled)
  608. // NOTE: settings stored on the server (see settingsAccount) overwrite this
  609. // option.
  610. // Example:
  611. var globalTodoListFilterSelected=['filterAction', 'filterProgress'];
  612. // globalCalendarStartOfBusiness, globalCalendarEndOfBusiness
  613. // These options set the start and end of business hours with 0.5 hour
  614. // precision. Non-business hours are faded out in the calendar interface.
  615. // If both variables are set to the same value then no fade out occurs.
  616. // Example:
  617. var globalCalendarStartOfBusiness=8;
  618. var globalCalendarEndOfBusiness=17;
  619. // globalDefaultEventDuration
  620. // This option sets the default duration (in minutes) for newly created events.
  621. // If undefined or null, globalCalendarEndOfBusiness value will be taken as
  622. // a default end time instead.
  623. // Example:
  624. var globalDefaultEventDuration=120;
  625. // globalAMPMFormat
  626. // This option enables to use 12 hours format (AM/PM) for displaying time.
  627. // NOTE: time format is predefined for each localization - use this option
  628. // ONLY if you want to use custom time format (instead of the localization
  629. // predefined one).
  630. // Example:
  631. //var globalAMPMFormat=false;
  632. // globalTimeFormatBasic
  633. // This option defines the time format information for events in month and
  634. // multiweek views. If undefined or null then default value is used.
  635. // If defined as empty string no time information is shown in these views.
  636. // See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
  637. // formating rules.
  638. // Example:
  639. //var globalTimeFormatBasic='';
  640. // globalTimeFormatAgenda
  641. // This option defines the time format information for events in day and
  642. // week views. If undefined or null then default value is used.
  643. // If defined as empty string no time information is shown in these views.
  644. // See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
  645. // formating rules.
  646. // Example:
  647. //var globalTimeFormatAgenda='';
  648. // globalDisplayHiddenEvents
  649. // This option defined whether events from unechecked calendars are displayed
  650. // with certain transparency (true) or completely hidden (false).
  651. // Example:
  652. var globalDisplayHiddenEvents=false;
  653. // globalTimeZoneSupport
  654. // This option enables timezone support in the client.
  655. // NOTE: timezone cannot be specified for all-day events because these don't
  656. // have start and end time.
  657. // If this option is disabled then local time is used.
  658. // Example:
  659. var globalTimeZoneSupport=true;
  660. // globalTimeZone
  661. // If timezone support is enabled, this option sets the default timezone.
  662. // See timezones.js or use the following command to get the list of supported
  663. // timezones (defined in timezones.js):
  664. // grep "'[^']\+': {" timezones.js | sed -Ee "s#(\s*'|':\s*\{)##g"
  665. // Example:
  666. var globalTimeZone='Europe/Berlin';
  667. // globalTimeZonesEnabled
  668. // This option sets the list of available timezones in the interface (for the
  669. // list of supported timezones see the comment for the previous configuration
  670. // option).
  671. // NOTE: if there is at least one event/todo with a certain timezone defined,
  672. // that timezone is enabled (even if it is not present in this list).
  673. // Example:
  674. // var globalTimeZonesEnabled=['America/New_York', 'Europe/Berlin'];
  675. var globalTimeZonesEnabled=[];
  676. // globalRewriteTimezoneComponent
  677. // This options sets whether the client will enhance/replace (if you edit an
  678. // event or todo) the timezone information using the official IANA timezone
  679. // database information (recommended).
  680. // Example:
  681. var globalRewriteTimezoneComponent=true;
  682. // globalRemoveUnknownTimezone
  683. // This options sets whether the client will remove all non-standard timezone
  684. // names from events and todos (if you edit an event or todo)
  685. // (e.g.: /freeassociation.sourceforge.net/Tzfile/Europe/Vienna)
  686. // Example:
  687. var globalRemoveUnknownTimezone=false;
  688. // globalShowHiddenAlarms
  689. // This option sets whether the client will show alarm notifications for
  690. // unchecked calendars. If this option is enabled and you uncheck a calendar
  691. // in the calendar list, alarm notifications will be temporary disabled for
  692. // unchecked calendar(s).
  693. // Example:
  694. var globalShowHiddenAlarms=false;
  695. // globalIgnoreCompletedOrCancelledAlarms
  696. // This options sets whether the client will show alarm notifications for
  697. // already completed or cancelled todos. If enabled then alarm notification
  698. // for completed and cancelled todos are disabled.
  699. // Example:
  700. var globalIgnoreCompletedOrCancelledAlarms=true;
  701. // globalMozillaSupport
  702. // Mozilla automatically treats custom repeating event calculations as if
  703. // the start day of the week is Monday, despite what day is chosen in settings.
  704. // Set this variable to true to use the same approach, ensuring compatible
  705. // event rendering in special cases.
  706. // Example:
  707. var globalMozillaSupport=false;
  708. // globalCalendarColorPropertyXmlns
  709. // This options sets the namespace used for storing the "calendar-color"
  710. // property by the client.
  711. // If true, undefined (or empty) "http://apple.com/ns/ical/" is used (Apple
  712. // compatible). If false, then the calendar color modification functionality
  713. // is completely disabled.
  714. // Example:
  715. //var globalCalendarColorPropertyXmlns=true;
  716. // globalWeekendDays
  717. // This option sets the list of days considered as weekend days (these
  718. // are faded out in the calendar interface). Non-weekend days are automatically
  719. // considered as business days.
  720. // Sunday is 0, Monday is 1, etc.
  721. // Example:
  722. var globalWeekendDays=[0, 6];
  723. // globalAppleRemindersMode
  724. // If this option is enabled then then client will use the same approach
  725. // for handling repeating reminders (todos) as Apple. It is STRONGLY
  726. // recommended to enabled this option if you use any Apple clients for
  727. // reminders (todos).
  728. // Supported options:
  729. // - 'iOS6'
  730. // - 'iOS7'
  731. // - true (support of the latest iOS version - 'iOS8')
  732. // - false
  733. // If this option is enabled:
  734. // - RFC todo support is SEVERELY limited and the client mimics the behaviour
  735. // of Apple Reminders.app (to ensure maximum compatibility)
  736. // - when a single instance of repeating todo is edited, it becomes an
  737. // autonomous non-repeating todo with NO relation to the original repeating
  738. // todo
  739. // - capabilities of repeating todos are limited - only the first instance
  740. // is ever visible in the interface
  741. // - support for todo DTSTART attribute is disabled
  742. // - support for todo STATUS attribute other than COMPLETED and NEEDS-ACTION
  743. // is disabled
  744. // - [iOS6 only] support for LOCATION and URL attributes is disabled
  745. // Example:
  746. var globalAppleRemindersMode=true;
  747. // globalSubscribedCalendars
  748. // This option specifies a list of remote URLs to ics files (e.g.: used
  749. // for distributing holidays information). Subscribed calendars are
  750. // ALWAYS read-only. Remote servers where ics files are hosted MUST
  751. // return proper CORS headers (see readme.txt) otherwise this functionality
  752. // will not work!
  753. // NOTE: subsribed calendars are NOT "shared" calendars. For "shared"
  754. // calendars see the delegation option in globalAccountSettings,
  755. // globalNetworkCheckSettings and globalNetworkAccountSettings.
  756. // List of properties used in globalSubscribedCalendars variable:
  757. // - hrefLabel
  758. // This options defines the header string above the subcsribed calendars.
  759. // - calendars
  760. // This option specifies an array of remote calendar objects with the
  761. // following properties:
  762. // - href
  763. // Set this option to the "full URL" of the remote calendar
  764. // - userAuth
  765. // NOTE: keep empty if remote authentication is not required!
  766. // - userName
  767. // Set the username you want to login.
  768. // - userPassword
  769. // Set the password for the given username.
  770. // - typeList
  771. // Set the list of objects you want to process from remote calendars;
  772. // two options are available:
  773. // - 'vevent' (show remote events in the interface)
  774. // - 'vtodo' (show remote todos in the interface)
  775. // - ignoreAlarm
  776. // Set this option to true if you want to disable alarm notifications
  777. // from the remote calendar.
  778. // - displayName
  779. // Set this option to the name of the calendar you want to see
  780. // in the interface.
  781. // - color
  782. // Set the calendar color you want to see in the interface.
  783. // Example:
  784. //var globalSubscribedCalendars={
  785. // hrefLabel: 'Subscribed',
  786. // calendars: [
  787. // {
  788. // href: 'http://something.com/calendar.ics',
  789. // userAuth: {
  790. // userName: '',
  791. // userPassword: ''
  792. // },
  793. // typeList: ['vevent', 'vtodo'],
  794. // ignoreAlarm: true,
  795. // displayName: 'Remote Calendar 1',
  796. // color: '#ff0000'
  797. // },
  798. // {
  799. // href: 'http://calendar.com/calendar2.ics',
  800. // ...
  801. // ...
  802. // }
  803. // ]
  804. //};