Commit Graph

1290 Commits

Author SHA1 Message Date
Ralf Becker
dd0a5c1b13 Fixed CalDAV/GroupDAV to include all exceptions of a series in the
resource of the series master. Now the status of single recurrences of a
serie are send to the clients as (virtual) exceptions as Jaytrax&Joerg
implemented it already for SyncML.
The implementation is unfortunately a little different, as CalDAV
differs from SyncML and I dont know the SyncML part that well. Maybe we
can re-unify the code again together.
Tested so far with Tb3/Lightning1.0b and a little with iPhone.
Please let me know, if you run into problems with other clients.
2009-12-27 04:21:33 +00:00
Nathan Gray
e532ee0944 Implement new link hook view_list, to be able to be taken to a list of entries 2009-12-08 22:41:49 +00:00
Nathan Gray
ac14a5a1fd Implement options so link_query() can be limited 2009-12-08 22:36:43 +00:00
Ralf Becker
dd55355195 "fixed several small problems in new invitation and category acl" 2009-12-07 13:31:51 +00:00
Ralf Becker
60f72a9605 "fixed wrong default for referer (used if UA does not send one)" 2009-12-07 13:29:14 +00:00
Jörg Lehrke
d6da8d8980 Fix yearly recurrence issue for version 1.0 2009-12-06 18:04:08 +00:00
Jörg Lehrke
8f0bd9a5dc Fix recurrence UNTIL calculation 2009-12-04 15:38:23 +00:00
Ralf Becker
8a9392c681 fixed problem with blanks in account_id of owner parameter 2009-12-04 10:22:33 +00:00
Ralf Becker
44b15c1775 Category based ACL to limit adding of a certain category or changing the
status of a participant (included moving the event), 
eg. to implement a restricted holiday calendar
*** not yet fully tested ***
2009-12-03 18:24:19 +00:00
Ralf Becker
5066c5c3b7 docu update 2009-12-03 18:20:07 +00:00
Jörg Lehrke
e7ec189ea4 Use ['egw_info']['server']['server_timezone'] to reset server timezone 2009-12-03 08:28:45 +00:00
Jörg Lehrke
dd92e60180 Use UID for find_content(); code cleanups 2009-12-01 10:24:55 +00:00
Stefan Becker
2a1d7079ad delete space, that translations work fine again 2009-11-30 13:53:21 +00:00
Jörg Lehrke
738726abf1 Adjust group attendee handling 2009-11-29 21:03:17 +00:00
Jörg Lehrke
3fa506f24a Change calendar filter 'all' to include 'owner'; typo in get_recurrences() 2009-11-29 21:02:15 +00:00
Jörg Lehrke
a0e1a238dd Optimized SyncML memory footprint; fixes various filter issues 2009-11-29 14:03:45 +00:00
Christian Binder
96c5fc3184 quietened logging 2009-11-27 08:33:10 +00:00
Christian Binder
98575180c5 give calendar owner the CHAIR role if we have ADD ACLs for the owners calendar 2009-11-27 08:04:29 +00:00
Jörg Lehrke
3d93128777 Enforce configured device timezone during import 2009-11-27 06:47:21 +00:00
Jörg Lehrke
43c5373b4d Fix event recur_interval mismatch issue 2009-11-27 06:46:32 +00:00
Jörg Lehrke
0f77f7e802 Fix role handling in get_recurrences() 2009-11-26 20:21:16 +00:00
Jörg Lehrke
6a7b07e3c6 New PARTICIPANT/ORGANIZER schema 2009-11-26 18:36:19 +00:00
Ralf Becker
0e60f6ac29 NOT clear timezone for private events (causes exception in calendar list
view)
2009-11-26 10:27:46 +00:00
Christian Binder
5ce294aa5c calendar GUI classes now use centralized method in categories class to check for category permissions 2009-11-26 08:28:06 +00:00
Ralf Becker
d53b681f21 - reworked referer handling to allow calling from other apps and not
changing back to calendar
- allow to specify custom template for event edit
2009-11-25 20:16:41 +00:00
Christian Binder
8e63887331 respect category permissions in calendar gui, unified var name of categories object 2009-11-25 12:58:09 +00:00
Christian Binder
a7c2b81b85 moved declaration of categories var to bo class 2009-11-25 12:55:59 +00:00
Ralf Becker
9726ed19fc - fixed typo calling not existing check_acl instead of check_acl_invite
- fixed check_acl_invite to work with no acl set too
2009-11-24 13:13:41 +00:00
Christian Binder
ddb0f86257 check if array is present before iterating it 2009-11-23 13:11:18 +00:00
Christian Binder
8ae3b5f833 fixed empty RECURRENCE-ID on ical export 2009-11-23 13:03:35 +00:00
Jörg Lehrke
ed5799b519 Fix SIFE issues 2009-11-22 17:48:51 +00:00
Ralf Becker
71ef04effc added multiple week view to icons 2009-11-22 14:01:48 +00:00
Ralf Becker
55fc673dc5 - new configurable invitation ACL: Require an ACL grant to invite other
users and groups:
  * No: Every user can invite other users and groups (default and old
    behavior)
  * Groups: other users can allways be invited, only groups require an invite_grant
  * Users + groups: inviting both allways requires an invite grant
  One need to keep in mind, that setting an invitation ACL via a group,
  gives each groupmember the right to invite the group / create a group
  event. So the last option propable only works, if users manage
  invitations grants on their own, or admin only sets it in small working
  groups, where every member is allowed to invite the whole group.
  --> calendar backend code removes participants a user is not allowed
      to invite
- new "only groupevents" filter, showing only real groupenvents not
  events of groupmembers (added tooltips to explain filters)
2009-11-19 18:56:04 +00:00
Christian Binder
e76d659cac applied category preserve on import also to SIF classes 2009-11-19 15:30:53 +00:00
Jörg Lehrke
cb9ea723c6 Set VTIMEZONE DTSTART entries properly 2009-11-19 13:30:30 +00:00
Jörg Lehrke
1b20783041 Fix Yearly RRULE Issue with Funambol Outlook Sync Client 2009-11-19 11:52:41 +00:00
Jörg Lehrke
4088b81c5c Impoved support for recurrences if device timezone differs from event timezone 2009-11-19 10:13:17 +00:00
Jörg Lehrke
9e6d97f106 Fix VTZIMEZONE DTSTART Issue 2009-11-19 07:52:42 +00:00
Christian Binder
16538f4f9d use check_perms() on ical export and merge categories on import 2009-11-18 14:46:25 +00:00
Ralf Becker
91e694e79d Calendar UI improvments:
- show status of participants in border style of event
  + solid:  all participants accepted
  + dotted: all participants answered, but not all accepted
  + dashed: not all participants answered
- mark invitations (of current user, not calendar selected)
  + white background color (not category based color)
  + show blue questionmark icon in event header
2009-11-18 13:58:01 +00:00
Jörg Lehrke
86d648a995 Set event['tzid'] for clients using UTC timestamps 2009-11-16 17:28:34 +00:00
Ralf Becker
003420713b "fixed typo" 2009-11-14 09:13:37 +00:00
Ralf Becker
5d1fd4aedb "timezone of events in iCal class depend on $date_format parameter (depending on device type)" 2009-11-13 07:52:06 +00:00
Ralf Becker
d1f233d141 "human readable string representation of rrule:
- added timezone (if different from user timezone)
- moved monthly rule to first argument in brackets"
2009-11-12 19:39:46 +00:00
Ralf Becker
b7c5dd63dc "recalculate recurences, if timezone of a recuring event changes
(it would be nice, if there's a simple method to find out if two different timezones switch at identical times, eg. Europe/Berlin and Europe/Paris do so, so we can avoid the recalculation)"
2009-11-12 19:11:27 +00:00
Jörg Lehrke
db25947a38 Use new rrule iterator class for RRULE generation 2009-11-12 19:08:23 +00:00
Ralf Becker
b307d2a5cf "using new rrule iterator to calculate recurrences
--> still need to implement new monthly last day/week rules in iCal class"
2009-11-12 10:11:23 +00:00
Ralf Becker
e7a6f37af8 "- changed $interval parameter to default to 1, if < 1
- fixed wrong name for recur_enddate"
2009-11-12 09:31:42 +00:00
Jörg Lehrke
014119f075 Add device specific timezone settings 2009-11-11 21:31:33 +00:00
Ralf Becker
a4176448f0 "New recurance rule iterator:
- Implemented two new monthly rrules: last day of month and last weekday (eg. workday) of month
- The constructor accepts times only as DateTime (or decendents like egw_date) to work timezone-correct.
- The timezone of the event is determined by timezone of the startime, other times get converted to that timezone.
- There's a static factory method calendar_rrule::event2rrule(array $event,$usertime=true), which converts an event read by calendar_bo::read() or calendar_bo::search() to a rrule iterator.
- The rrule iterator object can be casted to string, to get a human readable describtion of the rrule.
- There's an interactive test-form, if the class get's called directly: http://localhost/egroupware/calendar/inc/class.calendar_rrule.inc.php
--> next step will be to use the rrule iterator in calendar_bo::insert_all_repetions() to calculate the recurences"
2009-11-11 20:38:16 +00:00
Ralf Becker
5e24cc0c9b "UTC is treated specially: it's implicitly mapped to tz_id=-1 (to be able to store it for events), but calendar_ical creates NO VTIMEZONE component for it." 2009-11-10 20:38:00 +00:00
Ralf Becker
aa90d987c1 "fix: csv export is not always exporting custom fields" 2009-11-10 20:18:35 +00:00
Ralf Becker
9df8b0bdbf new static calendar_timezones::DateTimeZone($tzid) method returning a
DateTimeZone object resolving by PHP not supported Windows timezones
with their standard alias
2009-11-10 20:07:33 +00:00
Ralf Becker
4865854281 Added aliases for Windows timezone to standard TZID's 2009-11-10 19:37:27 +00:00
Ralf Becker
85bf743434 "Using VTIMEZONE component from new calendar_timezones class (imported sqlite DB from Lighting) for exports and importing TZID from iCals.
Horde Code already uses VTIMEZONE component to return times in servertime, no need to change anything there."
2009-11-10 15:08:35 +00:00
Ralf Becker
ddfcdfff06 allow EGroupware users to select only timezones, for which we have a VTIMEZONE component (I think the others are only unofficial aliases, not included in our database) 2009-11-09 09:00:53 +00:00
Ralf Becker
3de5e87288 "properly restoring user enviroment, after notifications send: spezially timezone" 2009-11-07 12:09:12 +00:00
Jörg Lehrke
7198ed861f make code more comprehensible 2009-11-06 15:44:04 +00:00
Christian Binder
1fac8112a9 fixed a very small typo :-) 2009-11-04 21:16:08 +00:00
Ralf Becker
4e9120ecf0 New tz_id column in egw_cal storing id into egw_cal_timezones
Please note: timestamps in egw_cal* tables are in server-time,
tz_id / timezone is only used to (re-)calculate recurrences and to
export in iCals (NOT yet implemented)
2009-11-04 15:00:08 +00:00
Christian Binder
f3a21aec7b make alarm content array really empty if all alarms have been stripped out due to ACL issues - otherwise one empty row will be displayed in form 2009-11-04 09:41:19 +00:00
Ralf Becker
01ecab32bc "fixed typo, thanks to jaytraxx" 2009-11-04 08:06:45 +00:00
Ralf Becker
28518afcbf "quietening diagnostics in search" 2009-11-04 07:57:55 +00:00
Ralf Becker
e9e7ad77b6 "setting tzid from user prefs for new entries" 2009-11-04 07:56:00 +00:00
Jörg Lehrke
bacca46078 Fix Alarm Inport Issues 2009-11-03 16:31:07 +00:00
Ralf Becker
54f32ae08a "fixed sql error after switching on custom fields column" 2009-11-03 16:13:45 +00:00
Ralf Becker
867636861e Added calendar table for timezones:
- timezone data is imported from SQLite DB from Thunderbird Lighting 1.0pre
- contains iCal VTIMEZONE component
- also contains not yet used latitude and longitude for timezone
- methods to convert between TZID string, nummeric tz_id and VTIMEZONE
  iCal component
--> preparation to store timezone information for each events
    (using tz_id as foreing key into egw_cal_timezones table)
2009-10-31 14:47:16 +00:00
Jörg Lehrke
85a9a06a96 Only one VTIMEZONE per VCALENDAR; Export Alarms again 2009-10-30 21:39:19 +00:00
Jörg Lehrke
a87fc26aa7 Fix RRULE issue for vCal 1.0; Fix timestamps with TZ issue 2009-10-29 19:42:32 +00:00
Christian Binder
b2a3bf96a0 improved privacy on conflicting events - only check ACLs for invited participants and not all participant ACLs from conflicting event 2009-10-29 09:25:54 +00:00
Jörg Lehrke
6d3bf02d1c Pseudo recurrence exception handling hacks; vCal 1.0 extensions 2009-10-25 18:22:01 +00:00
Jörg Lehrke
60a7f69b57 Enable pseudo recurrence exception handling hacks 2009-10-25 18:20:58 +00:00
Jörg Lehrke
2eed0b9ddc Fix comment 2009-10-25 18:20:00 +00:00
Christian Binder
e3074ac9dc re-implemented implicit EGW_ACL_PRIVATE grant for group invitations - removed unneeded error logging 2009-10-23 07:51:07 +00:00
Ralf Becker
9850e07dd2 "weekday starts pref contained only monday" 2009-10-22 16:55:09 +00:00
Ralf Becker
7d89d8866d "fixed calendar csv-export:
- was only exporting 15 events (num_rows not forwarded to bo)
- participants contained html for status icon"
2009-10-22 13:41:44 +00:00
Jörg Lehrke
d0028ffc31 Improve readability 2009-10-19 20:50:17 +00:00
Jörg Lehrke
a11565ec9c Fix VTIMEZONE RRULE issue and be more compliant with standard 2009-10-19 20:46:23 +00:00
Ralf Becker
20e655c466 Default and forced preferences for nearly all apps 2009-10-19 17:04:11 +00:00
Ralf Becker
1fa1b92a56 docu update 2009-10-18 12:59:12 +00:00
Ralf Becker
5408924afb All EGroupware apps can now set default and forced preferences on
installation time --> nice user experience and cleaner look (by hiding
exotic prefs by focing them to a usual value):
- settings returned from settings hook can contain values for keys
  'default' or 'forced'
- if settings hook require part of api or application, which are not
  available during installation time: use a method hook (instead of
  an old $app/inc/hook_settings.inc.php file), and check if
  $hook_param['setup'] is true
- default prefs created so far in setup/admin_account.php got removed
- common prefs in preferences_hooks::settings() got reworked to set
  default and forced prefs
- calendar prefs in calendar_hooks::settings() got reworked to set
  default and forced prefs
--> I will rework prefs of all our (default) applications according to a
best practice list of Stylite consultants
2009-10-18 12:57:30 +00:00
Ralf Becker
fe6c8fd226 also add extended (textual) information, if ical is selected for notifications 2009-10-18 12:46:18 +00:00
Ralf Becker
4f69a5d1b0 using references to loop of items in profind and some cleanups 2009-10-16 08:36:28 +00:00
Ralf Becker
ff91aa6223 - fixed setting of roles
- automatically adding owner as chair
2009-10-13 09:00:01 +00:00
Ralf Becker
867f5d650d default params for calendar_so::combine_status(,=1,='REQ-PARTICIPANT') 2009-10-13 08:58:54 +00:00
Ralf Becker
d6cf835680 missing translation of role 2009-10-13 08:58:06 +00:00
Ralf Becker
9d50eb121d disabled debug-message and halfway fixed rules 2009-10-12 21:26:11 +00:00
Ralf Becker
0548cf5770 - added roles to UI
- enabling again resource booking without direct booking permission
  (status is then unknown, not accepted)
2009-10-12 19:16:42 +00:00
Ralf Becker
a3c57c48b3 "fixed typo reported in bug #2302 - Error while imported iCal file (PHP Error)" 2009-10-12 15:44:52 +00:00
Ralf Becker
e3c468361d "stop calendar to update prefs on each request (do it only on change)" 2009-10-12 09:34:56 +00:00
Ralf Becker
4e21b766b9 - reworked old browser class to use have only static methods
--> recogniced it's so old and dusty, it does not make sense any more
--> moved content_header() method to html class
- fixed calls of browser->content_header to use html::content_header
  instead
2009-10-11 11:37:46 +00:00
Jörg Lehrke
6f780041fa Fix VTIMEZONE handling 2009-10-09 18:20:13 +00:00
Ralf Becker
ab9c9d21b6 New egw_time class used to implement correct timezone handling for
calendar, plus a first calendar implemenation.

This implementation just replaces following calendar_bo methods:
- date2ts($date,$user2server=False)
- date2array($date,$server2user=False)
- date2string($date,$server2user=False,$format='Ymd')
- format_date($date,$format='')
which static methods from egw_time.

If your server is in same timezone as the user, you should experience no
difference. As a small test, you can switch to an other timezone (eg.
UTC) to recognice on a weekly repeating event (which still repeats on
equal server time!) that it moves by one hour when daylight saving
changes. This switching to a TZ with different daylight saving rules,
was not working before.

Happy testing :-)
2009-10-07 13:29:06 +00:00
Jörg Lehrke
6312a087e3 Fix participants() deleted attendee issue, again 2009-10-07 04:23:42 +00:00
Jörg Lehrke
7f07102630 Fix participants() deleted attendee issue 2009-10-06 23:30:05 +00:00
Christian Binder
49de506d6f also export servertime if event has no recur_enddate - it could be a weekly or monthly recurring event 2009-10-06 14:29:46 +00:00
Christian Binder
68dc2e4f47 also set date_format if servertime gets set - just for the case that it is used later 2009-10-06 13:20:41 +00:00
Christian Binder
14d4f08b36 added missing param date_format 2009-10-06 12:41:08 +00:00
Jörg Lehrke
1353ae511a Adds TZID/VTIMEZONE support for server timezone entries 2009-10-05 21:00:08 +00:00
Ralf Becker
04d48a677a Implemented display of custom fields in list-view
ToDo: implement search, sort and filtering by them
2009-10-03 07:32:05 +00:00