forked from extern/egroupware
fix for reset_stati on Drag and Drop; Work by Chr.Fueller, leithoff
This commit is contained in:
parent
48ba641cb3
commit
e2dab5d56b
@ -44,11 +44,30 @@ class calendar_ajax {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$event=$this->calendar->read($eventId);
|
$old_event=$event=$this->calendar->read($eventId);
|
||||||
$duration=$event['end']-$event['start'];
|
$duration=$event['end']-$event['start'];
|
||||||
|
|
||||||
$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;
|
||||||
|
switch ($this->calendar->cal_prefs['reset_stati'])
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
//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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$conflicts=$this->calendar->update($event);
|
$conflicts=$this->calendar->update($event);
|
||||||
|
|
||||||
@ -69,6 +88,18 @@ class calendar_ajax {
|
|||||||
.'&cancel_needs_refresh=true',
|
.'&cancel_needs_refresh=true',
|
||||||
'',750,410);
|
'',750,410);
|
||||||
}
|
}
|
||||||
|
if ($status_reset_to_unknown)
|
||||||
|
{
|
||||||
|
foreach((array)$event['participants'] as $uid => $status)
|
||||||
|
{
|
||||||
|
if ($uid[0] != 'c' && $uid[0] != 'e' && $uid != $this->calendar->user)
|
||||||
|
{
|
||||||
|
calendar_so::split_status($status,$q,$r);
|
||||||
|
$status = calendar_so::combine_status('U',$q,$r);
|
||||||
|
$this->calendar->set_status($event['id'], $uid, $status, 0, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $response->getXML();
|
return $response->getXML();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user