Commit Graph

7031 Commits

Author SHA1 Message Date
Ralf Becker
d97da6d309 modifications for new iSchedule draft:
- ischedule-relaxed header cannonisation
- error xml response
- modified capabilities with serial and iSchedule-Capabilities header in every response
- using urls with mailto: schema for Originator and Recipient headers
2013-01-28 22:00:33 +00:00
Ralf Becker
2fadcab928 modifications for iSchedule 2013-01-28 21:50:07 +00:00
Ralf Becker
c8f1733634 import of orginal version of PHP mail domain signer, required in enhanced form for iSchedule 2013-01-28 21:49:29 +00:00
Ralf Becker
f40a292865 updated capabilities query to current iSchedule spec from jan 2013 2013-01-28 18:15:44 +00:00
Ralf Becker
20e1299729 updated capabilities query to current iSchedule spec from jan 2013 2013-01-28 17:34:00 +00:00
Ralf Becker
9d8c2f42c9 * CalDAV: fixed accepting event removed it from calendar, because email address of a deleted account was prefered over regular account, correctly reporting not found URLs in multiget report 2013-01-25 17:52:28 +00:00
Ralf Becker
2841317b08 * all apps: exclude expired or deactivated accounts from all lists and selections (beside admin app to be able to activate them again) 2013-01-25 13:21:31 +00:00
Ralf Becker
4c060a5889 * Filemanager: introduced maximum symlink depth of 10, to stop infinit recursion in circular symlinks (eg. two symlinks pointing to each other) 2013-01-24 14:26:02 +00:00
Ralf Becker
9a9e6f0808 docu update 2013-01-24 09:30:30 +00:00
Ralf Becker
0f76ff5ab5 * CardDAV: fixed wrong privileges for accounts addressbook, causing clients to report it read-only even for admins 2013-01-22 08:37:58 +00:00
Ralf Becker
34f3c8bf1f * Admin/Setup: fixed restore always converted longtext columns to text and therefore truncating them to 64k on MySQL, also fixed backup to report them correctly in backup of schema 2013-01-21 09:49:59 +00:00
Ralf Becker
140d7498e8 added missing, but not used, parameter 2013-01-21 08:14:01 +00:00
Ralf Becker
be6845b4d0 * All apps: merged missing translations from other apps or branches 2013-01-18 13:48:34 +00:00
Ralf Becker
da811e3509 * CalDAV/Calendar/Ressources: readded missing resource- and location-calendars after recent changes in resources app 2013-01-18 13:07:11 +00:00
Nathan Gray
cfa0b7277a Fix for IE overflow from Anthony Messina 2013-01-17 23:29:14 +00:00
Nathan Gray
575464654c Move default app preference out of Text editor settings into template settings section 2013-01-17 23:21:28 +00:00
Klaus Leithoff
c8aaaa68cf handle php warning, when trying to call AddrAppend with empty object/array 2013-01-17 10:14:45 +00:00
Klaus Leithoff
d159f2b51f * API: adding library idna_convert by Matthias Sommerfeld, and some egw_wrapper for basic config and autoloading 2013-01-10 14:55:35 +00:00
Ralf Becker
5178d84537 1.5.001 update (1.4 --> 1.6): if filename not found in filesystem try with hardcoded iso-8859-1 charset instead of current utf-8 2013-01-04 07:27:31 +00:00
Klaus Leithoff
5d8531f66f adapt comment 2012-12-17 14:44:18 +00:00
Klaus Leithoff
a210fbc3c7 * email: allow cid as overall url schema; handle background url in htmLawed, as background is not allowed except for body, but commonly used with other tags (e.g. in td); control schema for background in hook_tag 2012-12-17 14:39:00 +00:00
Nathan Gray
6c03b0ec39 Try to avoid conflicts between framework's egw_appWindow() & jsapi's egw_appWindow() 2012-12-12 19:45:27 +00:00
Klaus Leithoff
c3d2170518 remove CR from start and end of lang string line read from file, as it breaks stuff e.g. in eMail module 2012-12-12 10:18:40 +00:00
Klaus Leithoff
36bc7871c1 * API/Translation: fix bug with missing german umlauts as first letter of words; ( as php5.3.3 with squeeze does not support splitting lines with fgetcsv while reading properly if the first letter after the delimiter is a german umlaut (UTF8 representation thereoff)) 2012-12-12 09:42:56 +00:00
Nathan Gray
c067e2ccb7 Do the check in a way that matches correctly for all 2012-12-11 15:31:35 +00:00
Nathan Gray
cf5269f6d1 Check for empty user font preference span, and remove it so empty checks still work 2012-12-10 23:10:58 +00:00
Nathan Gray
340fec0611 - Remove debug
- Change font in results to match selected option and other selectboxes
2012-12-10 16:16:58 +00:00
Nathan Gray
cbb88e22cb Remove other places trying to set default ckEditor toolbar mode - using common preference 2012-12-05 20:22:13 +00:00
Nathan Gray
85c15e42fd Use preference for ckEditor features by default 2012-12-05 19:58:37 +00:00
Nathan Gray
3ee18797b0 Rework common preferences
- Better grouping
- Added preferences for rich text editor
  - Font
  - Font size
Take effect on new, blank editors.  Existing data is untouched.
2012-12-04 22:21:59 +00:00
Klaus Leithoff
6a2b8882de for replaceTagsCompletely modify the prex for singeltons (as we are in Ungreedy mode, so we expect * to be ungreedy without specifying ?) 2012-12-04 14:13:36 +00:00
Nathan Gray
74931d30a9 Return the result of opening so caller can use it 2012-12-04 00:13:12 +00:00
Nathan Gray
713a78dc96 Add a new debug level that includes a stack trace 2012-12-04 00:12:13 +00:00
Nathan Gray
d0fa6110d1 Use CSS to style preference tabs 2012-12-03 18:36:00 +00:00
Klaus Leithoff
f231144c03 * eMail: use different image to show that a image was not loaded (due to allowExternalIMGs=no) 2012-11-29 13:55:45 +00:00
Klaus Leithoff
6378d289ca use better defaults for some egw_info server values (num_unsuccessful_id, num_unsuccessful_ip, block_time) 2012-11-29 11:13:58 +00:00
Nathan Gray
b0e47a70f7 Fix bug where multi-select default text was not fully shown 2012-11-27 22:24:25 +00:00
Nathan Gray
2ea64a658b Better handling of different hights & open up vs down 2012-11-27 21:32:53 +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
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
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
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
Nathan Gray
1484e44c00 Left align chosen selectbox contents 2012-11-15 17:40:46 +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
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
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
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
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
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
b48e399253 fix for bug #3164: Lines containing accents are truncated in vCard exports 2012-11-01 17:23:40 +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
49a0d70324 correctly urlencode redirects if we have no ntlm available 2012-10-30 14:43:10 +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
d28f83d70e disable permanent error-log and tests 2012-10-30 12:25:10 +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
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
c327cba153 consistently send ETag by using and extending put_response_headers 2012-10-29 12:23:17 +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
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
99e1cad866 * Filemanager/WebDAV: support for newer ownCloud clients (eg. version 1.1.1) 2012-10-24 16:25:53 +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
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
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
c87d6997ab * CalDAV: fixed parsing of principal urls used by iOS6 for users 2012-10-22 16:43:51 +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
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
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
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
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
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
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
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
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
3b7a0171c8 * Filemanager: fixed not working repair of doublicate directories 2012-09-25 12:55:17 +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
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
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
6b8a937977 fix the use of deprecated firstname/lastname; using account_firstname/account_lastname 2012-08-30 11:49:06 +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
c888134a04 * email: fix for ->no initial border on plaintext editor textarea<- 2012-08-15 14:55:02 +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
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
Ralf Becker
1d743830c9 need to allow account_lid string as parameter for accounts::id2name(), it is used in many places 2012-08-13 14:26:00 +00:00
Ralf Becker
c23f7fc95b * WebDAV/GroupDAV/CalDAV/CardDAV: removed option only used for old KDE GroupDAV resource and unknown WebDAV clients producing invalid XML, fix for community bug #3152 2012-08-13 09:32:03 +00:00
Ralf Becker
c0f83a275d * API/Setup/MySQL: fixed backup to correctly report boolean columns and support MySQL 5.0+ varchar(>255) 2012-08-12 09:49:06 +00:00
Ralf Becker
188e2f8038 cast accounts->members(hips) to array, to cope without PHP warnings for not (longer) existing accounts 2012-08-09 09:02:50 +00:00
Ralf Becker
51270655f9 cast accounts->members(hips) to array, to cope without PHP warnings for not (longer) existing accounts 2012-08-09 08:56:28 +00:00
Ralf Becker
46f700851a cast accounts->members(hips) to array, to cope without PHP warnings for not (longer) existing accounts 2012-08-09 08:50:04 +00:00
Ralf Becker
110ad12bb6 delete user categories, when user get deleted and admin command to delete already orphaned categories: admin/admin-cli.php --admin-cmd-check-cats admin,password 2012-08-08 16:25:03 +00:00
Ralf Becker
e913a6a263 pending translations from translation.stylite.de 2012-08-08 12:11:04 +00:00
Ralf Becker
48009a16e5 avoid calling accounts->members(hips) without an account_id 2012-08-08 10:47:47 +00:00
Ralf Becker
75b458b2f8 avoid calling accounts->members(hips) without an account_id 2012-08-08 10:41:04 +00:00
Ralf Becker
c30999f1b4 call hook again, in case an (smtp) error happened 2012-08-08 10:01:01 +00:00
Ralf Becker
92a97ea4d9 accounts::id2name() needs to return false, not throw an exception for not found accounts 2012-08-07 16:09:54 +00:00
Ralf Becker
0e0993863c * API/preferences: caching preferences in instance cache instead of session, to get immediate update in long running sessions (eg. sync) and get smaller sessions 2012-08-07 13:57:56 +00:00
Ralf Becker
6fa4cc864e not storing $GLOBALS[egw_info][user] twice in session (was also stored as $GLOBALS[egw]->session->user), also removing not used $GLOBALS[egw_info][user][acl], but re-reading preferences in session::verify() so long running sessions get preferences set by an other session, removing nowhere used creditspoint class from api (calls not public available creditspoint app) 2012-08-07 08:55:41 +00:00
Ralf Becker
c2105fcf31 * API/accounts: instance-wide cache for account-data incl. members and memberships, so change take imediate effect (compared to previous session based cache) 2012-08-06 10:06:59 +00:00
Klaus Leithoff
5ac1d755b2 adapting jerryr brushed-metal background image, as background color grey does not match the b-m look 2012-08-03 14:11:45 +00:00
Klaus Leithoff
5b47c1cdfa different approach to avoid php-warnings on str_repeat, provided by Santosh Patnaik 2012-08-03 08:24:40 +00:00
Klaus Leithoff
6123e479b2 revert r40031 2012-08-02 10:01:39 +00:00
Klaus Leithoff
f9ceede91b different approach to avoid php-warnings on str_repeat 2012-08-02 08:27:06 +00:00
Klaus Leithoff
6fc8e208c1 add rarely used charset mswin1252; seems to be a variation of windows-1252 2012-08-01 14:53:33 +00:00
Klaus Leithoff
e547e8adfa if balancing is switched on, allow span element everywhere 2012-08-01 08:29:32 +00:00
Ralf Becker
0195bad452 * Admin/Preferences: fixed not removable ACL rights for apps using NO group-acl, eg. Addressbook or InfoLog 2012-07-31 17:44:01 +00:00
Klaus Leithoff
9bb5ddfdf4 upgrade to htmLawed 1.1.13, 22 July 2012 of Santosh Patnaik 2012-07-31 15:14:44 +00:00
Ralf Becker
0d84fdd087 jQuery 1.6 (used in Trunk) needs to use prop() instead of attr() to access DOM attributes 2012-07-31 13:35:29 +00:00
Ralf Becker
42563b8d1a * LDAP authentication: if changing password fails bind as user, try changing is with given admin-dn, to cater for all sorts of ldap configurations 2012-07-31 12:28:05 +00:00
Klaus Leithoff
eafb5f8730 take care of php-warning on str_repeat (second param has to be greater or equal to 0) 2012-07-31 11:06:55 +00:00
Klaus Leithoff
af782d1fc7 simple balancing on throwaway divs 2012-07-31 10:59:56 +00:00
Ralf Becker
b0267b6744 fixed error when registration was enabled for a user and he looks at /apps, caused by regitering a - not existing - query method in link-registry of registration 2012-07-31 09:56:25 +00:00
Klaus Leithoff
9526746694 throwing away excess div elements, that carry no style or class or id info 2012-07-30 15:07:56 +00:00
Klaus Leithoff
0904fb74b6 small alteration to make htmLawed respect keep_bad config value when tags are generally considered bad for not matching the regex (and not in any list of known tags) 2012-07-27 10:17:06 +00:00
Ralf Becker
ec34cbb070 do NOT use jerryr as mobile template 2012-07-24 06:19:16 +00:00
Ralf Becker
13bcf73178 fix for 5.4 PHP Strict Standards: Declaration of ADODB2_mysql::_CreateSuffix() should be compatible with ADODB_DataDict::_CreateSuffix 2012-07-20 16:30:26 +00:00
Ralf Becker
3918f2606c * InfoLog/CalDAV: preference allowing to modify responsible user from devices not supporting them by setting EMail address as category 2012-07-20 13:06:47 +00:00
Nathan Gray
f198fb8f6e Lets try this theme for a while, see how it looks 2012-07-18 16:50:49 +00:00
Ralf Becker
44dd8e92e9 * Admin/Setup: fixing high memory usage in registering all hooks 2012-07-18 10:34:31 +00:00
Ralf Becker
bf9efd2acc slightly different expand-property report requested from OS X 10.6.8 iCal requests properties from DAV namespace not explicitly specified 2012-07-17 15:17:22 +00:00
Ralf Becker
493bf3bcd0 fixed 5.4 PHP Warning: Illegal offset type 2012-07-17 13:59:37 +00:00
Ralf Becker
565a2be7d6 also add dir and pref for filemanager templates 2012-07-17 13:26:52 +00:00
Ralf Becker
6699e26062 accounts_sql::members() use single sql query with join to acl table instead calling id2name for each account, as it is quicker and uses less memory 2012-07-16 12:36:53 +00:00
Ralf Becker
dea7e46a2d accounts_sql::members() use single sql query with join to acl table instead calling id2name for each account, as it is quicker and uses less memory 2012-07-16 12:27:01 +00:00
Ralf Becker
04f732e653 using accounts->member(ship)s($id, true) instead of accounts->member(ship), as it does not require to read (unused) account_lid, which takes far longer and require more memory on huge installs 2012-07-16 12:05:21 +00:00
Ralf Becker
727bd06868 fix returned xml for correct expansion is empty 2012-07-15 09:55:46 +00:00
Ralf Becker
b4f087e41e correctly returning multiple expanded properties as eg. calendar-proxy-(read|write)_for example 2012-07-15 09:12:28 +00:00
Ralf Becker
b690d98fc4 * CalDAV: expand-property reports queried by iCal from OS X 10.7.4
- expanded-group-member-set
- expanded-group-membership
- calendar-proxy-read-for
- calendar-proxy-write-for
Both calendar-proxy reports can be combined in one request, this is NOT yet handled correct!
2012-07-14 19:41:43 +00:00
Ralf Becker
588950ae29 fixed PHP Strict Standards: config::save_value must be declared static to be used static (no longer allowing non-static usage!) 2012-07-14 08:53:44 +00:00
Ralf Becker
49a90413e4 fixed PROPFIND did not return additional properties if path contained special chars like ? or # 2012-07-13 15:55:29 +00:00
Ralf Becker
f4724ee3d4 xcache caching provider 2012-07-12 13:18:22 +00:00
Ralf Becker
371ebda9b0 only create a temporary mount for ownCloud clients on /clientsync, thought admin can create a different permanent one 2012-07-12 08:48:13 +00:00
Nathan Gray
417c1aa27f Use creator if file modifier is null 2012-07-10 15:51:14 +00:00
Ralf Becker
d97111833c * PostgreSQL: fixed SQL error using egw_db::unix_timestamp(): No function matches the given name and argument types 2012-07-10 13:50:45 +00:00
Ralf Becker
535051e77f Some index to speed up access/update of huge history-logs 2012-07-05 09:24:51 +00:00
Ralf Becker
86df4ba58b allow to use default host, but give a dn and pw 2012-07-05 07:23:06 +00:00
Ralf Becker
3459a34a9f limit IE hack (no attachment in Content-disposition header) to IE < 9 2012-07-03 09:33:26 +00:00
Ralf Becker
dc7259a59c invalidate categories cache after DB restore 2012-07-03 08:16:52 +00:00
Ralf Becker
d0f097e1ec chunk size for number of rows to query was far to low for huge tables like egw_history_log which can be a couple of million rows, backup took far to long 2012-07-03 07:05:55 +00:00
Ralf Becker
f88aa3738b * Admin/DB-Backup: querying only chunks for 100 rows, to not run into memory limit on huge tables 2012-06-30 15:18:49 +00:00
Klaus Leithoff
45fe6d9fea for new (autocreated) accounts, set ->can change password<- appropriately, move section before processing of hooks 2012-06-29 13:54:13 +00:00
Klaus Leithoff
fa90c1066c * API: for new (autocreated) accounts, set ->can change password<- flag only if admin requires his users to change their passwords regularily (admin->site configuration->set recurrent forced password change) 2012-06-29 11:38:58 +00:00
Ralf Becker
09997309ab docu update 2012-06-29 09:05:22 +00:00
Ralf Becker
5100dfcc71 * Password: fixed not working check, if user has right to change password, causing password link in topmenu to be displayed when not in preferences app 2012-06-29 07:14:46 +00:00
Ralf Becker
2674b43532 create valid SQL, even if account has for whaterver reason no group-memberships 2012-06-28 16:39:36 +00:00
Nathan Gray
3d4b28ae15 Add changes in linked files into history log (et2) 2012-06-27 20:32:45 +00:00
Ralf Becker
b025809df1 * CalDAV/CardDAV expand-property report for principals used in iCal on OS X 10.7 2012-06-27 20:08:56 +00:00
Ralf Becker
52d7d6bbcf * Admin: global categories showed private categories of other users 2012-06-27 16:04:51 +00:00
Klaus Leithoff
fafb8947d3 * API: HTML Editor-> disable encoding as entities needs to set the config value to false, as the default is true with the current ckeditor version 2012-06-26 12:37:42 +00:00
Ralf Becker
ab086e10a2 * Filemanager/API: automatically decrement and store subquery depth limit, to work around different limits in different MySQL versions and configurations causing SQL error 2012-06-26 12:07:37 +00:00
Nathan Gray
1881c45d0d Restrict nm header height to ~6 lines, then scroll 2012-06-25 15:12:16 +00:00
Nathan Gray
5eae11346d If possible, include CSS here. Menu does not really work without it. 2012-06-19 18:55:03 +00:00
Ralf Becker
3418c5284e * Backup: fix sometimes not working restore (seems like an internal error in preg_match, causing Apache to run at 100% CPU never finishing) for php 5.3+ 2012-06-17 10:10:46 +00:00
Klaus Leithoff
502a00e17f mangle @ in blockquote cite attribute 2012-06-13 11:10:12 +00:00
Nathan Gray
234832d1f0 Make sure lang 'array' is not a real array - that means it's empty, and will return 0 for missing translations. It is supposed to be an object. 2012-06-12 18:47:42 +00:00
Ralf Becker
6f9fb0b104 fix typo in column-name and added SQL to add index in MySQL 2012-06-12 07:02:59 +00:00
Ralf Becker
fb00481043 * eSync/API: update access-log action for eSync, run maintenance only on logout and other changes to speed up access/update to huge access-logs, thought indexes on session_php, (account_id,ip,li), (account_id,loginid,li) will help alot 2012-06-12 06:37:58 +00:00
Ralf Becker
5549c2d3b9 some index to speed up access/update of huge access-logs 2012-06-12 06:29:02 +00:00
Ralf Becker
c3e0a2ab15 * Setup/Admin: restoring 10 rows per sql statement to speed up restore 2012-06-10 12:38:35 +00:00
Ralf Becker
27748e4f50 allow apps to implement further fsck methods 2012-06-08 16:19:21 +00:00
Nathan Gray
71456ff8ef Force nextmatch to load affected rows by clearing the data from data store 2012-06-06 21:56:18 +00:00
Klaus Leithoff
c0dcb66ebc replace ctype_digit with is_numeric, as ctype_digit returns false on integers 2012-06-06 10:48:58 +00:00
Klaus Leithoff
fdfcdfc387 * API: upgrade htmLawed from 1.1.10 to 1.1.11 2012-06-06 08:54:35 +00:00
Nathan Gray
09937c410d Fix history logging of removed links when removing by link_id - need to read values before they are deleted 2012-06-05 16:44:48 +00:00
Klaus Leithoff
c00e9756eb when converting HTML 2 Text remove style,head and comment style browser-switch 2012-06-04 14:56:45 +00:00
Ralf Becker
dc17cfbb47 * API: support windows-1256 via iconv and prefer iconv for windows-1252 too 2012-06-04 11:58:08 +00:00
Klaus Leithoff
6fcc4455e4 * email: fix for Helpdesk Issue:3430 (Unstructured display of text when converting email to infolog) 2012-06-04 11:26:40 +00:00
Ralf Becker
e1cb2efa1b moved uri parsing into _connect, to allow multiple uri not just multiple hosts and added parameter to constructor to throw exceptions instead of echoing error-messages and returning false on ldapConnect 2012-06-04 07:59:07 +00:00
Ralf Becker
0c6d80d778 * API/Admin: add user-agent to accesslog and sessions, add sessionid to history to better identify what was causing changes in history 2012-06-01 13:13:06 +00:00
Klaus Leithoff
d4c0a892cb remove kses and htmlpurifier, as they are replaced by htmLawed now 2012-06-01 12:46:59 +00:00
Klaus Leithoff
b6638adc24 handling of multibyte chars in attribute values of tags in mbstring.func_overload enviroments,
as substr_replace does not have a multibyte func overload function associated.
Thus substr_replace(, '', 0, strlen()) will fall short in the above mentioned enviroments; we use our own bytes-function now introduced into htmLawed
2012-05-30 09:22:27 +00:00
Nathan Gray
41cf864a73 Respect group filter, if passed 2012-05-29 22:24:15 +00:00
Ralf Becker
a1f6f70330 * Admin: remove session timeout from EGroupware config and read it via ini_get("session.gc_maxlifetime") as config fails for many reasons, if different from php.ini setting 2012-05-29 14:43:33 +00:00
Klaus Leithoff
2509d7783f attempt of switching from htmlpurifier to htmLawed and replacing kses by htmLawed calls; this is done for performance and resource considerations; still the common call in egw is by html::purify, but htmLawed is doing the work now. let me know if there are issues regarding; if we cannot find issues within EGroupware, we will clean out the related sourcecode of kses and htmlpurifier with the next step 2012-05-25 12:23:11 +00:00
Nathan Gray
efbb743cc6 Log removal of link in history 2012-05-24 17:33:16 +00:00
Ralf Becker
6ff1db3534 * Preferences all apps: add validation for vfs files and directories to give user immediate feedback about wrong or non vfs pathes 2012-05-22 13:51:30 +00:00
Klaus Leithoff
e41bf911fb fix broken translation string for italian language 2012-05-22 08:43:30 +00:00
Ralf Becker
3e8501a139 fixed PHP 5.4 Warning: Illegal string offset 2012-05-21 10:56:14 +00:00
Ralf Becker
d9142cca30 allow to specify a custom filter for egw_session::session_(list|count)() 2012-05-19 18:19:43 +00:00
Frédéric Erpicum
e2cb9b44e7 resolve problems in opening windows for viewing or editing in projectmanager 2012-05-17 09:26:25 +00:00
Ralf Becker
7548d5c1e2 missing ms office 2007/10 mime types 2012-05-16 06:04:35 +00:00
Klaus Leithoff
6d650d6abf work around a problem with balance tags removing content 2012-05-15 15:17:27 +00:00
Ralf Becker
d2a667c040 * AsyncServices/Calendar: when multiple alarms / async jobs run at same time, they send mail with from address of first alarm/job
caused by ExecMethod re-using objects instanciated in $GLOBALS, which get now unset when user-context needs to change because async job runs under different user
2012-05-15 12:15:18 +00:00
Nathan Gray
2764e9529c Add function to get integer/byte filesize from human readable 2012-05-14 19:10:45 +00:00
Ralf Becker
5cafed6381 fixed since r39109 (merge for filemanager) not working install 2012-05-11 08:35:32 +00:00
Ralf Becker
fd276eb3b7 js stuff is not needed by login page and gives errors 2012-05-10 08:43:40 +00:00
Klaus Leithoff
e49c5850e5 fix for IE8 using method indexOf as key while iterating over trans 2012-05-09 14:49:24 +00:00
Ralf Becker
30e86a8195 return success or error if called via HTTP as HTTP status 2012-05-08 21:47:49 +00:00
Nathan Gray
065fd1a772 Point account links to addressbook view 2012-05-03 15:23:30 +00:00
Nathan Gray
0527ec2a88 Implement color picker 2012-05-02 18:01:17 +00:00
Klaus Leithoff
1f6c3b2df7 * API/eMail: catching failure to attach files, or fail on attaching empty files, or failure to encode files 2012-05-02 08:31:59 +00:00
Nathan Gray
55ad5a320b Open in new window if target is not specified 2012-04-25 16:23:27 +00:00
Ralf Becker
1e4c845aab call notification hook for unlink/rmdir only after successful removal, but with (not longer existing) stat data 2012-04-19 13:18:00 +00:00
Ralf Becker
c3c785de0b * CalDAV: fixed PHP Fatal Error when iCal contains invalid participant url like Lighttnings "invalid:noemail" 2012-04-19 12:51:04 +00:00
Nathan Gray
ebdc207ff5 Apply no_acl_check to global categories too 2012-04-16 16:37:18 +00:00
Ralf Becker
025c3d3b44 check if categories are already updated to global == cat_owner=0, has to run as API update, before apps (tracker) creates new global cats with cat_owner=0 stopping the update 2012-04-13 14:35:55 +00:00
Ralf Becker
797a412ec8 fix not working update from 1.6 by running register-all-hooks after restore (old 1.6 wiki_bo::search_link hook can not run in setup, so we need the new hook) 2012-04-13 14:33:43 +00:00
Ralf Becker
747b403973 fixed bug in memcache extension < 3.1.1 with memcache > 1.4.3, eg. Debian 6, causing delete of cache items to fail 2012-04-13 10:57:27 +00:00
Ralf Becker
189d89be1b tests for egw_cache_provider and not using APC for cli, if apc.enable_cli is not set
Also did some benchmarking on my Macbook (with a SSD and memcached running on localhost):
Checking egw_cache_memcache:
0 checks failed, 100 iterations took 0.480 sec

Checking egw_cache_apc:
0 checks failed, 100 iterations took 0.025 sec

Checking egw_cache_files:
0 checks failed, 100 iterations took 0.826 sec
--> APC is by a factor of 20 faster then memcached, which is double as fast compared to files on a SSD
2012-04-13 10:21:58 +00:00
Ralf Becker
a548f444e1 have to use schema from backup itself, not (autoloaded) current schema 2012-04-13 06:09:51 +00:00
Klaus Leithoff
9503984a4b * API: introduce htmLawed by Santosh Patnaik into EGroupware. Its planned to replace htmlPurifier with htmLawed as htmLawed provides better configurability, needs less resources and is a lot faster; 2012-04-12 13:35:28 +00:00
Ralf Becker
d85cffb5e8 fixed since r38811 not working restore of backups 2012-04-12 13:25:27 +00:00
Ralf Becker
15c9fd0d32 * CalDAV/CardDAV: log failed requests with ### like exceptions to ease diagnose problems, log if clients requests accounts not visible because of account-selection preference, skip proxys if not visible 2012-04-12 10:44:00 +00:00
Ralf Becker
18d74430ea * Backup/Addressbook: adding limited index-length to backed up schema and fix restore of old backups without (default to 32 on multicolumn indexes including text columns) 2012-04-12 08:04:35 +00:00
Ralf Becker
5e66d1a2ce docu update: added accounts-addressbooks accessible via CardDAV 2012-04-11 20:33:24 +00:00
Ralf Becker
7b393d6ab9 disable encoding as entities, as it is unnecessary in EGroupware, because we are using utf-8 everywhere 2012-04-11 14:57:00 +00:00
Ralf Becker
18e2ba28fc * most apps: fixed rich-text editor to allow to enter < and > eg. html markup in regular input mode (not source) 2012-04-11 14:52:08 +00:00
Ralf Becker
bcb9b2f5c9 fixing the fix: api version is not yet read, therefore use modifiction time of phpgwapi/inc/setup.inc.php instead 2012-04-10 07:53:08 +00:00
Ralf Becker
7e2fd95d9e * CalDAV/CardDAV: add API version to pseudo session-id used to invalidate all sessions from the previous version (which eg. give database errors, because using old schema) 2012-04-07 06:53:38 +00:00
Nathan Gray
22cb0667eb Handle Firefox vs Chrome File API 2012-04-05 22:31:01 +00:00
Ralf Becker
dd410d49fb fixed javascript error stalling everything: et2_csvSplit is not yet defined, thought I dont understand why this is needed here anyway: using _name.split("/",2) 2012-04-05 07:38:07 +00:00
Ralf Becker
407570090d store already read table-defintions no longer in session (in ['egw_info']['apps'][]['table_defs']) but in a static variable only within the request:
--> keeps session smaller
--> php file with table-defintion get stored by accelerator anyway, so nothing to gain
--> if schema get's updated long running sessions like CalDAV not getting fatal errors
2012-04-05 07:05:22 +00:00
Nathan Gray
df2ba7ddd6 Get images named like appname/imagename working again for images outside current app 2012-04-04 19:37:17 +00:00
Nathan Gray
08cb4581ee egw_open wants the whole registry 2012-04-04 19:17:07 +00:00
Nathan Gray
6e103c4c1b Get images named like appname/imagename working again 2012-04-04 19:16:19 +00:00
Ralf Becker
3e4ef81080 load wz_tooltips only if required: $GLOBALS[egw_info][flags][include_wz_tooltip] set or html::tooltip() called before calling common::egw_header(), calling header again as end of home page to allow apps to load stuff into the header (not only wz_tooltip) 2012-04-04 13:05:58 +00:00
Ralf Becker
82e4093f1c * ProjectManager: fixed not working editing of projectelement via context-menu (also check registed sub-types of apps user has access to) 2012-04-03 13:30:44 +00:00
Ralf Becker
504d405fae update from 1.8.004 2012-03-31 14:18:14 +00:00
Ralf Becker
a3ada52adf * Admin/ImportExport: fixed import of already hashed passwords 2012-03-29 18:33:33 +00:00
Andreas Stöckel
cfa9c190bb Implemented keyboard navigation and data retrival for uids 2012-03-29 14:11:22 +00:00
Nathan Gray
bc25b917d4 Fix namespace events - it's event.namespace 2012-03-28 21:01:51 +00:00
Andreas Stöckel
0ae151e638 Got selection working; only problem left with popup menus is, that entries don't get focused on rightclick 2012-03-28 15:36:17 +00:00
Ralf Becker
b55250b81a encoding and decoding of vfs special characters 2012-03-28 13:58:18 +00:00
Ralf Becker
2f62d7e3b5 allow to set target in mime-registry: need target _self (instead default _blank) for directories opened in filemanager 2012-03-28 13:01:37 +00:00
Ralf Becker
2630a39651 moved egw_links.js window contect specific parts to egw_open.js: egw().open() and egw().open_link() renamed from egw().call_link() 2012-03-28 12:37:03 +00:00
Ralf Becker
fbdb8f3c55 mime_icon method for vfs-mime widget 2012-03-28 08:10:57 +00:00
Ralf Becker
629b9bb393 * CalDAV/CardDAV: fixed typo preventing sync, if logging to Apache error-log was switched on 2012-03-28 07:03:40 +00:00
Andreas Stöckel
3a23d4bb21 Fixed bug with Ctrl-Key no longer working 2012-03-27 13:44:38 +00:00
Ralf Becker
b747f99fc6 removed menuaction check completly, as only missuse was setting currentapp from it, which get now checked
improved _check_script_tag and added a lot of tests, thought not all tests really apply here, so low count of ~50% are not as bad
2012-03-27 08:29:52 +00:00
Nathan Gray
257f823773 Fix handling of file url for vfs 2012-03-26 23:27:09 +00:00
Nathan Gray
3aa8e64f73 Give a warning & return if you try to translate an object 2012-03-26 23:24:56 +00:00
Andreas Stöckel
34a43e8869 Various bug fixes in the grid, implemented prefetching, workaround for performance issues regarding update, removed _lastModification 2012-03-26 15:28:02 +00:00
Ralf Becker
a6fe9b04bc fix to get menuaction proxys (eg. used when creating a link) working again 2012-03-26 11:12:41 +00:00
Ralf Becker
a4727231c5 allow dash in app-name like in "sitemgr-site" 2012-03-26 08:05:11 +00:00
Ralf Becker
650da27fac Upps, forgot argument 2012-03-26 07:23:52 +00:00
Ralf Becker
ef9734c402 propper encoding of exception messages, checking of $_GET[menuaction] and $GLOBALS[egw_info][flags][currentapp] 2012-03-26 07:18:00 +00:00
Andreas Stöckel
7f57f28f38 Deactivated last commit (slow because pending requests are ignored), lastModification is now set per app in the model 2012-03-23 16:38:08 +00:00
Andreas Stöckel
c525cadcdb Reverted accidently made commit for class.egw_framework.inc.php 2012-03-23 13:43:20 +00:00
Andreas Stöckel
eadeb57f28 Fixed problem with registered data callbacks, when the window the callback belongs to is closed 2012-03-23 13:39:27 +00:00
Andreas Stöckel
b134b36678 fixed some issues with egw_data, improved egw_json exception handling 2012-03-23 12:45:13 +00:00
Andreas Stöckel
23f221456f Fixed problem with IE, adapted egw_data.js to specification changes 2012-03-23 12:06:52 +00:00
Ralf Becker
8bd0e2865d keeping only info about the connected ldap server, fixes problems with changed ldap host after fallback to other server 2012-03-23 11:26:58 +00:00
Ralf Becker
d3cd7ea65b only transfer link-registry for apps user has access too, otherwise mime-registry would open eg. iCal files in calender, even if user has no calendar access 2012-03-22 12:59:34 +00:00
Ralf Becker
d8c9a194da only return mime-information of apps the user has access to 2012-03-22 12:43:47 +00:00
Ralf Becker
2e8d60d5a0 reorganized egw.link methods to call each other (and not dublicate code), using mime-registry to open files, todo: special download url of eg. filesystem stream wrapper 2012-03-21 16:02:50 +00:00
Ralf Becker
b5adc21ff6 register filemanager as handler for directory mime-type "httpd/unix-directory" (register hooks!) 2012-03-21 10:28:48 +00:00
Ralf Becker
f62b4784a0 * API: fix account-selection-method "selectbox" containing selected account double (eg. in Admin >> Manage groups) 2012-03-21 09:24:04 +00:00
Klaus Leithoff
4a261802e4 giving selected bg-coloring precedence over other bg-color classes using important 2012-03-21 09:11:46 +00:00
Klaus Leithoff
3abeb7c464 add onbeforeunload as action 2012-03-21 08:25:17 +00:00
Ralf Becker
61474e73c4 * LDAP: if multiple hosts given, try them all for first working one and store choice in session to start new trial only if working one fails 2012-03-21 07:55:51 +00:00
Ralf Becker
200cad46a8 remove not necessary mime_(type|size|name) 2012-03-20 16:01:00 +00:00
Ralf Becker
514375e2b6 knowUids instead of knowRanges, widgetId and some docu changes 2012-03-20 12:37:45 +00:00
Andreas Stöckel
a45f2d5c69 Commited egw_data.js 2012-03-20 12:05:31 +00:00
Ralf Becker
986c733c33 * InfoLog: icons to visualise entry has a parent or subs, using these icons (arrow left or up) in context-menu too 2012-03-20 11:21:53 +00:00
Ralf Becker
cd2cc35b73 * InfoLog: icons to visualise entry has a parent or subs, using these icons (arrow left or up) in context-menu too 2012-03-20 11:18:33 +00:00
Ralf Becker
0f838df1b9 switch zlib.output_compression off, as we cant calculate Content-Length header, if its on, doing our own Content-Encoding: gzip now (wont be necessary for Apache2.2 which fixes false Content-Length headers silently, but eg. Lighttpd cuts off content, if wrong Content-Length header specified
using md5 of real content for instance specific translations, cant use lang_ctimes for them
2012-03-19 08:35:47 +00:00
Ralf Becker
96796f5edb if not category specified to invalidate_cache() call init_cache(), to fix problem of categories deleted via context menu are not deleted from list (only in next, but not in current refresh) 2012-03-17 10:54:36 +00:00