Commit Graph

6846 Commits

Author SHA1 Message Date
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
Klaus Leithoff
988373b6c4 fix bug regarding the positioning of the drag n drop context menu popup 2012-03-16 12:30:52 +00:00
Klaus Leithoff
5954d668d0 * translations: Italian translation improvements for admin and API; provided by Ilias Chasapakis, Webtrain Services 2012-03-16 11:43:03 +00:00
Ralf Becker
b28a0ced08 check and reset cookie configuration, if it does not match current enviroment 2012-03-15 12:55:59 +00:00
Ralf Becker
f74b8264a2 propset svn:keywords Id 2012-03-15 08:38:01 +00:00
Ralf Becker
7d4b32f5af deprecating common::show_date($time,$format,$adjust_for_usertime=true) in favor of new egw_time::to($time,$format) or egw_time::server2user($time,$format), also using that two now for common::show_date() 2012-03-14 15:37:25 +00:00
Ralf Becker
a1ffcd08e4 * Admin/Addressbook: fixed wrong timezone in created and modified times for contacts and accounts
- fixed typo / wrong direction of conversation when storing contacts
- fixed accounts_sql, which uses addressbook_bo::search() to convert created and modified timestamps to servertime as
- (documented that) accounts class (SQL and LDAP) operate completly in server-time
2012-03-14 15:22:51 +00:00
Ralf Becker
94f1c840d0 add custom translations 2012-03-14 12:11:19 +00:00
Andreas Stöckel
3ecb7a4eec Added 'langRequire' function which allows to load translations during runtime 2012-03-13 16:05:52 +00:00
Nathan Gray
1d74169848 Add time picker popup 2012-03-12 21:20:46 +00:00
Nathan Gray
da10c03762 Use window's jQuery to make it work 2012-03-12 17:26:33 +00:00
Andreas Stöckel
dc017ed889 Now again using a local etemplate2 instance on the client 2012-03-12 12:05:14 +00:00
Andreas Stöckel
36314a077e Fixed bug with etemplate2 not working properly especially in idots: JS files only get included if they really have not already been included; egw object gets included before 'lang' in idots 2012-03-12 09:20:24 +00:00
Nathan Gray
f512d1efae Move calendar icon inside input box 2012-03-09 18:46:29 +00:00
Andreas Stöckel
d486e50a57 phpgwapi:
* Changed way of how "webserverUrl" gets set - any type of data can now be
	  injected into the egw object by creating an object with the data and an
	  entry "prefsOnly" set to true. This allows to ensure, that "webserverUrl"
	  is the first thing that is being set in the egw object (as needed when
	  including new JS/CSS files at runtime)

jsapi:
	* Fixed including JS/CSS files at runtime in other windows than the root
	  window
	* Added "ready" function/module, which provides an alternative to the
	  $j("ready") function. The ready module provides the functionality to
	  postpone calling the "ready" until certain events happened.
	* using jQuery calendar object instead of jscalendar in the calendar
	  function.
	* added "jquery" module which takes care of including all jQuery modules
	  in all windows
	* added possibility for modules to update constants using the "constant"
	  function.
	* added possibility for modules to access certain other modules using
	  the "module" function

etemplate:
	* Using new egw(window).ready function to build the template first if
	  loading has finished.
2012-03-09 15:32:29 +00:00
Andreas Stöckel
735b24fe9c Always include egw.js, as determining whether the current window is a popup or not does not work properly when not running an etemplate2 application 2012-03-09 09:29:05 +00:00
Ralf Becker
f467572bd4 using mime-registry for link-widget "link-list" and "link-string" too 2012-03-09 07:39:36 +00:00
Ralf Becker
dd8a5cf29e * Filemanager/FMail/Calendar: allow to open .eml and .ics files from filemanager in fmail or calendar (infrastructure for apps to register which mime-types they can open) 2012-03-08 18:43:40 +00:00
Andreas Stöckel
df06f6657c Now always including egw and etemplate2 javascript code if we are in the top window 2012-03-08 14:05:00 +00:00
Andreas Stöckel
60a2fd9855 Added calendar module for the client side api, roughly working, needs some further work (currently not shown as popup but at the bottom of the page, months etc. are displayed as 'undefined', year number is screwed up) 2012-03-08 11:29:46 +00:00
Ralf Becker
ea079a6803 fixing wiki rate code / mixed case column names for PostgreSQL 2012-03-08 06:20:21 +00:00
Ralf Becker
ebe229e885 always quote for postgreSQL, as this is the only way to support mixed case names 2012-03-07 21:33:59 +00:00
Andreas Stöckel
292f18bc1a Window dependant api modules do now get reinstanciated, if the window location changes 2012-03-07 15:20:04 +00:00
Andreas Stöckel
c8bf9ed6ef Fixed design problem in egw_core, which caused window-local modules to be instanciated multiple times if used for multiple applications inside a window. Added egw_css.js as replacement for et2_core_stylesheet.js, which allows to add stylesheet rules at runtime 2012-03-07 14:04:25 +00:00
Ralf Becker
000b74bded framework->isTop($consider_navbar_not_yet_called_as_true=true): true if we are rendering the top-level EGroupware window 2012-03-07 08:45:57 +00:00
Andreas Stöckel
d996537c35 Improved error message for exception in JSON plugins 2012-03-06 15:25:27 +00:00
Andreas Stöckel
049cbd88dc Now using the etemplate code from the root instance (etemplate2.js acts as a egw api plugin); fixed egw.json plugins; fixed problem with 'instanceof Object', which does not work when sharing code over multiple windows 2012-03-06 13:22:01 +00:00
Ralf Becker
261f807c46 fixed download of log, in case output buffering could not be switched off (got into endless loop) 2012-03-06 13:06:35 +00:00
Ralf Becker
4a88a9558c egw_json plugin "html" replacing document content with send html 2012-03-06 09:50:43 +00:00
Andreas Stöckel
130dc87e83 Concatenated dhtmlxmenu.js and dhtmlxmenu_ext.js to one file, to stop the message 'dhtmlxmenu_ext.js required' 2012-03-06 09:35:54 +00:00
Ralf Becker
1fef159630 send direct output of json / etemplate callback back to client via addGeneric('output',...) or alert, in case there's already some JSON response, make sure content-type header is only send once 2012-03-06 07:32:51 +00:00
Andreas Stöckel
5f3b572cc9 Changed hash function for egw api instances 2012-03-05 16:05:48 +00:00
Andreas Stöckel
1bc16c1b8e Finished egw json api 2012-03-05 15:02:00 +00:00
Andreas Stöckel
d310b14ecf Client side API now supports modules which are instanciated per application or per window; removed et2_debug function from et2_core_common, now using corresponding API function. 2012-03-05 13:07:38 +00:00
Ralf Becker
f676a23821 fixes for PHP 5.4 warnings and strict warnings, thought disabled E_STRICT for now, because of various strict warnings in working code, which could not be easy fixed in all areas (see comment in phpgwapi/inc/functions.inc.php) 2012-03-04 13:33:10 +00:00
Ralf Becker
bd273c1b45 fixed typo in setting date- and time-format in egw_time::check_set_tz_offset(), causing eg. importexport to fail, if async job before had no account or account had different format 2012-03-02 09:53:41 +00:00
Andreas Stöckel
04db17f9e5 Fixed hypothetical problem with certain entries not being updated properly on app instances of egw 2012-03-02 09:02:36 +00:00
Ralf Becker
1c386e2d6b new method preferences->default_prefs($app=null,$name=null) to access default prefs, taking into account forced preferences 2012-03-01 18:03:13 +00:00
Andreas Stöckel
3fdf5fdfd0 Removed unneeded egw_app.js 2012-03-01 16:25:32 +00:00
Andreas Stöckel
1876a5faa1 Splitted the egw object into multiple files, added system for allowing a application specific client-side api (use 'egw' as a function) 2012-03-01 16:24:29 +00:00
Ralf Becker
b2a6e59b09 allow to specify a port with tls too: "tls://host[:port]/" or "ldaps://host[:port]/" or "ldap://host[:port]/" or just "host" 2012-03-01 13:08:58 +00:00
Andreas Stöckel
90379afe16 Updated jQuery to version 1.7.1 2012-03-01 12:43:06 +00:00
Ralf Becker
2175421d42 added "custom" (custom instance-specific translations) to apps which have to use home as app-name, also moved sanitrary checks before header-include 2012-03-01 09:30:49 +00:00
Ralf Becker
706fd46d5a add own agent for dmfs.org, to not recognice it as dataaccessd/iOS 2012-02-29 16:24:49 +00:00
Ralf Becker
12f34cd307 fixed SQL error under PostgreSQL with new filesystem check 2012-02-29 13:47:52 +00:00
Ralf Becker
2553ad1bcc some fixes for sqlfs fsck: caseinsensitive GROUP BY for MySQL, deleting files direct in DB, as self::unlink() fails if fs_active=0, and some more 2012-02-27 14:33:42 +00:00
Ralf Becker
fd19c672c8 * Filemanager/Admin: ability to check virtual filesystem (Admin >> Check virtual filesystem) and some code to prefent double creation of directories 2012-02-27 13:18:52 +00:00
Ralf Becker
d7a7d105fa * Admin/Setup: fixed custom translations got lost during update 2012-02-27 08:02:28 +00:00
Ralf Becker
2bc821f428 use groupdav->log() for all permanent error-messages, to log the into request-log too, if both If-Match and If-Schdule-Tag-Match given use If-Match for organiser/owner and If-Schedule-Tag-Match for attendees/participants 2012-02-21 20:04:45 +00:00
Ralf Becker
c70a93e7c1 * CalDAV/CardDAV/GroupDAV: as all clients dislike not getting an ETag for a PUT, we sending it again even not storing byte-by-byte 2012-02-20 11:33:43 +00:00
Ralf Becker
baf8999392 log request in case of exceptions too by installing a custom exeception handler 2012-02-20 09:06:24 +00:00
Ralf Becker
e97b390573 improved working in CalDAV/CardDAV prefs 2012-02-19 12:39:04 +00:00
Ralf Becker
dea5bfef24 add empty line in log between request body and response 2012-02-18 10:49:24 +00:00
Ralf Becker
51982be2de refining translations for CalDAV/CardDAV logging 2012-02-17 14:01:21 +00:00
Ralf Becker
164b0c73b7 logging whole requests, to be able to lock the log-file, as some clients (eg. SOGO) use multiple threads to request resources, which messes up the log otherwise 2012-02-17 09:14:33 +00:00
Ralf Becker
f0fef47688 fixed PHP Warning, if log-dir is not yet created 2012-02-17 08:13:50 +00:00
Ralf Becker
9a3ef9f726 * CalDAV/CardDAV: continous display (like tail -f) of logs inside EGroupware 2012-02-16 16:37:10 +00:00
Ralf Becker
9dd3b99353 * CalDAV/CardDAV: continous display (like tail -f) of logs inside EGroupware 2012-02-16 16:35:58 +00:00
Ralf Becker
9d704a7c0d ignore exception while sending notification to admin (eg. SMTP error), to block the account and give a correct error-message to user 2012-02-16 14:35:42 +00:00
Ralf Becker
82f2c91005 Ajax log file viewer (tail -f) 2012-02-15 21:32:45 +00:00
Ralf Becker
2939d7bbf3 propagate data from settings hook to handlers, to fix failed installs because setup was not detected 2012-02-14 17:38:45 +00:00
Ralf Becker
2ba0b31c43 added basic update of own cache, to work around failed sitemgr install via setup (cant read just added categories) 2012-02-14 17:36:35 +00:00
Ralf Becker
56f286e877 using instance-wide cache for categories, so updates from other sessions are immediatly available and sessions get smaller 2012-02-10 20:14:44 +00:00
Ralf Becker
eef250747f necessary update for distributions lists as groups in CardDAV, fixes SQL errors "unknows column list_...." 2012-02-10 10:09:18 +00:00
Ralf Becker
7a6959ca3f many bugfixes around distribution-lists/groups and some code restructuring 2012-02-09 20:09:49 +00:00
Ralf Becker
aef04880e9 * CalDAV: allow to create private events on OS X iCal, fixing DAV header for new shared folders 2012-02-07 20:19:16 +00:00
Ralf Becker
fe0b914acc as SOGO Connector requires ETag header to recognice as successful PUT, we are sending them again for it 2012-02-07 17:10:52 +00:00
Ralf Becker
5b81fca2f1 Hide Size in autoindex and move Displayname to first column after name 2012-02-07 12:47:49 +00:00
Ralf Becker
d7fca17d6e resurrect preference to sync all ABs into one (allways implied for OS X) and new pref to "Distributionlists as groups", plus explenation of the prefs 2012-02-04 21:47:28 +00:00
Ralf Becker
d89f48d9c1 implement RFC 5995 add member to collection via POST, but not yet set DAV:add-member due to problems with OS X clients 2012-02-04 20:24:01 +00:00
Ralf Becker
c5ca42a4b1 move app-specific settings to app-handler 2012-02-04 01:24:34 +00:00
Ralf Becker
d21be8d871 move logic of which addressbook/calendars are shared into app-handler 2012-02-04 01:03:56 +00:00
Ralf Becker
6161826de1 add http://calendarserver.org/ns/:shared to shared addressbooks/calendars for Apple clients to mark collections to user as shared 2012-02-03 18:21:20 +00:00
Ralf Becker
fb6f5cf4be allow PROPPATCH on *-home-set, to allow eg. jqcalendar to store its prefs there 2012-02-01 23:26:16 +00:00
Klaus Leithoff
69f65e4917 upgrade HTML Purifier to Version 4.4.0 (add missing files) 2012-02-01 16:01:01 +00:00
Klaus Leithoff
5511abc5bf upgrade HTML Purifier to Version 4.4.0 (with merged trunk patches -c37721 -c34417 -c35216 -c35219) 2012-02-01 15:58:31 +00:00
Ralf Becker
3ae6e76ff9 fixed wrong self-url in PROPFIND of shared addressbooks/calendars 2012-01-31 22:27:31 +00:00
Klaus Leithoff
1d1447d2a7 change Stylite GmbH to Stylite AG in about. 2012-01-31 13:41:59 +00:00
Ralf Becker
1dd3a9e083 fixed iCal did not allow user to update calendar color or name --> needs "write-properties" priviledge, which we now return for all calendar/addressbook collections 2012-01-31 00:20:58 +00:00
Ralf Becker
f2acf7707f outbox supports VFREEBUSY too, it is required from OS X iCal to autocomplete locations 2012-01-30 23:53:06 +00:00
Ralf Becker
a5673d388e /addressbook/ was not anounced as directory gateway 2012-01-30 18:53:47 +00:00
Ralf Becker
01ce3bd88d * CalDAV/CardDAV: /addressbook-accounts/ and PROPPATCH for addressbooks/calendars for every namespace but CalDAV, CardDAV or Calendarserver (displayname or *-describtion are ok) 2012-01-30 05:11:05 +00:00
Klaus Leithoff
a701566eda * API/Login: using tabindex to control tab succession on/in loginscreen. 2012-01-26 11:57:17 +00:00
Ralf Becker
a679a49196 * CalDAV/CardDAV: show addressbooks/calendars selected to sync in prefs under users addressbook-/calendar-home-set (incl. account addressbook, if enabled) 2012-01-25 03:25:42 +00:00
Ralf Becker
ace8f33784 implement CalDAV <calendar-data><expand start="..." end="..."/></calendar-data> to return already expanded recurrences in a given time-range, instead of just a recurring event with a recurrence rule 2012-01-24 05:27:26 +00:00
Ralf Becker
c79657705b * CardDAV: Hack for iOS 5.0.1 addressbook to stop asking directory gateway permissions with depth=1, which might fail on installs with huge addressbooks 2012-01-21 01:45:48 +00:00
Ralf Becker
f7ebd11af3 log REQUEST_URI not PATH_INFO, to log the correct request 2012-01-20 07:21:28 +00:00
Klaus Leithoff
e05db77a24 add a function to create a HTML-Purifier config to clean up HTML 2012-01-16 08:31:16 +00:00
Klaus Leithoff
b0f211f40b adapt html purifiers URIScheme cid to new purifiers class requirements; adapt URIScheme data to accept allowed types in whatever (upper/lower/mixed) case 2012-01-13 09:18:46 +00:00
Ralf Becker
7d8347cd34 * Filemanager: allow WebDAVs (https) via PEAR HTTP_WebDAV_Client 2012-01-11 21:24:54 +00:00
Ralf Becker
c7dc8748b7 disabling Lightning hack for fixed version 1.1.1, where bug is fixed and added verbose error_log, if Lightning hack is enabled 2012-01-10 00:20:00 +00:00
Ralf Becker
1c52c64ba2 for account-selection method "selectbox", make sure everything in $selected gets an option, as for the other methods 2012-01-09 21:24:44 +00:00
Klaus Leithoff
904917af86 API/tree: do not check parent treenodes if not expizitly selected 2012-01-09 14:45:24 +00:00
Ralf Becker
c1f61c914b switch off permanent error_log 2012-01-07 23:05:31 +00:00
Ralf Becker
92dc786ebc * Calendar: showing now all open calendars in the owner-selection, not just accounts. Allows to close them from all views 2012-01-07 22:21:48 +00:00
Klaus Leithoff
237e8ce9f9 fix assumed typo for returnvalue on error in function title; defined/described as boolean/string but was array for one error case 2012-01-06 12:54:58 +00:00
Klaus Leithoff
b79af79410 remove felamimail from static app_list in egw_link, as felamimail is implementing search_link; gather only apps for link that implement query and title 2012-01-06 10:11:16 +00:00
Ralf Becker
19dcc2e654 check if $name is already a country-code, before attempting to find a matching one, which can fail in certain areas of setup 2012-01-05 21:58:28 +00:00
Ralf Becker
62a5869b7f * Addressbook/CardDAV: Add index for contact_modified to improve performance of ctag generation on big installtions 2012-01-04 21:55:06 +00:00
Klaus Leithoff
d37ee80161 mending Warnings: Cannot use a scalar value as an array 2011-12-20 15:57:03 +00:00
Klaus Leithoff
39fc5ab48e mending Warnings: Cannot use a scalar value as an array 2011-12-20 15:52:27 +00:00
Klaus Leithoff
16d7185548 fix bug with undefined ino value for link_stream_wrapper::url_stat in case of accessing virtual VCard entry 2011-12-20 15:48:36 +00:00
Klaus Leithoff
b44fd70d07 prevent the call of SetLanguage with empty string 2011-12-15 12:45:44 +00:00
Nathan Gray
03bae6ff27 Add CP850 to translation class list of installed charsets, don't need to add it in import/export 2011-12-14 21:34:24 +00:00
Nathan Gray
ee98b63c0b Set gantt overflow to auto to hide the scrollbars when not needed. 2011-12-14 17:12:09 +00:00
Nathan Gray
2f4d8848c5 - Remove previously added hook & base class, turns out there's an established way to do it...
- Use existing link_app type hook to create calendar from infolog
2011-12-12 21:51:12 +00:00
Nathan Gray
332427277d Add ability to create calendar entries from infolog entries, using new base so other apps can be added (hopefully) easily later 2011-12-08 23:20:49 +00:00
Ralf Becker
e9ba37173a remove old ISS specific redirect code and default of $_SERVER[PHP_SELF] for $url parameter of egw::redirect (not used in current EGroupware) 2011-11-30 20:32:45 +00:00
Ralf Becker
075db1ac82 quietening permanent error_log 2011-11-30 09:37:47 +00:00
Ralf Becker
7ee9d55f85 fixed racecondition in caching translations for installs with multiple instances:
do NOT use automatic callback to cache result, as installing languages in setup can create a racecondition, therefore only cache existing non-instance-specific translations, never cache nothing found === array(), instance-specific translations can and should always be cached!
2011-11-30 09:20:05 +00:00
Ralf Becker
64e7b3cb57 added some docu 2011-11-30 08:11:40 +00:00
Ralf Becker
86577fa44e * Addressbook: ablity to mail (multiple) vCard via context menu 2011-11-29 12:07:11 +00:00
Ralf Becker
fdb1771010 changing french language from "French" to "Français" for *updating* installations 2011-11-25 06:33:01 +00:00
Ralf Becker
217eaad2d8 changing french language from "French" to "Français" for *new* installations 2011-11-25 06:30:49 +00:00
Ralf Becker
21989aa249 log full requests to files directory "$files/groupdav/$user-$agent.log" 2011-11-24 12:20:13 +00:00
Ralf Becker
2effc93ea4 * CalDAV/CardDAV/GroupDAV new user preference to log requests and responses to Apache error-log 2011-11-23 16:34:39 +00:00
Klaus Leithoff
2bd05d6f0d * email: feature convert images included as link to inline images (attachments to the mail) -> extend feature for html mailbody 2011-11-21 12:24:45 +00:00
Ralf Becker
29b578cd0b * Admin: fix white screen (fatal error) when trying to delete a user without home directory 2011-11-21 08:38:23 +00:00
Ralf Becker
f2d7c5c6c3 * Custom / instance-specific translations, eg. to rename an application 2011-11-17 12:43:59 +00:00
Nathan Gray
6d17a1a168 Add dhtmlxGantt for gantt charts 2011-11-16 19:31:00 +00:00
Ralf Becker
15d318847d change max class-name lenght in __autoload to 64, as there are classes with more then 40 chars: projectmanager_wizard_export_elements_csv 2011-11-16 18:46:13 +00:00
Klaus Leithoff
9fad5b84ab * ckeditor/aspell: added check for language availability check on extended dict (Lang_Countrycode) first, then fall back to lang -> e.g.: check on en_GB, if not available try using en 2011-11-16 09:15:41 +00:00
Ralf Becker
f6fe40f2d9 fixed forwarding of authentication (ldap or ads) homedirectory attribute to egw_info and vfs 2011-11-15 19:16:09 +00:00
Ralf Becker
8ab9b0d2f2 allow to use homedirectory attribute from LDAP or ADS authentication for VFS mounts 2011-11-15 12:43:59 +00:00
Ralf Becker
988123bb73 fixing warnings generated by php 5.3.8 is_a($obj) trying to autoload huge strings 2011-11-15 12:22:47 +00:00
Ralf Becker
8202298db5 do NOT force user to change password, if LDAP does NOT support shadowlastchange attribute 2011-11-15 10:09:44 +00:00
Ralf Becker
08aca8ff51 allow to use LDAP homeDirectory attribute as $home in mount-url 2011-11-15 06:56:32 +00:00
Ralf Becker
89fdaa7691 disabled NOT working addressbook-findshared report, which is only used in 10.6, but currently creates and error with 10.6 addressbook 2011-11-14 11:54:59 +00:00
Klaus Leithoff
c90b1cafa7 silence php-warning; silence error_log 2011-11-10 14:39:07 +00:00
Ralf Becker
a48104bfd7 in case no charset is set, default to utf-8, as otherwise setting charset in sqlfs_stream_wrapper can stall install 2011-11-10 10:24:37 +00:00
Ralf Becker
64c076c536 fixed exception stalling new installs 2011-11-10 10:09:37 +00:00
Nathan Gray
c3abca67db Return an array, not null, if there are no preferences for the app 2011-11-09 16:32:42 +00:00
Ralf Becker
b0a22dae6a removed calendar-preference "color for Apple iCal", as it set a single color for all calendars you have access too, storing and returning color set by iCal (untested) 2011-11-09 13:23:53 +00:00
Ralf Becker
ade24e4943 added OS X 10.7.2 iCal 5.0.1 user agent 2011-11-08 21:03:49 +00:00
Ralf Becker
e714be2d36 fixed not working update of events, as etag2value still expected EGw- -wGE around ETag 2011-11-08 21:02:47 +00:00
Nathan Gray
f8489c0ed1 Update jqplot to
jquery.jqplot.1.0.0b2_r947
2011-11-07 20:37:55 +00:00
Klaus Leithoff
ac061f68f7 fix typo 2011-11-02 14:57:41 +00:00
Ralf Becker
f993bf1051 no need to add group-members as additional proxys, ACL grants to groups are understood by WebDAV ACL (tested with iCal) 2011-11-02 14:03:36 +00:00
Ralf Becker
69288160ae fixed not working proxy display in iCal, if resource-name contains a german umlaut: names get now transliterated to ascii (they are unique anyway, as prefixed by resource-id) 2011-11-02 13:41:41 +00:00
Klaus Leithoff
e0853e2bd2 check availaility of htmlarea before opening compose as html or html mails as html for reply; implement check based on http_user_agent for user agent known to be not compliant with ckeditor (android); allow class attribute for div, blockquote, a and img 2011-10-31 10:28:30 +00:00
Klaus Leithoff
d844dcdbd5 * API: updating CKEDITOR to version 3.6.2, altering editor modes and availability of toolbar options 2011-10-28 09:12:40 +00:00
Ralf Becker
5202d0db2d do NOT query proxys for app user has no rights too, can give SQL error, if app is not even installed, eg. resources 2011-10-25 08:08:01 +00:00
Ralf Becker
a5230cb614 casting boolean explicitly to string, as ADODB_postgres64::qstr() has an unwanted special handling for boolean types, causing eg. query in CalDAV for resources throw an invalid SQL exception under PostgreSQL 2011-10-25 07:49:54 +00:00
Ralf Becker
8096c34bef - fixed ORGANIZER/ATTENDEE in iCal for CalDAV:
+ do NOT use ORGANIZER for events without further participants or a different organizer
+ do not include event owner/ORGANIZER as participant in his own calendar, if he is only participant
--> all other cases include ORGANZIER and additional as ATTENDEE (tested with iCal on iOS and OS X)
- implemented schedule-tag and If-Schedule-Tag-Match header from CalDAV Scheduling
- allow to change participant status and add/remove alarms with schedule-tag instead of ETag
--> If-Schedule-Tag-Match header has precedence over If-Match (ETag) header, but limits changes to participant status and alarms
--> ToDo: test accepting, rejecting recurrences
2011-10-20 20:10:04 +00:00
Ralf Becker
e0690d2342 type attribute for principal-property-search report limiting search on a certain type/tree 2011-10-20 20:00:13 +00:00
Ralf Becker
ceaec3d3c1 added calendar-timezone property, changed groupdav_handler::extra_properties signature (removed static and added $user parameter), removed calendar-user-address-set property belonging only to principal 2011-10-20 13:35:01 +00:00
Ralf Becker
0a5e2426d1 fixed wrong timing in serialization of array, when storing arrays as config values, probably also fixing last issue of community bug #3059 2011-10-20 11:41:20 +00:00
Ralf Becker
512138ed56 diverse fixes for resources&locations, thought iCal only autocompletes locations, no idea why it skips resources, thought resources booked via webgui are shown correct 2011-10-17 15:36:28 +00:00
Klaus Leithoff
b56fe24784 catch exeption on CreateObject of bopreferences, if no felamimail is available 2011-10-17 08:41:43 +00:00
Ralf Becker
586a07924a implementation of (announced, but previously not implemented) acl-principal-prop-set report 2011-10-17 06:44:09 +00:00
Ralf Becker
a949acf031 locations and resources principal tree, should allow (untested!) to add resources via iCal autocomplate and "subscribe" to resource calendars 2011-10-16 08:53:07 +00:00
Ralf Becker
6d9491cf55 not announcing DAV level 2, as we dont support locking 2011-10-16 08:49:20 +00:00
Jörg Lehrke
d76b136151 * Fix WBXML namespache issue (bug 3048) 2011-10-15 22:46:13 +00:00
Ralf Becker
6ff4534aa6 disable custom field tab, if no custom fields for specific queue/type2 2011-10-14 13:54:02 +00:00
Ralf Becker
5cf9f585c2 fixed not working storing of config for an app, which not yet has a config 2011-10-13 06:19:14 +00:00
Ralf Becker
5b3d0c3ca2 fixed behavior of GET or HEAD with If-None-Match returning "304 Not Modified" instead of "412 Precondition Failed", if no If-Match header given 2011-10-08 18:27:02 +00:00
Ralf Becker
b2fa12eb3e remove unusual and unnecessary "EGw-...-wGE" prefix/postfix from etag and ctag 2011-10-08 11:34:55 +00:00
Ralf Becker
b2ea1a7d05 new method groupdav_principals::url2uid to convert a principal url to a calendar uid, fixes emclient uses urn:uuid urls in outbox posts to get freebusy 2011-10-07 06:02:30 +00:00
Ralf Becker
e654d3fbfb correctly handle uid/name-part of path containing #%? 2011-10-06 07:51:24 +00:00
Ralf Becker
e05ce4d614 enclosing etag in quotes, as most servers do 2011-10-05 08:15:24 +00:00
Ralf Becker
8cce6075bd fixed iCal parser to unescape escaped separators AFTER spliting by them, causing eg. semicolons in vcard N property (name) to fail 2011-10-05 06:27:24 +00:00
Jörg Lehrke
b65428b153 * Fix WBXML encoding issue (community bug#3020) 2011-10-04 21:21:38 +00:00
Ralf Becker
b227e61236 removed certain properties defined only on the principal 2011-10-04 11:37:44 +00:00
Ralf Becker
c670740a71 fixed encoding issue with group-name containing a space, causing eg. OS X iCal to not display proxys 2011-10-04 07:27:33 +00:00
Ralf Becker
60ba2b9628 fixed admins not having access to all accounts, if account_selection was none or groupmembers, from which admins are explicitly excepted 2011-10-03 13:40:41 +00:00
Ralf Becker
175197d7c0 * CalDAV: no METHOD:PUBLISH for CalDAV outside the inbox 2011-10-03 12:53:28 +00:00
Ralf Becker
0837c263ff CalDAV principals: fixed wrong namespace causing iOS5 iCal to NOT autocomplete participants 2011-10-03 09:59:50 +00:00
Ralf Becker
700143eef8 if we have NO password, eg. because we run by async service outside a regular user session
--> fall back to the default profile / mail config from setup
2011-09-29 15:26:13 +00:00
Ralf Becker
4eaf9609c1 fixed docu-typo 2011-09-28 15:41:42 +00:00
Ralf Becker
bb4b9819b0 * CalDAV/GroupDAV/InfoLog: making synced InfoLog types configurable and moved getctag method to infolog_bo in preparation of InfoLog eSync support 2011-09-28 12:35:53 +00:00
Ralf Becker
aac290a330 fixed typo: record-type is "users" not "user" 2011-09-26 17:08:36 +00:00
Klaus Leithoff
db3f408f18 if ldap with fallback sql, we may be able to fetch and set the password last change date, if we are on primary, so check if the method exists instead of returning false. 2011-09-26 15:20:40 +00:00
Klaus Leithoff
740758d026 check if method exists for the fallback_auth, before calling get/setLastPwdChange 2011-09-26 11:01:16 +00:00
Ralf Becker
7443fdc639 * GroupDAV/KDE assume KDE 4.7+ uses native Akonadi resource, while below pre-Akonadi GroupDAV resource is used: unfortunately both have contradicting requirements 2011-09-26 10:20:27 +00:00
Klaus Leithoff
ac2279d933 * API: is_a compatibility vs. php5.3.8 resolving to instanceof operator for most common basic classes 2011-09-26 09:52:43 +00:00
Ralf Becker
b791b23f08 fixed typo causing to not announce addressbook outside of addressbook folder 2011-09-26 06:39:13 +00:00
Ralf Becker
14dde4c1ff iOS iCal sends now pricipal-property-search reports to autocomplete participants, but not (yet) displays the result, for whatever reason ... 2011-09-25 12:00:20 +00:00
Ralf Becker
b4b04844fe added two more match-type values from CardDAV:text-match 2011-09-24 21:15:44 +00:00
Ralf Becker
0a7b7e40c8 - improved principal-property-search report to support test=(allof|anyof) and match-type=(contains|starts-with) attributes used by iOS iCal to autocomplete participants
--> participants are - thanks to CalDAV scheduling - now setable for new event, thought searching for them does NOT yet work, no idea why ;-)
- added somehow missing calendar-query report to supported-report-set
2011-09-24 21:10:53 +00:00
Jörg Lehrke
f6f47e586b * Fix SyncEvolution issue (community bug#2975) 2011-09-24 17:33:35 +00:00
Ralf Becker
3f830b2bff - implemented principal-property-search report required for WebDAV ACL and used by Lightning to search for calendar-home-set
- had to implement a workaround for Lightning, as it wrongly interprets principal-property-search for calendar-home-set in the principal-collection-set
  matching our *DAV root returning all principals, as all have a matching calendar-home-set, as NOT supporting CalDAV scheduling
  --> search only current user's principal, when Lightning searches for calendar-home-set
- OPTIONS / return now calendar-auto-scheduling too, as Lightning only searches there, to check if server supports CalDAV scheduling
- fixed outbox freebusy request to cope with no X-CALENDARSERVER-MASK-UID and a single attendee
2011-09-23 12:04:21 +00:00
Klaus Leithoff
53c78cd9e2 as the timestamp used for ldap is not the unixtimestamp, we just use time for updating the session cache on auth_alpwchange_val 2011-09-23 11:10:05 +00:00
Klaus Leithoff
ac22466ba0 set the session cache for auth_alpwchange_val in methods for changepassword too 2011-09-23 09:56:12 +00:00
Klaus Leithoff
6bff18eadd set the session cache only when not in admin mode 2011-09-23 09:41:03 +00:00
Klaus Leithoff
b860d7fb50 set the session cache for auth_alpwchange_val on setLastPwdChange 2011-09-23 09:29:59 +00:00
Nathan Gray
390bb1f6f0 Get all button images working (in timesheet & infolog list at least) 2011-09-22 21:23:30 +00:00
Ralf Becker
b5269738d7 read-free-busy, schedule-send and schedule-deliver privileges 2011-09-22 18:46:16 +00:00
Klaus Leithoff
afb4dff864 * API/CheckPasswordAge: new approach to the issue, as we have to take into account that the timestamp of the last password change may not be provided by the auth system. We fetch the timestamp from the authsystem if the method is implemented for the auth method configured (instead of juggling with account_lastpasswd_change or account_lastpwd_change) 2011-09-22 15:29:41 +00:00
Ralf Becker
c26fcffda7 first step for CalDAV scheduling
- principal reports scheduling-inbox-URL /<username>/inbox/ and scheduling-outbox-URL /<username>/outbox/
- outbox collection contains no events
- outbox correctly answers POST for freebusy information
- outbox respons to all other POST with "204 No Content", ignore client request to deliver invitations
- inbox collection contains events of unknown status (PARTSTAT=NEEDS-ACTION)
- inbox responds to DELETE with "200 Ok"
--> iCal under OS X now shows freebusy times :-)
(had to add "write-content" privilege for calendar collections user has edit rights for, to allow adding events)
2011-09-22 15:22:52 +00:00
Ralf Becker
1f39e5c562 - added WebDAV ACL props supported-privilege-set and current-user-privilege-set
+ currently only standard WebDAV privileges: read, read-current-user-privilege-set, write-content, bind and unbind used
  + they get only queried for collections, thought we dont report any write* on collections, as we dont allow to create calendars or change properties
- new groupdav::add_resource() method used to add all resources (incl. collections) to propfind or report requests
- improved autoindex to show nicely indented hierarchical properties
2011-09-21 20:08:21 +00:00
Ralf Becker
d5f9c5b93c - show user collections /<username>/(addressbook|calendar|infolog)/ in propfind
- only define addressbook-home-set and calendar-home-set for principal-collections
- advertice /addressbook/ as addressbook-gateway (searchable collection for all contacts accessible to a user)
2011-09-20 19:16:24 +00:00
Nathan Gray
4a3c3cf659 Add fallback handling using typeof when input.constructor fails 2011-09-19 23:19:16 +00:00
Ralf Becker
8b74af09c5 correctly handle (forced) user preference account-selection "none" or "groupmembers": do not show other groups or users 2011-09-19 14:15:33 +00:00
Ralf Becker
b848d23ef3 fixed no longer possible direct access/mount of VFS root via WebDAV after r36606 2011-09-19 11:39:46 +00:00
Ralf Becker
03ed1d3ddb - refactored code to use a single add_collection method in groupdav class
--> app groupdav classes now get calling groupdav object as parameter
Had a quick test with iOS & OS X addressbook, calendar and with Lightning
2011-09-18 10:56:56 +00:00
Ralf Becker
b49aae4675 - using now associative properties for easier extending, which get converted at end of add_collection to HTTP_WebDAV_Server properties
- added addressbook-findshared report to principals
2011-09-17 12:31:47 +00:00
Ralf Becker
f61e4dfcfa added collection to /principals/ resourcetype and principal-collection-set to root 2011-09-17 12:29:51 +00:00
Ralf Becker
cea61e2436 fixed typo stalling mail notifications 2011-09-16 16:11:05 +00:00
Ralf Becker
7f7e84afaa activating calendar-proxy in OPTIONS 2011-09-16 11:48:28 +00:00
Ralf Becker
2a7127a4c3 show real namespaces instead of not (visibly) defined shortcuts 2011-09-16 10:21:40 +00:00
Ralf Becker
6ce0906838 * CalDAV: implemented calendar proxy support and cleaned up principals tree 2011-09-15 22:45:00 +00:00
Klaus Leithoff
f616b34f58 API: introduce register_single_app_hook to be able to add or update one hook for an required app. register added/updated hooks with ->location; calendar and addressbook are using this to insert export_limit hook if not available. use app hook to fetch app specific export limit with import_export side_menu additions too 2011-09-15 16:53:20 +00:00
Ralf Becker
93b7e6885c check if we are already trying to unlink the entry, to avoid an infinit recursion 2011-09-15 16:35:28 +00:00
Klaus Leithoff
d9905d3fb4 calendar/addressbook/API: introduce hook to fetch the export_limit to be applied for an app; introduce method to test if a specific hook exists for an application; fetch the export_limit via hook where appropriate 2011-09-15 14:46:56 +00:00
Ralf Becker
bd06c4c9d5 * Filemanager/WebDAV: understand Windows7 modification time attribute and setting and returning is as vfs modification time 2011-09-15 12:14:20 +00:00
Ralf Becker
859f83bf39 if nothing left in queue, stop interval-timer to give browser a rest 2011-09-14 14:22:38 +00:00
Ralf Becker
abac9e96fe fixed fatal error, if there are no parameters 2011-09-14 14:22:17 +00:00
Ralf Becker
77f2a043fc local caching and queueing of egw.link_title() requests 2011-09-13 19:55:06 +00:00
Ralf Becker
5cadd29d58 Basic egw.link_title(_app,_id,_callback,_context) method.
Plan is to run a clientside cache and own queue for link_titles, as server can query titles for N id's for a given app more effiently then N separeate queries.
2011-09-13 18:23:43 +00:00
Ralf Becker
516b977472 ability to queue ajax requests on the client and send them as a single ajax request every N ms to the server
a) instead of a single request like: new egw_json_request(menuaction, params).sendRequest(true, callback, context); 
b) you call: egw.jsonq(menuaction,params,callback,context)
The server callback is identical for both kinds of requests. All egw_json_response methods can be used and the callback is optional.
2011-09-13 17:27:02 +00:00
Ralf Becker
2ed73047df fixed serveral issues around cached config:
- changing config in setup did not update or unset the cache --> instance was NOT using it
- new installs failed, because cache was not configured
- cache command to not configured cache gave fatal error, now they throw a (catchable) exception
2011-09-13 09:25:25 +00:00
Ralf Becker
387be881ee egw.link(_url, _vars) method and using it for JS event handler 2011-09-09 19:41:09 +00:00
Ralf Becker
b1b1ab820a no need for db schema on the client 2011-09-09 14:56:34 +00:00
Andreas Stöckel
df36138012 Changed loading order of dhtmlxcommon 2011-09-09 14:50:50 +00:00
Andreas Stöckel
50ad9e4ba0 Included dhtmlx js files in egw_menu_dhtmlx.js, fixed problem with removing action objects, improved egw_include_mgr a bit 2011-09-09 14:03:18 +00:00
Andreas Stöckel
4bb00f1475 Fixed problems with include manager. Includes like 'phpgwapi.jquery.jquery.ui' do now work. 2011-09-09 11:41:14 +00:00
Ralf Becker
ea03c4032b implemented link attributes for image-widget and added them to xulio, some docu for describtion 2011-09-08 20:44:53 +00:00
Nathan Gray
6585ff14e6 Add a place for egroupware to tap into file request before it's sent 2011-09-08 20:32:58 +00:00
Ralf Becker
008f009d80 - implemented new egw.link_app_list(_must_support) and egw.link_get_registry(_app, _name) methodes
- using egw.link_app_list('query') in link widget (no need to transfer it additonally)
- added some more docu to egw object
2011-09-08 12:24:53 +00:00
Ralf Becker
b950c5b811 fixed typo causing search for group-members to fail for accounts in sql 2011-09-08 09:57:32 +00:00
Nathan Gray
65a37234c4 Add some jquery resources - CSS and icons. 2011-09-07 23:32:03 +00:00
Ralf Becker
f5c5df3299 respect restrictive account-selection "groupmembers" and "none" when linking with accounts and sort search for accounts alphabetically 2011-09-07 16:44:00 +00:00
Ralf Becker
b633044a46 * API/Calendar: allow to link to accounts and allow to select accounts as participants by searching them like contacts 2011-09-07 14:47:51 +00:00
Ralf Becker
8d28765f76 % should be encoded, but easily leads to double encoding, therefore better NOT encodig it in egw_vfs::encodePathComponent() 2011-09-07 08:40:52 +00:00
Ralf Becker
c23450ea73 deal with parsing of query parameters appending an "=" to "?download", accepting "?download=" too 2011-09-06 07:23:02 +00:00
Ralf Becker
366bad914d * Filemanager/WebDAV: #?+ and chinese characters working now in filenames 2011-09-05 10:25:28 +00:00
Nathan Gray
8875c94c24 Async file uploads 2011-09-01 22:07:30 +00:00
Ralf Becker
046c0919cc make basic data of current user available via egw.user(_field) 2011-08-31 12:17:34 +00:00
Ralf Becker
54bf7a3d2d - fixed image map was empty created when not loged in (now directories are used and not $GLOBALS['egw_info']['apps'])
- fixed not working vfs-image-dir
- deleteing image-maps when:
  + apps get installed, updated or removed
  + admin >> register hooks
  + admin >> site configuration: vfs-image-dir get changed
- fixed not displayed validation errors (thought there were no validation) in admin >> site config
--> you need to register hooks, in order to get the admin >> site configuration validation hook ;-)
2011-08-31 10:16:12 +00:00
Ralf Becker
5d83c036e0 forgot to switch of error_log for not found images, as that happens regulary in some parts of EGroupware 2011-08-31 08:01:18 +00:00
Ralf Becker
19d167f5be fixed not working jerryr template set, needs image_on and previously not working template image dir 2011-08-31 07:52:19 +00:00
Ralf Becker
7868b684cd using php5 constructors 2011-08-31 07:50:28 +00:00
Ralf Becker
1e7b17203f - if image not found, check if it might contain extension and try without (better is not to use extension at all!)
- changed default to current app as in API, but it is not yet working, because egw object runs in framework for jdots :-(
2011-08-31 06:26:05 +00:00
Ralf Becker
ea7ad6318d new clientside image-name to url map: egw.image(_name, _app="phpgwapi")
eg. egw.image('favicon') returns '/egroupware/phpgwapi/templates/default/favicon.ico'
--> pondon to serverside common::image($app,$name) method
2011-08-30 22:19:38 +00:00
Ralf Becker
dce02a03cb re-added common::find_image() and common::image_on() as deprecated 2011-08-30 22:16:31 +00:00
Ralf Becker
a048840e44 use one instance specific image_map to translate between image-names and URLs, which can be transfered to the browser for etemplate2 (next commit) 2011-08-30 22:03:17 +00:00
Ralf Becker
a654002f7b * WebDAV: allow locking of not (yet) existing files to create them
- failed before as there are no write-rights for not existing files
- now we check for not existing files the write rights of the parent directory
2011-08-30 17:03:34 +00:00
Andreas Stöckel
0bb328dc6d Initializing configs variable with empty object, to have code running standalone 2011-08-30 09:15:00 +00:00
Nathan Gray
331cd20bf3 Add base64 functions for communciationg with felamimail 2011-08-29 21:14:09 +00:00
Ralf Becker
4a1f4fff8c * Filemanager: "Save as" option for files to force download and not open in browser 2011-08-29 08:40:22 +00:00
Ralf Becker
ae5cde8259 fix bug reported on devel-list:
egw_cache::get_provider(Instance) no provider found (error instanciating provider egw_cache_files: egw_cache_files::__construct() server/temp_dir
--> made egw_cache::get_config_value public, so egw_cache_files can use it and for regular egw sessions read install_id and temp_dir together with system_charset, before calling config::read()
2011-08-29 05:58:54 +00:00
Ralf Becker
edab2bd248 $GLOBALS['egw_info']['server']['lang_ctimes'] is now an array 2011-08-28 12:48:31 +00:00
Ralf Becker
4c23b3766e egw API update missed in r36331:
- sending EGroupware configuration (non-sensible stuff) to browser and make it available via egw.config(_name, _app="phpgwapi")
- sending link-registry in the same file
- used javascript file uses etag to ensure there's no need to load it on each request
2011-08-28 08:28:53 +00:00
Ralf Becker
a8af711f11 add backtrace to failed includes, to see where it comes from 2011-08-27 08:48:27 +00:00
Ralf Becker
be6fd87783 - sending EGroupware configuration (non-sensible stuff) to browser and make it available via egw.config(_name, _app="phpgwapi")
- sending link-registry in the same file
- used javascript file uses etag to ensure there's no need to load it on each request
2011-08-26 16:27:57 +00:00
Ralf Becker
389486793d - config is now cached on instance level
- arrays in $GLOBALS[egw_info][server] are now automatically serialized and unserialized
- new static method to check if user is export-limit excepted
--> saves to query it on each request (for non-phpgwapi, which was already cached in the session)
2011-08-26 13:50:20 +00:00
Ralf Becker
a925764fc4 - dynamical (synchronious) loading preferences (other then "common") from server via egw.preference(_name, _app)
- setting preferences on server via egw.set_preference(_app, _name, _value)
- enable calling of active framework / template class via using egw_framework instead of not known used framework class of user, eg. "home.egw_framework.ajax_func.template" instead of "home.idots_framework.ajax_func.template"
2011-08-26 09:34:18 +00:00
Klaus Leithoff
4effb9931e fix problem with double encoding html special chars (introduced with rev36141) 2011-08-26 08:21:04 +00:00
Ralf Becker
d295c17e90 fix for community.egroupware.org bug #3027: Open item in element list no longer working 2011-08-26 07:31:18 +00:00
Andreas Stöckel
55bf8f9570 additional check for existance of application in lang array 2011-08-23 17:11:45 +00:00
Ralf Becker
16c6a8d4f9 got clientside translations working for etemplate2 apps: egw.lang("%1 timesheet(s) %2", 5, egw.lang("deleted")) 2011-08-23 16:15:54 +00:00
Ralf Becker
24e34f7927 new clientside API object currently supporting the following methods:
- egw.preferences(_name, _app='common') return preference _name of _app (only common prefs loaded currently)
- egw.open() allowing to open app-entries utilising the link registry, deprecating egw_open from jsapi.js
- egw.lang(_msg, _arg1, ..., _argN) placeholders are not yet implemented
2011-08-23 14:29:56 +00:00
Klaus Leithoff
050a1307cb * API: take care of INNODB and STRICT_TRANS_TABLES for recent mysql installations 2011-08-22 10:16:07 +00:00
Ralf Becker
7dd54648b9 merging all translations in window.egw_lang, to not have to search n-arrays 2011-08-21 20:22:09 +00:00
Ralf Becker
0aa128b53e Loading translations like other javascript files:
setting headers to allow browser to cache the file until it's etag containing the creationdates of the used langfiles changes
--> et2 can now use egw_lang object to translate labels, options, ...
2011-08-21 20:09:14 +00:00
Ralf Becker
750f80b23b fix to work with path containing a query 2011-08-21 20:01:10 +00:00
Klaus Leithoff
bda5e014d7 * tracker: mailhandling - prevent to use rsh or ssh to establish connection 2011-08-18 14:49:16 +00:00
Nathan Gray
1761ea02db Add in jquery.tools form tools 2011-08-17 21:35:22 +00:00
Ralf Becker
697a113171 url need to run throught htmlspecialchars too (like every attribute in html markup), eg. "x&reg_id=" fails otherwise 2011-08-16 11:44:33 +00:00
Hans-Jürgen Tappe
b176cb9256 - Allow sitemgr blocks to be moved between pages, categories and websitewide
(previously only moving from a page up to the cat, then up globally was
  possible).
- Allow options within a select to be formatted through the standard
  html::select_option() function
2011-08-15 16:25:08 +00:00
Andreas Stöckel
c999373490 Added possibility for egw_json plugins to be executed in the context of the creator of the request object 2011-08-15 14:26:37 +00:00
Ralf Becker
2a95927fc8 added update from 1.8.002 2011-08-11 19:04:40 +00:00
Ralf Becker
4f54abdda2 quietened PHP Warning: array_keys() expects parameter 1 to be array, null given on line 106 2011-08-11 07:31:47 +00:00
Ralf Becker
9c82896a7b quietened PHP Warning: in_array() expects parameter 2 to be array, boolean given on line 855 2011-08-11 07:23:29 +00:00
Nathan Gray
a30b864ddd Add jqplot for graphing 2011-08-09 23:10:50 +00:00
Ralf Becker
17a41103d5 Loa language translation from vimontha <kvimontha@yahoo.com> 2011-08-09 06:12:25 +00:00
Ralf Becker
5e9d4f3601 * API fix PHP fatal error wakeup2 is no method ..., when comming from setup 2011-08-05 08:01:51 +00:00
Ralf Becker
30f5025431 * API fix webserver_url of just a domain eg. http://domain.com gives PHP Warning empty delimiter ... 2011-08-05 08:00:58 +00:00
Ralf Becker
cc113b3519 merged latest changes from doc/rpm-build/apache.conf 2011-08-04 08:14:23 +00:00
Ralf Becker
6a1834ceff * NTLM authentication: limit redirect, if NTLM auth could not be preformed, to same domain, EGroupware domain, or explicitly whitelisted domains
to fix issue "found" on www.autosectools.com
2011-08-04 07:58:57 +00:00
Ralf Becker
31c9e8965b fixed creating of new translations / give [Write] button file not yet existing (permissions given) 2011-08-04 07:27:23 +00:00
Ralf Becker
fc5f651412 Loa language translation from vimontha <kvimontha@yahoo.com> 2011-08-04 07:00:00 +00:00
Andreas Stöckel
6fff48a306 Fixed typo in comment 2011-08-03 14:27:45 +00:00
Andreas Stöckel
2e9104ecea Added dependencies to the egw_action js files 2011-08-03 14:04:30 +00:00
Andreas Stöckel
149c154540 Added system which allows us to define dependencies inside js files.
An introduction on how this can be done is given in class.egw_include_mgr.inc.php.
This file/class may lateron be extended to minifiy, compress and cache groups of js files - currently only the 'debug-mode' is implemented, which sends all javascript files as individual files, making it easy to debug the java-script files in the browser.

The new method should work with all old code, especially including java-script files as part of an ajax-response, if something is broken, please report that!
2011-08-03 14:03:31 +00:00
Klaus Leithoff
8d7c954544 sticking to the rules of the protocoll while writing a request to port, ensures that lighttpd (>=1.4.28) understands our requests 2011-08-03 13:36:59 +00:00
Ralf Becker
04e032e7af fixed problem "found" on www.autosectools.com 2011-08-03 08:29:53 +00:00
Ralf Becker
79d12b67be * CalDAV: user agent detection of OS X 10.7 Lion iCal app (CoreDav instead of DavKit) 2011-08-02 12:59:23 +00:00
Andreas Stöckel
10e5735e16 Allowing mutliple action-link groups to be defined for grid entries. These must be comma seperated. 2011-08-02 11:51:58 +00:00
Klaus Leithoff
11475a41cd * admin: allow to choose which kind of spellchecking you would like to employ when using the CK Editor (Options now: Yes, No, Without SpellCheckAsYouType, WebSpellChecker) 2011-08-02 11:39:59 +00:00
Andreas Stöckel
5a7daf61aa Fixed problem with move_files function always returning false 2011-08-02 09:33:13 +00:00
Ralf Becker
6d8c35496a - silently use server_timezone if wrong user timezone preference is set, as we can not (easily) report it to the user at the stage of initialising EGroupware
- if server_timezone is NOT valid, try (and permanently store!) date_default_timezone_get() frist and then "Europe/Berlin"
2011-08-01 13:04:40 +00:00
Klaus Leithoff
09963248f1 * API: upgrade ck editor from v3.3.1 to v3.6.1 (latest release as of June 2011) 2011-08-01 11:48:47 +00:00
Ralf Becker
73450d3817 fixing 3 failed litmus tests:
- copy_coll, move_coll: using egw_vfs::find instead of System::find which we dont require and fails anyway for some reason
- copy_shallow: by updating COPY with changes from 1.0.0RC6 (depth="0" is allowed for copy, thought HTTP_WebDAV_Server still copies the whole collection!)
2011-07-31 09:23:16 +00:00
Ralf Becker
399c835f11 HTTP_WebDAV_Server 1.0.0RC6 changes without Server.php changes comming later 2011-07-29 10:33:52 +00:00
Ralf Becker
632a91774d allow dash ("-") in app name, eg. sitemgr-site 2011-07-26 13:49:53 +00:00
Klaus Leithoff
45468c801a patch to fix problem with ->not able to see mail<- egw_instant_load.html not found. provided by Vladimir Kolobkov; Thanks a lot 2011-07-25 15:52:22 +00:00
Klaus Leithoff
f297d65790 make sure there is no whitespace leading or trailling the host string, when attempting to send 2011-07-21 12:11:17 +00:00
Klaus Leithoff
cae37dab26 if there is only a single event in the action, buffer it into/with a window.setTimeout function call, and wait for the trigger to execute and clean up as it does with multiple actions on a target 2011-07-21 10:50:33 +00:00
Klaus Leithoff
6263753e80 add missing default translation for lang key tls 2011-07-14 08:54:30 +00:00
Ralf Becker
f294a9274c removed two css settings messing up existing eTemplate layouts:
- spans were different vertical aligned the prefixing text
- all nextmatch header were forced to left alignment
--> seems to have no negative effect, but fixes some ugly layout bugs
2011-07-13 12:51:33 +00:00
Ralf Becker
f8d62195a2 style for disabled buttons 2011-07-10 18:23:27 +00:00
Ralf Becker
039288b06e fixing the last fix, code was still needed ;-) and automatically hiding the location bar for mobile browsers 2011-07-10 12:05:20 +00:00
Ralf Becker
84727a4a49 fixed division by zero, by removing not longer needed mobile code 2011-07-09 16:53:24 +00:00
Ralf Becker
8e83e41263 - improved mobile template: calendar & email sidebox is showing now, removed most of the former css hidden stuff
- fixes jscalendar to work will in sliding sidebox
2011-07-09 16:35:18 +00:00
Jörg Lehrke
79fa226d83 * Generate well-formed XML for Funambol and SyncEvolution clients (community bug#2975) 2011-07-08 19:46:08 +00:00
Ralf Becker
4f60da9af5 differenciate in our serverside user-agent detection between Chrome and Safari, and disable html5 form validation for float, as Chrome 12 rejects float values with comma as decimal separator 2011-07-07 11:50:06 +00:00
Nathan Gray
e4d0a78c8d Allow setting owner when creating a new category 2011-07-06 15:09:08 +00:00
Ralf Becker
2acb6c7ab5 * Template for mobile browsers: only show application area, all apps are available via slideout menu 2011-07-06 07:19:54 +00:00
Ralf Becker
36eaa8e987 fixed not working mime parameter, if just a main type eg. "image" is given 2011-07-04 18:53:48 +00:00
Klaus Leithoff
93636849e6 put some more documentation ito the function header doc part 2011-07-04 13:23:55 +00:00
Klaus Leithoff
820dbed203 make sure we set SMTPSecure to ssl or tls if the standardports for ssl or tls are configured for the given profile 2011-07-04 13:14:45 +00:00
Andreas Stöckel
44b8c43e1e Fixed keyboard navigation in treeview 2011-07-03 12:33:18 +00:00
Ralf Becker
03e379e570 * jQuery: changed $ to $j to work around mootools use in Joomla templates and other js code in imported projects
required to change $ --> $j:
phpgwapi/*
jdots/*
etemplate/*
stylite/*
felamimail/*
admin/*
news_admin/*
projectmanager/*
importexport/*
infolog/*
ranking/*

required, but not automatic:
importexport/setup/etemplates.inc.php
phpgwapi/js/jquery/*

negative, not to touch or revert later:
phpgwapi/inc/savant2/Savant2/Savant2_Compiler_basic.php:		'(\$(.+))'            => 'print $1',
phpgwapi/js/dhtmlxtree/libCompiler/core.js
sitemgr/*
phpfreechat/*
gallery/*
activesync/include/smb.php:        '^\tIPC\\\$(.*)[ ]+IPC' => 'skip',
etemplate/inc/class.bo_merge.inc.php: if ($this->table_plugins && preg_match_all('/\\$\\$table\\/([A-Za-z0-9_]+)\\$\\$(.*?)\\$\\$endtable\\$\\$/s',$content,$matches,PREG_SET_ORDER))

find phpgwapi jdots etemplate stylite felamimail admin news_admin projectmanager importexport infolog ranking \
	\( -name '*.php' -o -name '*.js' \) -exec grep -q '\$(' {} \; -print \
	-exec sed -i '' 's|\$(|$j(|g' {} \;
svn revert phpgwapi/inc/savant2/Savant2/Savant2_Compiler_basic.php phpgwapi/js/dhtmlxtree/libCompiler/core.js \
	importexport/setup/etemplates.inc.php phpgwapi/js/jquery/jquery.js etemplate/inc/class.bo_merge.inc.php
	
additional changes:
phpgwapi/js/jquery/jquery.js:	window.$ --> window.$j
phpgwapi/js/egw_json.js:291	this.request = $j.ajax({url: this.url,
jdots/templates/jdots/head.tpl:59			$j(document).ready(function() {
phpgwapi/js/egw_action/egw_grid_view.js: $.browser --> $j.browser
importexport/setup/etemplates.inc.php: etemplate editor importexport.wizard_basic_export_csv.choose_fields onclick of check icon changed
phpgwapi/js/egw_action/tests/*.html
phpgwapi/js/egw_action/tests/js/jquery.js:	window.$ --> window.$j
2011-07-03 09:00:36 +00:00
Ralf Becker
a7aef6a4da fixed egroupware.org bug #3002: PHP Warning: mb_strpos() in class.egw_session.inc.php on line 1081 2011-07-03 06:54:32 +00:00
Ralf Becker
70b84e372c fixed catchable fatal error: param 2 to egw_vfs::propatch() must be an array 2011-07-01 14:24:22 +00:00
Ralf Becker
3f6fcf60d2 support for some html5 form features, if browser supports it 2011-06-30 15:19:08 +00:00
Ralf Becker
9b26f95798 consolidating icons 2011-06-30 13:01:03 +00:00
Nathan Gray
f736c89bbf Prevent doubling webserver url when building a link 2011-06-29 16:35:24 +00:00
Ralf Becker
37ec659a8f quitend warning 2011-06-29 07:21:56 +00:00
Ralf Becker
5e05030629 fixed attachments lost when converting email to infolog, is_uploaded_file check in egw_vfs::copy_uploaded need to be switched off (plus improved logging) 2011-06-29 07:00:09 +00:00
Ralf Becker
bd7407ed88 - fixed bug in egw_vfs::check_access for a user different from current one: need to clear the stat-cache after the call too, as the next call might be the regular user again!
- new method egw_vfs::copy_uploaded() to copy a file into vfs and set properties (eg. the comment), while treating the whole operation notification-wise atomar (one notification about an added file).
- using that method for egw_link too
- fixed egw_link not displaying comments
2011-06-28 20:43:47 +00:00
Ralf Becker
e6470f6b58 some more debug stuff, switched off by default 2011-06-28 17:20:19 +00:00
Ralf Becker
27edf73e34 upload icon from KDE Tango theme 2011-06-28 07:03:07 +00:00
Nathan Gray
387f4ed073 Some fixes for category access with multiple owners 2011-06-27 22:05:03 +00:00
Ralf Becker
57215ec67c fixed not working debug message 2011-06-27 20:00:05 +00:00
Andreas Stöckel
a81e83a6e6 Prevented grid from loading all data when it is not visible 2011-06-26 15:44:08 +00:00
Andreas Stöckel
18f6a20df4 Included accidently commented out setTimeout commands again 2011-06-26 15:06:39 +00:00
Andreas Stöckel
44f73628e2 Implemented unregistering ActionImplementations when ActionObject.remove is called, ActionObject.clear now calls 'remove' on all child objects. 2011-06-26 14:57:05 +00:00
Ralf Becker
7b83209e7c forgot required changes in acl class, to read grants of a different user 2011-06-26 13:00:51 +00:00
Ralf Becker
04be4c57fe - new registry attribute "file_access_user" to signal "file_access" method understands new 4th parameter $user
- infolog implementation for it
--> allows to check if a given user has access to a files of app/id
2011-06-26 12:32:06 +00:00
Andreas Stöckel
644f7729e3 Added german translation for key codes 2011-06-25 14:46:20 +00:00
Andreas Stöckel
49e6780f07 Shotcuts are now generated on the server side, made key codes class constans 2011-06-25 14:27:30 +00:00
Andreas Stöckel
42e0b10797 Fixed bug with two many prefetch request (also doubles) - a part of this was caused by a wrong parameter sequence for the queueTimeout function, the other part was caused by the 'hasColumn' function not working correctly. 2011-06-25 13:45:46 +00:00
Ralf Becker
b2b27ece2e fixed not sorted eacls 2011-06-25 04:53:35 +00:00
Ralf Becker
36156c61ee clearstatchache needs to set eacl_cache to null, so it gets read again, setting it to array() stops all eacl 2011-06-24 18:19:18 +00:00
Ralf Becker
54dc16f3e5 calling egw_vfs::rmdir/unlink to ensure vfs hooks get called 2011-06-24 18:08:29 +00:00
Ralf Becker
5864d5f1a1 use vfs:// url, to ensure vfs_add|modified hook get called 2011-06-24 17:38:13 +00:00
Ralf Becker
ea6b823bd4 additional parameters _replace and _with for egw_refresh to modify the url, fixed not working update of existing msg parameter 2011-06-24 14:11:37 +00:00
Ralf Becker
e960b79570 fixed not working access to all non-private user categories (ACL was priviously allways taken into account) 2011-06-24 13:35:39 +00:00
Ralf Becker
92d861e712 give #account_id, if user not found 2011-06-24 10:28:08 +00:00
Ralf Becker
ba46b54355 improved exception message 2011-06-24 10:26:46 +00:00
Ralf Becker
7282d42f52 - added hooks to general vfs methods to allow apps to monitore file access, creating, modification, removal
- new $user parameter for egw_vfs::check_access($path, $check, $stat=null, $user=null) to check access to a file for a user, who is NOT the current user
2011-06-23 18:34:47 +00:00
Oscar Manuel Gómez Senovilla
164871ec02 Update Czech translation for trunk. Tracker #2886 2011-06-23 13:53:19 +00:00
Ralf Becker
2bf55a7c87 some fixes for English and Suomi translation, from our Suomi resident here as Stylite 2011-06-22 15:53:36 +00:00
Andreas Stöckel
416ff4787f Fixed bug with SHIFT + Arrow keys not working anymore 2011-06-20 19:25:50 +00:00
Andreas Stöckel
4a1d2cd72c Fixed bug with other jquery drag drop stuff (like sorting apps in the sidebox menu in the stylite template) not working correctly 2011-06-19 11:15:37 +00:00
Andreas Stöckel
1d23398ad9 Added server side key constants and shortcut-generator 2011-06-19 10:52:58 +00:00
Andreas Stöckel
bf8437551d Implemented egw_action shortcuts 2011-06-19 10:48:51 +00:00
Andreas Stöckel
f3ccd96f03 Grid and nextmatch aoi now reset the input element focus once a row is clicked 2011-06-16 20:43:33 +00:00
Andreas Stöckel
41c4d4cee4 Enabled toggeling the grid selection with CTRL+A 2011-06-16 17:08:32 +00:00
Andreas Stöckel
1706f0fb22 Added function for removing actionObjects 2011-06-16 17:03:39 +00:00
Andreas Stöckel
28e6ff6920 Implemented executing the default action with the return key 2011-06-16 13:43:46 +00:00
Ralf Becker
8e7c73dd84 some fixes for English and Suomi translation, from our Suomi resident here as Stylite 2011-06-16 13:01:29 +00:00
Nathan Gray
e9cc2549ac Allow categories->return_sorted_array() to use a filter too 2011-06-15 22:32:52 +00:00
Andreas Stöckel
fd12dfc4ce Fixed typo 2011-06-15 21:08:45 +00:00
Andreas Stöckel
9db8424e15 Implemented default focusing of objects in the tab manager, added new egw_getAppName function on js side, which returns the name of the currently active application - this is needed for the keyboard handler to pass the key events to the correct application object manager. 2011-06-15 20:54:58 +00:00
Andreas Stöckel
1c600b919d Implemented new selectmode in grid, added grid.setSelectmode method to set the selectmode 2011-06-15 16:31:33 +00:00
Andreas Stöckel
085d8bf07f Fixed problem with column header being displayed on checkbox columns, and always disabling the select-cols menu entry for it 2011-06-15 15:26:46 +00:00
Nathan Gray
5bed43746f Fix for editing private categories 2011-06-15 14:20:43 +00:00
Nathan Gray
81f58ab129 - Change category group filtering to allow multiple groups
- Give warning when removing access from a group
2011-06-14 18:50:35 +00:00
Ralf Becker
47439899a5 propset svn:keywords Id 2011-06-14 12:35:36 +00:00
Andreas Stöckel
2e457e4b75 Added forgotten keymanager unit 2011-06-14 10:13:47 +00:00
Ralf Becker
eb6bea34b2 some fixes to run save_repository() reliable within setup 2011-06-14 08:44:24 +00:00
Ralf Becker
69145c40b5 small docu update 2011-06-14 07:31:56 +00:00
Ralf Becker
34ada0535c fixing problem under windows: dirname("/something") === "\\", with which EGroupware VFS can NOT work, using now egw_vfs::dirname 2011-06-14 07:31:33 +00:00
Ralf Becker
fe2b0d17bc * CalDAV/GroupDAV/KDE Akonadi seems to require redundant namespaces, see KDE bug #265096 https://bugs.kde.org/show_bug.cgi?id=265096 2011-06-13 09:10:10 +00:00
Andreas Stöckel
e03d416fda Implemented first version of key-board control over action-objects. For now arrow/page up/down and CTRL-A works.
Known Issues:
- Keyboard navigation in egw_grids (like felamimail) may not work correctly when navigating to not-yet loaded items (current implementation for that is more a hack)
- short-cuts not yet implemented
- not tested in IE, Safari, FF 3.6
- felamimail sometimes loads all/many of the emails you were navigating over
2011-06-12 16:41:40 +00:00
Andreas Stöckel
49ece38c6c Don't send a location header if we currently handle an ajax response/request - use the corresponding json function instead. Doing this on the server side is neccessary as the location header is one of the few ones which is handled by the browser before any XMLHttpRequest event is fired (according to W3C specification) 2011-06-11 21:27:15 +00:00
Ralf Becker
220af27f60 Create template directory and set default document_dir preference of addressbook, calendar, infolog, tracker, timesheet and projectmanager 2011-06-11 11:57:51 +00:00
Ralf Becker
d7c7034771 * Admin/VFS/LDAP: on saving a group, check if group directory exists and create it if not 2011-06-10 11:00:40 +00:00
Ralf Becker
fcfbd038bc some fixes for the English translation, from our Suomi resident here as Stylite 2011-06-10 06:19:36 +00:00
Ralf Becker
d12475ec9e some fixes for the English translation, from our Suomi resident here as Stylite 2011-06-09 06:57:25 +00:00
Ralf Becker
095a36023e allow extending class to supply stat of parent 2011-06-08 12:54:43 +00:00
Ralf Becker
c66928875a no need to run expensive mb_substr 3 times 2011-06-08 10:41:22 +00:00
Klaus Leithoff
123b46372b extending patch rev32909/34417 (chopped off urls when URI contains umlauts AND mbstring.func_overload is activated): using rawurlencode instead of '%' . sprintf('%02X', ); as ord() only returns the int for the first character in a given string, thus crippling multibyte chars 2011-06-08 09:55:26 +00:00
Ralf Becker
c84c890738 fixed not working password change, if no rights for password app, but for preferences 2011-06-07 12:11:16 +00:00
Ralf Becker
582432398e fixed typo 2011-06-07 09:19:13 +00:00
Ralf Becker
2add4fe910 no need to scan non-directories - gives only warnings ;-) 2011-06-07 07:02:08 +00:00
Ralf Becker
9dfdabe1a3 some fixes for the English translation, mostly correcting case, from our Suomi resident here as Stylite 2011-06-07 06:29:49 +00:00
Ralf Becker
ed8c386a12 using egw_refresh to allow fmail to ignore the saved/deleted message 2011-06-06 15:11:25 +00:00
Ralf Becker
5ae8f52ad5 update to 1.9.010 and enabling password migration to sha512_crypt, if available 2011-06-06 06:52:45 +00:00
Ralf Becker
562343a4dd disabling permanent error_log and missing translation 2011-06-06 06:39:07 +00:00
Ralf Becker
fae1d29e68 - implemented more secure password hashing types: sha512_crypt, sha256_crypt and blowfish_crypt (later was only just broken)
- DB schema update for account_pwd to varchar(128) to accomodate sha512_crypt hashes
- enable automatic migration to sha512_crypt, if on SQL or LDAP (but only on Linux, as OpenLDAP has not native support for it)
2011-06-05 23:22:51 +00:00
Ralf Becker
f8d2bd1e6b - introduced preference of type "color"
- modernized color picker a litle to give a visual feedback of the color
2011-06-04 09:30:46 +00:00
Ralf Becker
994d1b63d4 allways display topmenu item "Password" addtional to "Preferences" and shorten "Manual / Help" in topmenu to "Help" 2011-06-03 18:36:47 +00:00
Andreas Stöckel
4477efd6dc Added possibility to add/remove css classes from individual grid view rows 2011-06-03 14:08:49 +00:00
Andreas Stöckel
3a8d1e3227 Fixed problem with double click handler not being bound correctly 2011-06-03 11:21:36 +00:00
Ralf Becker
2bba68b575 nicer workaround 2011-06-03 10:14:12 +00:00
Ralf Becker
310b22c172 * workaround for Fennec bug https://bugzilla.mozilla.org/show_bug.cgi?format=multiple&id=648250 window.(outerHeight|outerWidth|screenX|screenY) throw exception 2011-06-03 09:50:27 +00:00
Ralf Becker
c5e6b56503 missed UA check was caseinsensitiv 2011-06-03 09:09:25 +00:00
Ralf Becker
17fa23843c reworked mobil browser detection to use html::$ua_mobile to be in line with other html class stuff 2011-06-03 07:47:11 +00:00
Andreas Stöckel
0d66fcd9d1 Executing default action on click on mobile devices 2011-06-02 22:53:23 +00:00
Andreas Stöckel
a4730b3511 Added mobile browser detection function 2011-06-02 22:52:12 +00:00
Ralf Becker
fe92979bc1 fallback for egw_link::edit() to use view data, if no edit specified 2011-06-02 19:58:30 +00:00
Andreas Stöckel
d02c638ca9 Implemented global action manager and object manager, implemented possibility of adding sub-action-managers 2011-06-02 14:48:03 +00:00