Commit Graph

7181 Commits

Author SHA1 Message Date
Nathan Gray
2ea64a658b Better handling of different hights & open up vs down 2012-11-27 21:32:53 +00:00
Nathan Gray
524ada841b Use parent method to generate top menu 2012-11-27 15:51:08 +00:00
Nathan Gray
4dc9f6a472 Fix for chosen results pushing down bottom of popup window 2012-11-26 22:55:09 +00:00
Nathan Gray
284a644069 Use parent method to generate top menu 2012-11-26 16:13:41 +00:00
Ralf Becker
15df850d28 ignore not (yet) existing mailaccounts table, but not checking for emailadmin, as it is not set in setup 2012-11-22 14:58:34 +00:00
Ralf Becker
9b9d1bd07e ignore not (yet) existing mailaccounts table, but not checking for emailadmin, as it is not set in setup 2012-11-22 14:57:33 +00:00
Ralf Becker
45e5bec480 handle not (yet) existing mailaccounts table eg. in setup or when no emailadmin installed 2012-11-22 13:26:04 +00:00
Ralf Becker
350acd2157 handle not (yet) existing mailaccounts table eg. in setup or when no emailadmin installed 2012-11-22 13:25:22 +00:00
Nathan Gray
0b3836a9f5 If chosen selectbox is close to bottom of the page, open options above the selectbox 2012-11-21 16:22:29 +00:00
Ralf Becker
26542715c2 accounts part missed in r40877: first take on migrating mail accounts from LDAP to SQL (only qmailUser schema) 2012-11-19 13:19:40 +00:00
Ralf Becker
60a22fe179 accounts part missed in r40877: first take on migrating mail accounts from LDAP to SQL (only qmailUser schema) 2012-11-19 13:19:14 +00:00
Ralf Becker
e6af7f46c7 deprecated defaultsmtp in favor of autoloadable emailadmin_smtp, matching exiting emailadmin_smtp_ldap and new emailadmin_smtp_sql extending it
r40850: need to move accounts reference to emailadmin_smtp
r40851: store group email in mailaccounts table
2012-11-19 12:53:33 +00:00
Ralf Becker
12fa75f978 fix typo in comment 2012-11-19 08:24:47 +00:00
Ralf Becker
b82f6516e8 fixed not load translations if depending on multiple files and maintaining load_via in tree-wide cache 2012-11-16 09:21:17 +00:00
Ralf Becker
cf5361d925 fixed not load translations if depending on multiple files and maintaining load_via in tree-wide cache 2012-11-16 09:18:44 +00:00
Ralf Becker
64f31a0fdc * Setup/API: translations are no longer installed in database, but loaded directly from lang-files into tree-level cache
also backported:
- r40748: loading all translations in one go from cachem, saving some latency
- r36329: config is now cached on instance level, arrays in $GLOBALS[egw_info][server] are now automatically serialized and unserialized
2012-11-15 19:12:15 +00:00
Nathan Gray
1484e44c00 Left align chosen selectbox contents 2012-11-15 17:40:46 +00:00
Klaus Leithoff
66a4b635e5 improved control of excess empty div tags 2012-11-15 15:31:02 +00:00
Klaus Leithoff
cd9e0cfab5 improved control of excess empty div tags 2012-11-15 15:30:11 +00:00
Ralf Becker
6341e8fc33 store group email in mailaccounts table 2012-11-15 15:26:35 +00:00
Klaus Leithoff
f286c0228e if style stuff contains e.g. font-family: Kunstler Script EGroupware Script detection complains about script tags when posting such content. So we remove Script from inline style definition 2012-11-15 11:56:04 +00:00
Klaus Leithoff
bea130bc23 if style stuff contains e.g. font-family: Kunstler Script EGroupware Script detection complains about script tags when posting such content. So we remove Script from inline style definition 2012-11-15 11:55:19 +00:00
Nathan Gray
b83a19284a UI changes for chosen selectboxes 2012-11-14 20:33:33 +00:00
Nathan Gray
8b55a21206 More changes to use chosen for fancy selectboxes - apply to egw multi-select and select user too 2012-11-13 22:14:00 +00:00
Nathan Gray
f72a582532 Use chosen plugin for to get fancy selectboxes. Selectboxes with more than 12 options get it turned on automatically 2012-11-12 19:29:23 +00:00
Ralf Becker
234a8a8154 check if we use cookies for the session, but no cookie set: happens eg. in sitemgr (when redirecting to a different domain) or with new java notification app 2012-11-12 09:48:31 +00:00
Klaus Leithoff
08ba7c2827 mailheader-decoding: check if there is a possible nested encoding; make sure that the inputstring and the decoded result are different before recursively calling decodeMailHeader on the decoded result (to avoid loops) 2012-11-07 11:47:48 +00:00
Klaus Leithoff
3420b15ff4 mailheader-decoding: check if there is a possible nested encoding; make sure that the inputstring and the decoded result are different before recursively calling decodeMailHeader on the decoded result (to avoid loops) 2012-11-07 11:46:14 +00:00
Nathan Gray
e9393e1cb5 Fix category search missing when result is a child, but parent does not match too 2012-11-06 21:29:08 +00:00
Klaus Leithoff
623fc12fb8 use NEW exception for assertion failed 2012-11-06 10:38:43 +00:00
Klaus Leithoff
b48bee9406 use NEW exception for assertion failed 2012-11-06 10:36:25 +00:00
Nathan Gray
2218fd8956 Fix category search missing when result is a child, but parent does not match too 2012-11-05 17:56:03 +00:00
Ralf Becker
19e8654778 * Admin: new function "Clear cache and register hooks", also called automatic when restoring a backup 2012-11-05 14:10:23 +00:00
Ralf Becker
1e53272309 loading all translations in one go from cachem, saving some latency 2012-11-05 13:24:52 +00:00
Ralf Becker
a709f6104f * Setup/API: translations are no longer installed in database, but loaded directly from lang-files into tree-level cache 2012-11-05 12:18:22 +00:00
Klaus Leithoff
6f0f6838cb allow to access ReplyTo of MailObject by extending classes; provide Function to retrieve replyTo Address; alter Method to detect wether a filename is already encoded, and if - do not try to use the basename as filename 2012-11-05 08:49:41 +00:00
Klaus Leithoff
4957c77f74 allow to access ReplyTo of MailObject by extending classes; provide Function to retrieve replyTo Address; alter Method to detect wether a filename is already encoded, and if - do not try to use the basename as filename 2012-11-05 08:48:13 +00:00
Ralf Becker
56b9129f20 fix for bug #3164: Lines containing accents are truncated in vCard exports 2012-11-01 17:24:06 +00:00
Ralf Becker
b48e399253 fix for bug #3164: Lines containing accents are truncated in vCard exports 2012-11-01 17:23:40 +00:00
Ralf Becker
bf71b72225 do NOT delete preferences, before writing them in preferences::save_repository (might be cause for race-condition causing preferences to be lost) 2012-10-31 14:16:35 +00:00
Ralf Becker
06bc5ea552 do NOT delete preferences, before writing them in preferences::save_repository (might be cause for race-condition causing preferences to be lost) 2012-10-31 14:16:17 +00:00
Ralf Becker
8c4125e75c * Admin: new function "Clear cache and register hooks", also called automatic when restoring a backup 2012-10-31 14:00:34 +00:00
Ralf Becker
b514745d01 * Admin: new function "Clear cache and register hooks", also called automatic when restoring a backup 2012-10-31 13:56:40 +00:00
Ralf Becker
516fc273a9 correctly urlencode redirects if we have no ntlm available 2012-10-30 14:43:28 +00:00
Ralf Becker
49a0d70324 correctly urlencode redirects if we have no ntlm available 2012-10-30 14:43:10 +00:00
Klaus Leithoff
c133b16728 * eMail/HTMLawed: introduce and use new make_tag_strict option 3, to exclude font from applying strict measures to it 2012-10-30 14:27:40 +00:00
Klaus Leithoff
627c65e6dd * eMail/HTMLawed: introduce and use new make_tag_strict option 3, to exclude font from applying strict measures to it 2012-10-30 14:24:08 +00:00
Ralf Becker
102204aae8 disable permanent error-log 2012-10-30 12:25:45 +00:00
Ralf Becker
d28f83d70e disable permanent error-log and tests 2012-10-30 12:25:10 +00:00
Ralf Becker
8b96daeaf0 cumulate group-preferences of all memberships of a user, not just his primary group 2012-10-30 10:30:44 +00:00
Ralf Becker
a16bfc78eb allow to query cache for multiple locations at once: $location param to getCache is an array and returned is an array indexed by these locations (not found entries are NOT returned 2012-10-30 10:28:34 +00:00
Ralf Becker
7cd606e529 cumulate group-preferences of all memberships of a user, not just his primary group 2012-10-30 10:22:05 +00:00
Ralf Becker
71cebbf12e allow to query cache for multiple locations at once: $location param to getCache is an array and returned is an array indexed by these locations (not found entries are NOT returned 2012-10-30 10:02:37 +00:00
Klaus Leithoff
c6372b0f49 * eMail: allow table as inline element while balancing tags (new internal config option); try to correct common errors/problems in html-code which caused display/layout problems 2012-10-29 15:51:30 +00:00
Klaus Leithoff
9c73af1aca * eMail: allow table as inline element while balancing tags (new internal config option); try to correct common errors/problems in html-code which caused display/layout problems 2012-10-29 15:49:13 +00:00
Ralf Becker
5758ad91c3 consistently send ETag by using and extending put_response_headers 2012-10-29 12:24:31 +00:00
Ralf Becker
c327cba153 consistently send ETag by using and extending put_response_headers 2012-10-29 12:23:17 +00:00
Ralf Becker
d8439f7835 * CalDAV/CardDAV: fix not working logging of errors into traffic log 2012-10-29 12:14:58 +00:00
Ralf Becker
aca3b3b028 * CalDAV/CardDAV: fix not working logging of errors into traffic log 2012-10-29 12:14:33 +00:00
Ralf Becker
f7cc51ad18 do NOT minify ckeditor, as it breaks it (it is already minifyed anyway) 2012-10-26 10:00:05 +00:00
Ralf Becker
18fe5c1d4b fixed minify issues: installation in docroot is now handeled, as well as problems with jscalendar and email 2012-10-26 09:24:39 +00:00
Ralf Becker
89991bc69f using pseudo-sessionid for ownCloud remote.php url too, as we otherwise generate lots of new sessions 2012-10-25 12:51:47 +00:00
Ralf Becker
7a981eba15 using pseudo-sessionid for ownCloud remote.php url too, as we otherwise generate lots of new sessions 2012-10-25 12:51:28 +00:00
Ralf Becker
06568552c6 * Filemanager/WebDAV: support for newer ownCloud clients (eg. version 1.1.1) 2012-10-24 16:27:28 +00:00
Ralf Becker
99e1cad866 * Filemanager/WebDAV: support for newer ownCloud clients (eg. version 1.1.1) 2012-10-24 16:25:53 +00:00
Klaus Leithoff
96eea7c331 introduce detect_encoding functionality as a static function (used in decodeMailHeader as of now) 2012-10-24 10:56:08 +00:00
Klaus Leithoff
5b295573dd introduce detect_encoding functionality as a static function (used in decodeMailHeader as of now) 2012-10-24 10:54:44 +00:00
Ralf Becker
797c28e008 fixed typo causing alert with "undefied" message, instead of an error 2012-10-24 09:52:21 +00:00
Ralf Becker
79d2c8f8a1 fixed typo causing alert with "undefied" message, instead of an error 2012-10-24 09:52:00 +00:00
Ralf Becker
b6a2d9591f koping with EGroupware installed direct in docroot (webserver_url "", "/" or "http(s)://domain.com/") 2012-10-24 06:27:56 +00:00
Ralf Becker
f6aa1ca1aa * API: only cache in APC by default, if it has at least 64M of shared memory, otherwise use filesystem 2012-10-23 07:49:42 +00:00
Ralf Becker
a6190a6933 * API: only cache in APC by default, if it has at least 64M of shared memory, otherwise use filesystem 2012-10-23 07:49:21 +00:00
Ralf Becker
c77521cbd0 * CalDAV: fixed parsing of principal urls used by iOS6 for users 2012-10-22 16:44:10 +00:00
Ralf Becker
c87d6997ab * CalDAV: fixed parsing of principal urls used by iOS6 for users 2012-10-22 16:43:51 +00:00
Ralf Becker
dcb99a352f * CalDAV/CardDAV: return urn:uuid as last record in calendar-user-address-set, as according to iCal4OL developer, some clients might have problems with it, also adding both full uri and just path of principal url, as calendarserver does it 2012-10-16 12:17:32 +00:00
Ralf Becker
b161c0d500 requests in log were always trunkated (since last changes) and fixed quoting in autoindex for hierarchical props in collection resources 2012-10-16 11:54:16 +00:00
Ralf Becker
5c5b4e1b16 make logging available for iSchedule, only backported so class stays close to trunk, iSchedule itself is not yet ready to be backported 2012-10-16 11:50:59 +00:00
Ralf Becker
138d16cfa3 * CalDAV/Calendar/Resources: calendars of resources can now be accessed or subscribed via CalDAV, to subscribe use CalDAV preferences 2012-10-16 11:30:35 +00:00
Ralf Becker
a735c5886b * CalDAV/CardDAV: sync-collection report for calendar allowing a more efficient sync 2012-10-16 11:11:29 +00:00
Ralf Becker
28f8d4e2b7 * InfoLog/CalDAV: sync-collection report, thought reminder app on OS X 10.8.2 does not use it, moved logic for sync-token to baseclass and determine availablity on supported-report-set 2012-10-16 11:08:33 +00:00
Ralf Becker
39012f847b * CardDAV: rfc 6578 sync-collection report (more efficient way to sync contacts) 2012-10-16 11:04:27 +00:00
Ralf Becker
6996efe50b use minify on javascript files: for now minify does NOT support query parameters, nor php files generating javascript, therefore these are excluded 2012-10-15 17:22:44 +00:00
Ralf Becker
82c73c423e patch for minify to support EGroupware set up as an alias, which is a common setup 2012-10-15 16:22:42 +00:00
Klaus Leithoff
c7a38f894c ckeditor (current) version 3.6.4 2012-10-15 10:03:09 +00:00
Klaus Leithoff
6408fdfc01 update htmLawed to Version 1.1.14 (including adaptions from http://www.bioinformatics.org/phplabware/forum/viewtopic.php?id=235) 2012-10-15 09:35:30 +00:00
Klaus Leithoff
019a84cd17 update htmLawed to Version 1.1.14 (including adaptions from http://www.bioinformatics.org/phplabware/forum/viewtopic.php?id=235) 2012-10-15 09:33:01 +00:00
Ralf Becker
4e8f54268c fix for typo: path_url --> parse_url 2012-10-15 06:51:54 +00:00
Ralf Becker
71ec92a777 cache, concat and minify all css resources to speed up requests, javascript files planned too 2012-10-14 19:38:32 +00:00
Ralf Becker
f56c788176 allow to use HTTP_HOST (without optional port) or SERVER_NAME to find matching instance 2012-10-12 15:12:08 +00:00
Ralf Becker
4c5b764347 allow to use HTTP_HOST (without optional port) or SERVER_NAME to find matching instance 2012-10-12 15:11:42 +00:00
Klaus Leithoff
09d3160447 rework changes regarding denied attributes; improve import of mails regarding filename detection for attachments 2012-10-10 10:40:08 +00:00
Klaus Leithoff
db78e25cc0 rework changes regarding denied attributes; improve import of mails regarding filename detection for attachments 2012-10-10 10:37:45 +00:00
Klaus Leithoff
259a917e38 ckeditor (current) version 3.6.4 2012-10-09 15:03:32 +00:00
Klaus Leithoff
ed0dd6b321 filter/remove (on(before)?(abort|blur|change|click|dblclick|error|focus|keydown|keypress|keyup|load|mousedown|mousemove|mouseout|mouseover|mouseup|reset|select|submit|unload)) attributes in/with htmLawed for default and email config 2012-10-09 09:29:01 +00:00
Klaus Leithoff
7e827dfcef filter/remove (on(before)?(abort|blur|change|click|dblclick|error|focus|keydown|keypress|keyup|load|mousedown|mousemove|mouseout|mouseover|mouseup|reset|select|submit|unload)) attributes in/with htmLawed for default and email config 2012-10-09 09:27:13 +00:00
Ralf Becker
1b98e9e858 requests in log were always trunkated (since last changes) and fixed quoting in autoindex for hierarchical props in collection resources 2012-10-08 11:20:29 +00:00
Ralf Becker
46acebf2a7 fixed many issues with dkim signing 2012-10-06 19:42:05 +00:00
Nathan Gray
807c3e2ae5 Prevent repeats of default template directory 2012-10-05 14:54:13 +00:00
Ralf Becker
81376af3f3 got dkim-validation working with oversigned headers and sha256 hashing algorithm 2012-10-05 10:52:53 +00:00
Ralf Becker
20db974942 added logging like for CalDAV/CardDAV (curently permanently enabled) 2012-10-04 12:09:25 +00:00
Ralf Becker
bef455f5e3 make logging available for iSchedule 2012-10-04 11:59:04 +00:00
Ralf Becker
aeeb585604 dkim signature according to iSchedule draft 02 2012-10-04 05:56:30 +00:00
Ralf Becker
18ceb54882 dkim signature according to iSchedule draft 02 2012-10-04 05:53:52 +00:00
Ralf Becker
5a890e36ab updated capabilities to draft 02 2012-10-03 11:19:12 +00:00
Ralf Becker
e9fe6cd6e1 adapted to updated spec using action=capabilities 2012-10-03 10:10:13 +00:00
Ralf Becker
19f25f2012 adapted to updated spec using action=capabilities 2012-10-03 10:08:09 +00:00
Ralf Becker
0d5ae0e2c2 added dkim signature validation to ischedule_server 2012-10-03 07:56:43 +00:00
Ralf Becker
33510a2f4d dkim signature for posts using mailDomainSigner class, plus some code to generate and store a key-pair 2012-10-02 22:30:36 +00:00
Nathan Gray
7410c738c8 Prevent repeats of default template directory 2012-10-02 14:22:07 +00:00
Ralf Becker
4d7db4e75d fixed invalid xml in CardDAV:principal-address property of pricipal collection 2012-10-02 05:21:06 +00:00
Ralf Becker
4e2a7dab80 * CardDAV/Addressbook: fixed not working delete of contacts 2012-10-01 17:23:44 +00:00
Ralf Becker
a52876ad6a freebusy for iSchedule 2012-10-01 14:21:55 +00:00
Ralf Becker
eef63477c5 fixed invalid xml in CardDAV:principal-address property of pricipal collection 2012-10-01 14:16:18 +00:00
Ralf Becker
3e538116c9 add some check if cached config does not meet basic requirements, recreate it then 2012-10-01 09:23:51 +00:00
Ralf Becker
7783f1535a start of iSchedule implementation 2012-09-30 21:03:33 +00:00
Ralf Becker
db4bdb7f74 * CalDAV/Calendar/Resources: calendars of resources can now be accessed or subscribed via CalDAV, to subscribe use CalDAV preferences 2012-09-27 15:46:08 +00:00
Ralf Becker
52675388a3 * CalDAV/CardDAV: sync-collection report for all apps allowing a more efficient sync 2012-09-26 14:30:47 +00:00
Ralf Becker
54317da546 additionally check prefs read from cache, if they are of type array, otherwise read them from db, might help with APC at least in some versions not seem to deal correctly with out-of-memory 2012-09-26 10:18:47 +00:00
Ralf Becker
c9074f936d additionally check prefs read from cache, if they are of type array, otherwise read them from db, might help with APC at least in some versions not seem to deal correctly with out-of-memory 2012-09-26 10:18:18 +00:00
Ralf Becker
eaebb0d27a allow storing and retrieval of following CalDAV properties: default-alarm-vevent-date, default-alarm-vevent-datetime 2012-09-26 10:01:45 +00:00
Ralf Becker
078fa987d4 allow storing and retrieval of following CalDAV properties: default-alarm-vevent-date, default-alarm-vevent-datetime 2012-09-26 10:01:02 +00:00
Ralf Becker
9df39d8dfc * CalDAV/CardDAV: Max OS X 10.8 (Mountain Lion) support: automatic sync of all addressbooks in one 2012-09-26 08:06:48 +00:00
Ralf Becker
9c0fc7c2c4 * Filemanager: fixed not working repair of doublicate directories 2012-09-25 12:55:43 +00:00
Ralf Becker
3b7a0171c8 * Filemanager: fixed not working repair of doublicate directories 2012-09-25 12:55:17 +00:00
Nathan Gray
86a5b379cb Fix fatal error deleting user (LDAP) 2012-09-24 14:46:33 +00:00
Ralf Becker
f224fe5852 sync-collection report for InfoLog, thought reminder app on OS X 10.8.2 does not use it, moved logic for sync-token to baseclass and determine availablity on supported-report-set 2012-09-24 10:26:29 +00:00
Ralf Becker
e69918f583 * CalDAV/CardDAV: return urn:uuid as last record in calendar-user-address-set, as according to iCal4OL developer, some clients might have problems with it, also adding both full uri and just path of principal url, as calendarserver does it 2012-09-24 07:07:57 +00:00
Ralf Becker
a6f541edba * CardDAV: rfc 6578 sync-collection report (more efficient way to sync contacts) 2012-09-23 20:19:35 +00:00
Ralf Becker
05ebf438ff backported docu update to have comments available in view-generator 2012-09-21 16:50:59 +00:00
Nathan Gray
a86a3d72c6 Fix fatal error deleting user (LDAP) 2012-09-21 14:36:02 +00:00
Ralf Becker
f87d202652 docu update 2012-09-21 11:59:44 +00:00
Ralf Becker
f3d12c72c1 * API/all apps: fixed account-selection popup started with all users, not primary group, also displaying shown group in bold 2012-09-04 14:08:30 +00:00
Ralf Becker
40e7908231 * API/all apps: fixed account-selection popup started with all users, not primary group, also displaying shown group in bold 2012-09-04 14:08:09 +00:00
Klaus Leithoff
8e755e1813 fix the use of deprecated firstname/lastname; using account_firstname/account_lastname 2012-08-30 11:50:00 +00:00
Klaus Leithoff
6b8a937977 fix the use of deprecated firstname/lastname; using account_firstname/account_lastname 2012-08-30 11:49:06 +00:00
Ralf Becker
988d8148c5 an other PHP < 5.3 compatibilty function for ImportExport 2012-08-28 14:59:27 +00:00
Ralf Becker
8eff610872 support (ignoring) for used ! (exclamation mark) in format 2012-08-28 10:28:27 +00:00
Ralf Becker
b62a3f502b * ImportExport: fix for fatal error in PHP 5.2 not having egw_time::createFromFormat() 2012-08-27 14:04:49 +00:00
Christian Binder
bd270b4010 fix ignored _onExecute attribute 2012-08-25 14:40:48 +00:00
Klaus Leithoff
4cd32b9deb silence warnings 2012-08-22 08:00:36 +00:00
Klaus Leithoff
6eaeae0d45 silence warnings 2012-08-22 07:58:18 +00:00
Klaus Leithoff
c361ef0219 * email: fix for ->no initial border on plaintext editor textarea<- 2012-08-15 14:56:37 +00:00
Klaus Leithoff
c888134a04 * email: fix for ->no initial border on plaintext editor textarea<- 2012-08-15 14:55:02 +00:00
Ralf Becker
5eeca01d36 * Filemanager/WebDAV: fixed not working Subscribtions (Notifications) when using WebDAV, caused by PHPs internal stat-cache 2012-08-14 13:55:21 +00:00
Klaus Leithoff
5b5e40ac1b fix bug regarding certain russian filenames when forwarding/compose as new, as AddStringAttachment is using basename to make sure only a filename will be used for the namepart; some fixes backported from phpmailer5.2.1 2012-08-14 13:55:04 +00:00
Ralf Becker
89a10f6234 * Filemanager/WebDAV: fixed not working Subscribtions (Notifications) when using WebDAV, caused by PHPs internal stat-cache 2012-08-14 13:55:02 +00:00
Klaus Leithoff
e5a80d758a fix bug regarding certain russian filenames when forwarding/compose as new, as AddStringAttachment is using basename to make sure only a filename will be used for the namepart; some fixes backported from phpmailer5.2.1 2012-08-14 13:52:26 +00:00
Christian Binder
98d17d7ca4 removed accidentally found typo and logging 2012-08-14 12:02:47 +00:00
Ralf Becker
28354db5d5 only truncate string if length given and <= 255, to not unnecessary truncate varchar(>255) as PostgreSQL uses text anyway and MySQL truncates itself silently (unless strict mode!) 2012-08-13 14:43:24 +00:00
Ralf Becker
25ddf016f4 only truncate string if length given and <= 255, to not unnecessary truncate varchar(>255) as PostgreSQL uses text anyway and MySQL truncates itself silently (unless strict mode!) 2012-08-13 14:42:55 +00:00