Commit Graph

233 Commits

Author SHA1 Message Date
Ralf Becker
0fdd106cc2 * CalDAV: remove "bind" privilege (create new events right) on other users or groups calendar, if invite requires special ACL grant, which current user does NOT have 2013-01-24 12:54:08 +00:00
Nathan Gray
a816708e67 Fix deleting of entries 'Only admins can purge deleted items' 2013-01-22 15:54:23 +00:00
Ralf Becker
d6ce940eb0 * Calendar: sort participants by there name 2012-11-13 11:23:29 +00:00
Ralf Becker
f5a1cd5ded * Calendar: passing links to timesheet, when creating a timesheet on an event 2012-10-08 14:53:51 +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
9c8f7fe1ea * CalDAV: fixed broken URL of private events in shared calendar user has no right to view 2012-09-27 09:02:43 +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
b3ef030984 fixed broken schdule-tag after consolidated modified commit yesterday 2012-09-26 11:09:28 +00:00
Ralf Becker
7bf5b90739 * Calendar/CalDAV/eSync: tracking participant status changes now in modified date and user of calendar entry (main table), fixes sometimes not synced status changes and simplifies code a lot 2012-09-25 11:54:41 +00:00
Ralf Becker
cff9872f17 cast accounts->members(hips) to array, to cope without PHP warnings for not (longer) existing accounts 2012-08-09 08:41:29 +00:00
Klaus Leithoff
3aa89e8bbc fix for filling up the error_log in certain conditions on activesync on an non-existent event (with of course no participants). clear_private_infos created an eventarray on those, thus subsequent errors occured and had to be handeled in ExportChangesDiff::Synchronize 2012-07-25 08:07:10 +00:00
Ralf Becker
cda03331e2 * Calendar: order search for events to link with by startdate descending 2012-05-22 17:08:00 +00:00
Ralf Becker
5d7c91a66e translating status-label now when the get used, to allow calendar_boupdate::_get_event_details() use language of to notify user 2012-05-15 13:23:11 +00:00
Ralf Becker
c4b76cf4e3 * Calendar: fixed not savable config "Prevent deleting of entries" as "Yes, users can purge their deleted items"
renamed from "user_purge" to "userpurge" (without underscore) as config can not handle situation when name and value contains underscores
2012-05-15 10:35:40 +00:00
Ralf Becker
5f284abfdc * Calendar: iCal import via mime-registry (clicking on iCal file in filemanager) displayed event in server- instead of user-time 2012-03-22 14:02:06 +00:00
Ralf Becker
21c49b0b26 * Calendar/CalDAV/eSync: fixed etag generation to NOT query maximum user-modification date for each entry, fixed etag and ctag for eSync to only use recurance master, as ActiveSync event does not contain extra participant data for exceptions (virtual and real) 2012-03-12 08:20:36 +00:00
Ralf Becker
cf1eee2818 max_user_modified for recurring events has to include all recurrences, otherwise we get a "412 Precondition Failed" in CalDAV, as it is part of the ETag 2011-11-09 17:53:42 +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
3d66a8d948 return app, so it can be used in CalDAV to generate urn:uuid 2011-10-17 15:44:26 +00:00
Klaus Leithoff
d52c72207c * calendar/importexport/addressbook: calendar introduce new config option to set app specific export_limit; calendar csv export: use enumerate for exporting events as csv; bo_merge: introduce new helper functions to get and check export-limit; addressbook: use new helper functions 2011-09-13 09:05:33 +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
8996f45e9e * Calendar: not using freebusy rights for searching calendar, as it would allow to probe for event contents
- optimised private event filter for searching to not query private grants (again) from database
2011-08-16 10:20:40 +00:00
Ralf Becker
d79a1740be * Calendar: fixed not working accept/reject of invitations, if participant is in a group with only a freebusy grant
- previouse prevented that, thought we dont know why it was implemented that way
2011-06-26 15:46:30 +00:00
Ralf Becker
be76b42634 file_access_user implementation for calendar 2011-06-26 15:41:21 +00:00
Ralf Becker
5dc47a9044 * Calendar: warning if user tries to move horizont further then default 1000 days and NOT start moving horizont, to allow adding events after the horizont 2011-06-14 18:33:26 +00:00
Ralf Becker
486e99ec0c - Implemented a hook for timesheet_ui::edit to query calling apps for additional information to set in new tickets incl. links.
Replaces existing $_GET parameters, which are hard to set for new action system.
- also adding category color to infolog and tracker
2011-05-30 14:21:27 +00:00
Ralf Becker
145cf9ce68 New method to display meeting-requests for fmail and allow to (tentativ) accept or reject them 2011-05-27 20:32:46 +00:00
Ralf Becker
df5ec0ae72 small docu update 2011-05-26 16:50:57 +00:00
Ralf Becker
c15ba47b5f * Calendar/CalDAV: fixed SQL error on ctag generation, if no ACL rights for requested group calendar exists 2011-05-23 14:43:47 +00:00
Ralf Becker
4e13824fc5 patch #2953: limit calculation of exceptions in recuring event to horizont 2011-05-03 17:33:50 +00:00
Ralf Becker
f3402daf91 fixed not included participants which are email addresses or contacts in AS 2011-04-28 17:55:44 +00:00
Ralf Becker
0a04c20764 do NOT allow users to purge deleted events, if we dont have 'user_purge' enabled 2011-04-27 16:28:38 +00:00
Ralf Becker
da95032505 fixed some problems with r34529: move all filtering into SQL query
- group-calendar empty
- owner-too filter fixed
- events with multiple users with differnt status and group invitation fixed
2011-04-09 14:41:15 +00:00
Ralf Becker
2de73d86a5 fixed not working creation of new series, calendar_bo::read() always returned some event, even if no id given 2011-04-08 14:20:01 +00:00
Ralf Becker
0bfd238e3f * CalDAV: store name part of URL from client PUT request, to fully comply with CalDAV spec 2011-04-06 19:26:10 +00:00
Ralf Becker
bef80c1f7f improved performance of ctag generation (using only a single and quick DB query, compared to multiple queries plus one for each recurring event 2011-04-06 12:46:21 +00:00
Ralf Becker
66c61cb74e - move all filtering into SQL query in calendar_so, to be able to correctly return N rows starting from row M
- re-enabling propfind iterator again for calendar (fetching events in chunks of 500), to lower memory footprint
Please note: changed SQL queries used for CalDAV do not take changed participants (or status) in exceptions into account
2011-04-05 15:32:20 +00:00
Ralf Becker
2a9198eb86 throw an exception, if calendar_bo::resource_info($uid) is called with a non-scalar parameter 2011-03-28 12:04:34 +00:00
Ralf Becker
bd6889657e fixed etag for series not containing etag's of exceptions 2011-03-24 22:18:30 +00:00
Ralf Becker
4101c181d4 fixed doublicat groups, because they were in grants and memberships 2011-03-24 17:19:31 +00:00
Ralf Becker
ad287e8664 calendar_bo::list_cals() returns now array no longer indexed by account names, as this overwrites identical account names with the last one
also do NOT return no longer existing account, which are eg. still included in acl
2011-03-24 09:26:39 +00:00
Ralf Becker
26a55d8c01 removed not possible condition (private events are NOT returned by calendar_so::serach() for filter "showonlypublic", so no need to deal with them here 2011-03-23 08:12:29 +00:00
Nathan Gray
8d81db64af Fix hideprivate / showonlypublic filters 2011-03-22 16:03:35 +00:00
Nathan Gray
b2bea332b1 Do private filtering on DB level 2011-02-28 23:43:34 +00:00
Nathan Gray
50543c0115 Don't show private events in search results, even if user has freebusy permission 2011-02-17 20:39:10 +00:00
Ralf Becker
1e296760d9 fixed not working ctag calculation in trunk, plus docu and logging 2011-02-16 14:21:59 +00:00
Ralf Becker
20db16219d * Calendar: invite rights, should NOT implicate a freebusy rights (users with invite rights could see freebusy times of other users) 2011-01-04 19:27:17 +00:00
Ralf Becker
c65705aac4 - started implementing virtual exceptions for AS (currently commented out in line 176, as not yet tested)
- ChangeMessage now searched contacts for participants and always re-adds resources (everything but accounts, contacts and email)
- some more timezone specific fixes
>>> none of the above is tested, as my iPhone charges no more and battery is now flat :-(
2010-12-21 02:45:40 +00:00
Ralf Becker
904471d3d3 fixed typo 2010-12-18 23:58:11 +00:00
Ralf Becker
f9163f2747 typo 2010-12-17 03:40:55 +00:00
Klaus Leithoff
0cd5658ca1 * calendar: make configurable the number of users, until day- or weekview are consolidated; 5 is set as default 2010-12-10 11:03:35 +00:00
Klaus Leithoff
8a293796e1 fix for postgres 2010-12-07 11:34:18 +00:00
Ralf Becker
8f3d6954e5 search extra account repository for birthdays too 2010-12-06 18:40:08 +00:00
Ralf Becker
0e4217f37f * fixed birthday of contacts/accounts in LDAP could not be modified in addressbook 2010-12-06 18:25:35 +00:00
Ralf Becker
a7ea17d896 fixed fatal error, after move of get_ctag to calendar_bo 2010-12-03 13:22:08 +00:00
Ralf Becker
9981730b29 moved ctag to calendar_bo, to use it in CalDAV and ActiveSync, thought it needs to be reworked, as it is to expensive performance-wise 2010-12-02 22:27:32 +00:00
Ralf Becker
96d44948f7 missing 5. parameter 2010-12-02 22:11:05 +00:00
Ralf Becker
83fd244b5c new parameter $clear_private_infos_users to read using EGW_ACL_FREEBUSY instead of EGW_ACL_READ (eg. private appointments) and clear private infos, if no read rights 2010-12-02 21:50:22 +00:00
Ralf Becker
fafa84e5c7 changed debug_message to use error_log and not echo messages (stalls *DAV or ActiveSync) 2010-11-28 11:01:44 +00:00
Ralf Becker
07e09c71d8 move etag to calendar_bo 2010-11-26 21:32:10 +00:00
Ralf Becker
9dfe1a55f4 convert all timestamps from DB returned as string to integers, to avoid missinterpretation from egw_time as Ymd string 2010-11-04 13:30:11 +00:00
Ralf Becker
ca4f237dc4 fixed http status "400 Something went wrong" on PUT request in CalDAV, if user has no explicit FREEBUSY rights for calendar of modified event 2010-10-21 15:30:20 +00:00
Ralf Becker
ddcc0e1f75 removed never implemented cats_no_subs common pref and always include sub-cats (no change as currently only one was selectable) 2010-10-14 16:16:02 +00:00
Jörg Lehrke
33bd0fed50 Announce all available addressbooks and calendars of the current user with GroupDAV 2010-10-09 22:49:10 +00:00
Klaus Leithoff
a5342d2eb1 calendar: handle catchable fatal error while trying to build rule 2010-10-04 10:07:52 +00:00
Klaus Leithoff
b976930423 preventing invalid birthdays stored with the datastore such as 0000-00-00 or 0.0.00 to transform to a birthday 2010-09-30 09:32:34 +00:00
Klaus Leithoff
5c8d3301d6 postgres compatibility gathering of birthdays for homearea (calendar merge of birtdays into holidays) order by column must be part of distinct selection list; adapting calendar home view to meet expected date format by using egw_time::to 2010-09-17 13:51:12 +00:00
Ralf Becker
c5f77ca982 new param $sql_filter for search() 2010-09-10 19:12:59 +00:00
Ralf Becker
8241be4091 storing deleted timestamp instead of a deleted flag, to allow to use calendar table instead of egw_api_content_history later on 2010-09-09 09:11:57 +00:00
Nathan Gray
49471c5e2b Change link title so it can give the date for a particular recurrence, if the passed id is in the form CAL_ID-RECUR_DATE 2010-09-03 18:04:48 +00:00
Jörg Lehrke
c5ae8dd8e2 Support Free/Busy information with credentials as part of the URL 2010-06-26 11:35:11 +00:00
Jörg Lehrke
015245d235 Improved alarm handling 2010-06-07 17:54:29 +00:00
Jörg Lehrke
f1343bfde0 Fix EGW_ACL_FREEBUSY issue 2010-05-21 15:53:06 +00:00
Ralf Becker
06854c6301 replaced several calendar_so::search() parameter with new array $params parameter and added new $params[users] with raw users as passed to calendar_bo::search() (without members and memberships added) for calendar integration 2010-05-20 15:12:59 +00:00
Jörg Lehrke
32678401e8 Fix calendar_bo::search() issue with events outside the search window (bug#8090) 2010-05-18 15:12:51 +00:00
Jörg Lehrke
d2c03cd287 Fix CalDAV PUT failure 2010-05-18 10:03:21 +00:00
Jörg Lehrke
7ab47224c9 Fix calendar_bo::search() returning all-day events one day later (bug#2602) 2010-05-17 15:40:06 +00:00
Jörg Lehrke
362afdb312 Fix GroupDAV private event issue 2010-05-14 08:35:16 +00:00
Jörg Lehrke
91cfd18e16 Fix all-day event recurrence issue 2010-05-06 19:16:43 +00:00
Nathan Gray
a2eab86ef8 Use pre-existing function to handle deleted flag 2010-05-04 21:35:06 +00:00
Nathan Gray
5bea81f18f Handle if event deleted flag gets turned into a string (Postgres) 2010-05-04 15:47:53 +00:00
Jörg Lehrke
ec48d32681 Calendar recurrence horizont configurable; fix recur_enddate issue 2010-05-03 16:43:42 +00:00
Jörg Lehrke
d22a9aa537 Fix all-day recurring event timezone issue 2010-05-01 16:25:10 +00:00
Jörg Lehrke
22bb23b8ff Fix new all-day event handling 2010-04-23 13:52:45 +00:00
Jörg Lehrke
ee18b0acac New all-day event implementation 2010-04-23 06:15:18 +00:00
Ralf Becker
9e8a74b92e "fixed not working caching to avoid multiple reads of same event from database
(condition !$date stoped caching for all non-repeating events)"
2010-04-14 08:49:49 +00:00
Christian Binder
8211aef3ff fixed wrong series event end times for whole day events when events occur or span over a daylight saving date, fixed typos 2010-02-25 17:05:24 +00:00
Jörg Lehrke
08dbf52b66 Fix typos and code cleanup 2010-02-22 10:02:33 +00:00
Jörg Lehrke
ce7324f12f Fix daywise search 2010-02-19 17:10:15 +00:00
Jörg Lehrke
21ccdd5f28 Fix various synchronization issues (SyncML & CalDAV) 2010-02-17 13:29:28 +00:00
Klaus Leithoff
ed7f3a764e Free/Busy handling for groups and recources; Groups: if a group allows only free/busy to its users, then participation does not mean a lot. Resources: if grant is free/busy only explicit recources rights are not to be regarded 2010-02-10 12:31:34 +00:00
Hans-Jürgen Tappe
b712cc0480 $ts += DAY_s in a 'for' loop does not work for daylight savings in week view
because the day is longer than DAY_s: Fullday events will be added twice.
2010-02-07 14:37:27 +00:00
Jörg Lehrke
75746226a4 Use egw_time for InfoLog, tracking backend and Tracker 2010-02-04 12:08:03 +00:00
Ralf Becker
25c29211f5 adapting for changed categories class 2010-01-30 23:54:08 +00:00
Jörg Lehrke
32639bd47e Major SyncML Calendar update
- SIFE support improved
  - various vCalendar 1.0 issues fixed
  - device specific timezone support for recurring events
  - pseudo exception handling improvements
2010-01-29 21:42:54 +00:00
Ralf Becker
890125cab5 A few more change for the new integration interface, probably not the
last ...
2010-01-21 23:36:05 +00:00
Christian Binder
5c29be0ed1 read event start and end times if not given from the caller to avoid broken recurrences 2010-01-15 08:44:21 +00:00
Nathan Gray
ac14a5a1fd Implement options so link_query() can be limited 2009-12-08 22:36:43 +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
5066c5c3b7 docu update 2009-12-03 18:20:07 +00:00
Jörg Lehrke
dd92e60180 Use UID for find_content(); code cleanups 2009-12-01 10:24:55 +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
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
a7c2b81b85 moved declaration of categories var to bo class 2009-11-25 12:55:59 +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
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
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
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
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
d6cf835680 missing translation of role 2009-10-13 08:58:06 +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
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
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
Ralf Becker
c38acb88d5 New filter for calendar based on participant status:
- Not rejected
- Accepted
- Invitations
- Tentative
- Rejected
- Owner too: display also events you own, not only ones you participate
- All incl. rejected
- Hide private infos: as usual
--> filter is stored in the user prefs (survives logouts)
--> old "show events you rejected" preference got removed
Also added a hook allowing applications supplying resources to modify
calendar search with SQL.
2009-09-29 19:58:51 +00:00
Christian Binder
77de24e563 manually insert or truncate the recurrences when changing enddate. recurrences rebuild (and stati reset) is now minimized to the following cases: move startdate/enddate, change recur_type, change recur_interval 2009-08-10 09:24:39 +00:00
Ralf Becker
bb5511cc9f - methods to combine and split status, quantity and role
- $ignore_acl parameter for calendar_boupdate::delete()
- removed setting owner always as participant: owner is allowed to
  remove himself as participant from an event
  (owner only get's set, if there are no other participants in BO)
2009-08-06 11:29:05 +00:00
Ralf Becker
c29ab01e8d - added ability to store participant roles to calendar backend,
currently not settable via GUI, but GUI leaves them untouched
- showing quantity for resources in brackets behind resource name
- docu and formatting updates all over the place
2009-08-04 17:14:16 +00:00
Ralf Becker
560f18bacd - added new colums cal_creator, cal_created for easier deleting of
doublicates from failed sync
- added cal_recurrences timestamp for exceptions (ts of original
  recurrence), for existing exceptions update script uses
  the closest recur_exception date/time for it
- using uid of original series for new recurrence exceptions,
  update script does NOT update the uid's of existing exceptions
- displaying (maybe temporary) these data in the recurrence tab
2009-07-23 16:14:22 +00:00
Ralf Becker
cb0fc5db82 - merged SyncML-1.2 branch with trunk:
svn merge -r 26935:HEAD ^/branches/SyncML-1.2/calendar .
- with the exception of class.calendar_uiforms.inc.php,
  as it was not updated with the latest changes from trunk
  and I'm not sure about the changes
--> needs further discussion, sorry :-(
svn revert inc/class.calendar_uiforms.inc.php
2009-07-15 20:35:56 +00:00
Ralf Becker
8f4960f9b4 "fixed messed up indention" 2009-07-08 10:29:06 +00:00
Ralf Becker
1e58b525d1 "fixed messed up indention" 2009-07-08 10:22:11 +00:00
Stefan Becker
78ce775f17 freebussy ACL added into calender. Now if you only give that right, you will see, that the time is blocked without a read right of user or group. But will see everything as private 2009-06-09 12:16:15 +00:00
Ralf Becker
272817b1c7 "added cols and append parameter from calendar_so::search to calendar_bo::search too" 2009-05-04 22:52:48 +00:00
Ralf Becker
2845873bae - docu update
- 2 new (optional) parameters for calendar_so::search()
2009-05-04 22:39:27 +00:00
Ralf Becker
f5015cf6e8 "fixed wrong class-name for $this->so" 2009-03-20 07:55:22 +00:00
Klaus Leithoff
632003f9fe buffer and provide debug on missing participants to an event 2008-12-11 13:44:47 +00:00
Ralf Becker
6ae2813e65 patch #1624 from Regis Leroy: check resource availablity on search and config to deny resource reservation on private events, plus German translation 2008-10-10 10:24:31 +00:00
Ralf Becker
9fd543d8c6 file_access hook for attachments 2008-10-07 09:03:01 +00:00
Ralf Becker
57293bca75 "fixed wrong display of email-type participants (caused by class rename)" 2008-07-29 05:13:45 +00:00
Ralf Becker
56c4f47c30 wrong weekdays after autoloading of so class (happens after using the constants) 2008-06-12 07:03:06 +00:00
Ralf Becker
ef700b0061 new class naming schema 2008-06-07 17:45:33 +00:00