mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-10-05 17:52:03 +02:00
* Calendar: Use participant's preferences to handle status resets while moving events
This commit is contained in:
parent
8b5ff32c53
commit
fbbef0c68c
@ -50,21 +50,24 @@ class calendar_ajax {
|
|||||||
$event['start'] = $this->calendar->date2ts($targetDateTime);
|
$event['start'] = $this->calendar->date2ts($targetDateTime);
|
||||||
$event['end'] = $event['start']+$duration;
|
$event['end'] = $event['start']+$duration;
|
||||||
$status_reset_to_unknown = false;
|
$status_reset_to_unknown = false;
|
||||||
switch ($this->calendar->cal_prefs['reset_stati'])
|
$sameday = (date('Ymd', $old_event['start']) == date('Ymd', $event['start']));
|
||||||
|
foreach((array)$event['participants'] as $uid => $status)
|
||||||
|
{
|
||||||
|
calendar_so::split_status($status,$q,$r);
|
||||||
|
if ($uid[0] != 'c' && $uid[0] != 'e' && $uid != $this->calendar->user && $status != 'U')
|
||||||
|
{
|
||||||
|
$preferences = CreateObject('phpgwapi.preferences',$uid);
|
||||||
|
$part_prefs = $preferences->read_repository();
|
||||||
|
switch ($part_prefs['calendar']['reset_stati'])
|
||||||
{
|
{
|
||||||
case 'no':
|
case 'no':
|
||||||
break;
|
break;
|
||||||
case 'startday':
|
case 'startday':
|
||||||
if (date('Ymd', $old_event['start']) == date('Ymd', $event['start'])) break;
|
if ($sameday) break;
|
||||||
default:
|
default:
|
||||||
$status_reset_to_unknown = true;
|
$status_reset_to_unknown = true;
|
||||||
foreach((array)$event['participants'] as $uid => $status)
|
|
||||||
{
|
|
||||||
//error_log("participant {$GLOBALS['egw']->accounts->id2name($uid)} ($status)");
|
|
||||||
calendar_so::split_status($status,$q,$r);
|
|
||||||
if ($uid[0] != 'c' && $uid[0] != 'e' && $uid != $this->calendar->user && $status != 'U')
|
|
||||||
{
|
|
||||||
$event['participants'][$uid] = calendar_so::combine_status('U',$q,$r);
|
$event['participants'][$uid] = calendar_so::combine_status('U',$q,$r);
|
||||||
|
// todo: report reset status to user
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -641,19 +641,22 @@ class calendar_uiforms extends calendar_ui
|
|||||||
$old_event['end'] != $event['end'] ||
|
$old_event['end'] != $event['end'] ||
|
||||||
$event['whole_day'] != $old_event['whole_day'])
|
$event['whole_day'] != $old_event['whole_day'])
|
||||||
{
|
{
|
||||||
switch ($this->bo->cal_prefs['reset_stati'])
|
$sameday = (date('Ymd', $old_event['start']) == date('Ymd', $event['start']));
|
||||||
{
|
|
||||||
case 'no':
|
|
||||||
break;
|
|
||||||
case 'startday':
|
|
||||||
if (date('Ymd', $old_event['start']) == date('Ymd', $event['start'])) break;
|
|
||||||
default:
|
|
||||||
$status_reset_to_unknown = true;
|
|
||||||
foreach((array)$event['participants'] as $uid => $status)
|
foreach((array)$event['participants'] as $uid => $status)
|
||||||
{
|
{
|
||||||
calendar_so::split_status($status,$q,$r);
|
calendar_so::split_status($status,$q,$r);
|
||||||
if ($uid[0] != 'c' && $uid[0] != 'e' && $uid != $this->bo->user && $status != 'U')
|
if ($uid[0] != 'c' && $uid[0] != 'e' && $uid != $this->bo->user && $status != 'U')
|
||||||
{
|
{
|
||||||
|
$preferences = CreateObject('phpgwapi.preferences',$uid);
|
||||||
|
$part_prefs = $preferences->read_repository();
|
||||||
|
switch ($part_prefs['calendar']['reset_stati'])
|
||||||
|
{
|
||||||
|
case 'no':
|
||||||
|
break;
|
||||||
|
case 'startday':
|
||||||
|
if ($sameday) break;
|
||||||
|
default:
|
||||||
|
$status_reset_to_unknown = true;
|
||||||
$event['participants'][$uid] = calendar_so::combine_status('U',$q,$r);
|
$event['participants'][$uid] = calendar_so::combine_status('U',$q,$r);
|
||||||
// todo: report reset status to user
|
// todo: report reset status to user
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user