mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-29 17:29:11 +01:00
* Calendar: deny creating of recurring events, if duration of a single recurrence is longer then the recurrence interval
This commit is contained in:
parent
f8a007bad4
commit
7d5c44ac61
@ -311,6 +311,36 @@ class calendar_rrule implements Iterator
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get recurrence interval duration in seconds
|
||||
*
|
||||
* @param int $type self::(DAILY|WEEKLY|MONTHLY_(M|W)DAY|YEARLY)
|
||||
* @param int $interval=1
|
||||
* @return int
|
||||
*/
|
||||
public static function recurrence_interval($type, $interval=1)
|
||||
{
|
||||
switch($type)
|
||||
{
|
||||
case self::DAILY:
|
||||
$duration = 24*3600;
|
||||
break;
|
||||
case self::WEEKLY:
|
||||
$duration = 7*24*3600;
|
||||
break;
|
||||
case self::MONTHLY_MDAY:
|
||||
case self::MONTHLY_WDAY:
|
||||
$duration = 31*24*3600;
|
||||
break;
|
||||
case self::YEARLY:
|
||||
$duration = 366*24*3600;
|
||||
break;
|
||||
}
|
||||
if ($interval > 1) $duration *= $interval;
|
||||
|
||||
return $duration;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of days in month of given date
|
||||
*
|
||||
|
@ -537,6 +537,12 @@ class calendar_uiforms extends calendar_ui
|
||||
$button = '';
|
||||
break;
|
||||
}
|
||||
if ($event['recur_type'] != MCAL_RECUR_NONE && $event['end']-$event['start'] > calendar_rrule::recurrence_interval($event['recur_type'], $event['recur_interval']))
|
||||
{
|
||||
$msg = lang('Error: Duration of event longer then recurrence interval!');
|
||||
$button = '';
|
||||
break;
|
||||
}
|
||||
if (!$event['participants'])
|
||||
{
|
||||
$msg = lang('Error: no participants selected !!!');
|
||||
|
@ -167,6 +167,7 @@ enddate of the export calendar de Enddatum des Exports
|
||||
ends calendar de endet
|
||||
error adding the alarm calendar de Fehler beim Zufügen des Alarms
|
||||
error: can't delete original series! calendar de Fehler beim Löschen der bestehenden Serie
|
||||
error: duration of event longer then recurrence interval! calendar de Fehler: Termindauer ist länger als das Intervall der Wiederholung!
|
||||
error: importing the ical calendar de Fehler beim Importieren des iCal
|
||||
error: no participants selected !!! calendar de Fehler: Keine Teilnehmer ausgewählt !!!
|
||||
error: ressources reservation in private events is not allowed!!! calendar de Fehler: Die Reservierung von Ressourcen für private Termine ist nicht erlaubt !!!
|
||||
|
@ -167,6 +167,7 @@ enddate of the export calendar en End date of the export
|
||||
ends calendar en Ends
|
||||
error adding the alarm calendar en Error adding the alarm
|
||||
error: can't delete original series! calendar en Error: Can't delete original series!
|
||||
error: duration of event longer then recurrence interval! calendar en Error: Duration of event longer then recurrence interval!
|
||||
error: importing the ical calendar en Error: importing the iCal!
|
||||
error: no participants selected !!! calendar en Error: no participants selected!
|
||||
error: ressources reservation in private events is not allowed!!! calendar en Error: Resources reservation in private events is not allowed!
|
||||
|
Loading…
Reference in New Issue
Block a user