Improve series event exception handling

This commit is contained in:
Jörg Lehrke 2010-05-21 17:30:11 +00:00
parent 2c1e4b28ce
commit 4dd5efd3d6
2 changed files with 56 additions and 4 deletions

View File

@ -187,6 +187,17 @@ class calendar_uiforms extends calendar_ui
unset($content['recur_exception']['delete_exception']); unset($content['recur_exception']['delete_exception']);
if (($key = array_search($date,$content['recur_exception'])) !== false) if (($key = array_search($date,$content['recur_exception'])) !== false)
{ {
// propagate the exception to a single event
$recur_exceptions = $this->bo->so->get_related($content['uid']);
foreach ($recur_exceptions as $id)
{
if (!($exception = $this->bo->read($id)) ||
$exception['recurrence'] != $content['recur_exception'][$key]) continue;
$exception['uid'] = common::generate_uid('calendar', $id);
$exception['reference'] = $exception['recurrence'] = 0;
$this->bo->update($exception, true);
break;
}
unset($content['recur_exception'][$key]); unset($content['recur_exception'][$key]);
$content['recur_exception'] = array_values($content['recur_exception']); $content['recur_exception'] = array_values($content['recur_exception']);
} }
@ -591,14 +602,35 @@ class calendar_uiforms extends calendar_ui
{ {
if ($content['reference'] == 0 && !$content['edit_single']) if ($content['reference'] == 0 && !$content['edit_single'])
{ {
// We delete a whole series $msg = lang('Series deleted');
$delete_exceptions = false;
$exceptions_kept = false;
// Handle the exceptions
$recur_exceptions = $this->bo->so->get_related($event['uid']); $recur_exceptions = $this->bo->so->get_related($event['uid']);
foreach ($recur_exceptions as $id) foreach ($recur_exceptions as $id)
{
if ($delete_exceptions)
{ {
$this->bo->delete($id); $this->bo->delete($id);
} }
else
{
if (!($exception = $this->bo->read($id))) continue;
$exception['uid'] = common::generate_uid('calendar', $id);
$exception['reference'] = $exception['recurrence'] = 0;
$this->bo->update($exception, true);
$exceptions_kept = true;
} }
}
if ($exceptions_kept)
{
$msg .= lang(', exceptions preserved');
}
}
else
{
$msg = lang('Event deleted'); $msg = lang('Event deleted');
}
$js = 'opener.location.href=\''.addslashes(egw::link($referer,array( $js = 'opener.location.href=\''.addslashes(egw::link($referer,array(
'msg' => $msg, 'msg' => $msg,
))).'\';'; ))).'\';';

View File

@ -3,6 +3,8 @@
%1 records imported calendar de %1 Datensätze importiert %1 records imported calendar de %1 Datensätze importiert
%1 records read (not yet imported, you may go back and uncheck test import) calendar de %1 Datensätze gelesen (noch nicht importiert, Sie können zurück gehen und Test Import ausschalten) %1 records read (not yet imported, you may go back and uncheck test import) calendar de %1 Datensätze gelesen (noch nicht importiert, Sie können zurück gehen und Test Import ausschalten)
%1 weeks calendar de %1 Wochen %1 weeks calendar de %1 Wochen
(%1 events in %2 seconds) calendar de (%1 Termine in %2 Sekunden)
, exceptions preserved calendar de _und Ausnahmen erhalten
<b>please note</b>: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.<br />holidays are %3 automatic installed from %4. you can changed it in %5. calendar de <b>Bitte beachten</b>: Der Kalender verwendet die Feiertages des Landes, welches auf %1 eingestellt ist. Das können Sie in Ihren %2 ändern.<br />Feiertage werden %3 automatisch von %4 installiert, was in %5 änderbar ist. <b>please note</b>: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.<br />holidays are %3 automatic installed from %4. you can changed it in %5. calendar de <b>Bitte beachten</b>: Der Kalender verwendet die Feiertages des Landes, welches auf %1 eingestellt ist. Das können Sie in Ihren %2 ändern.<br />Feiertage werden %3 automatisch von %4 installiert, was in %5 änderbar ist.
a non blocking event will not conflict with other events calendar de Ein nicht blockierender Termin ergibt keine Konflikt mit anderen Terminen a non blocking event will not conflict with other events calendar de Ein nicht blockierender Termin ergibt keine Konflikt mit anderen Terminen
accept or reject an invitation calendar de Einladung zu- oder absagen accept or reject an invitation calendar de Einladung zu- oder absagen
@ -41,6 +43,8 @@ birthday calendar de Geburtstag
birthdays admin de Geburtstage birthdays admin de Geburtstage
busy calendar de belegt busy calendar de belegt
by calendar de von by calendar de von
calendar - list calendar de Kalender - Listenansicht
calendar - multi-weekly calendar de Kalender - Mehrwochenansicht
calendar csv export calendar de Kalender CSV Export calendar csv export calendar de Kalender CSV Export
calendar event calendar de Kalender Aktualisierung calendar event calendar de Kalender Aktualisierung
calendar holiday management admin de Feiertage verwalten calendar holiday management admin de Feiertage verwalten
@ -58,6 +62,7 @@ chair calendar de Vorsitz
change history calendar de Änderungshistorie change history calendar de Änderungshistorie
charset of file calendar de Zeichensatz der Datei charset of file calendar de Zeichensatz der Datei
check all calendar de Alle auswählen check all calendar de Alle auswählen
choose a category calendar de Wählen Sie ein Kategorie!
close the window calendar de Schließt das Fenster close the window calendar de Schließt das Fenster
compose a mail to all participants after the event is saved calendar de Schreibe eine E-Mail an alle Teilnehmer, nachdem der Termin gespeichert wurde. compose a mail to all participants after the event is saved calendar de Schreibe eine E-Mail an alle Teilnehmer, nachdem der Termin gespeichert wurde.
conflict calendar de Konflikt conflict calendar de Konflikt
@ -87,6 +92,7 @@ default length of newly created events. the length is in minutes, eg. 60 for 1 h
default type of resources application selected in the calendar particpants research form. calendar de Vorgabe für die gewählte Anwendung bei der Ressourcensuche im Kartenreiter Teilnehmer default type of resources application selected in the calendar particpants research form. calendar de Vorgabe für die gewählte Anwendung bei der Ressourcensuche im Kartenreiter Teilnehmer
default type of resources selection calendar de Vorgabe für die Ressourcensuche default type of resources selection calendar de Vorgabe für die Ressourcensuche
default week view calendar de Vorgabe Wochenansicht default week view calendar de Vorgabe Wochenansicht
delegated calendar de Delegiert
delete selected events calendar de Ausgewählte Termine löschen delete selected events calendar de Ausgewählte Termine löschen
delete series calendar de Serie löschen delete series calendar de Serie löschen
delete this alarm calendar de Diesen Alarm löschen delete this alarm calendar de Diesen Alarm löschen
@ -99,7 +105,9 @@ display status of events calendar de Status von Terminen anzeigen
displayed view calendar de Ansicht displayed view calendar de Ansicht
displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar de Soll Ihre Standard-Kalender-Ansicht auf der Startseite angezeigt werden (die Seite die sich nach dem Login öffnet oder wenn Sie auf Home klicken)? displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar de Soll Ihre Standard-Kalender-Ansicht auf der Startseite angezeigt werden (die Seite die sich nach dem Login öffnet oder wenn Sie auf Home klicken)?
do not include events of group members calendar de Zeige nicht die Termine der Gruppenmitglieder do not include events of group members calendar de Zeige nicht die Termine der Gruppenmitglieder
do you want a weekview with or without weekend? calendar de Möchten Sie eine Wochenansicht mit oder ohne Wochenende? do you want a weekview with or without weekend? calendar de Wollen Sie das Wochenende in der Wochenansicht angezeigt bekommen?
do you want to be notified about changes of appointments you modified? calendar de Wollen Sie über Änderungen an Terminen benachrichtigt werden, die Sie modifiziert haben?
do you want to be notified about new or changed appointments? you are not notified about changes you made yourself.<br>you can limit the notifications to certain changes only. each item includes all notifications listed above. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get participant responses like acceptions or rejections too. calendar de Wollen Sie über neue oder geänderte Termine benachrichtigt werden? Über Ihre eigenen Änderungen werden Sie NIE benachrichtigt.<br>Sie können die Benachrichtigungen auch auf bestimmte Änderungen beschränken. Es gibt die Möglichkeit sich über Änderungen an Titel, Beschreibung und die Teilnehmer informieren zu lassen. Dabei sind jedoch nicht die Statusänderungen der Teilnehmer selbst gemeint. Nur der Besitzer eines Termins wird auch über die Zu- oder Absagen der Teilnehmer benachrichtigt, wenn er Benachrichtigungen aktivert hat.
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar de Wollen Sie über neue oder geänderte Termine benachrichtigt werden? Sie werden nie über eigene Änderungen benachrichtigt.<br>Sie können die Benachrichtigungen auf verschiedene Änderungen begrenzen. Jede Zeile enthält die Benachrichtigungen der darüber liegenden. Alle Änderungen umfasst den Titel, die Beschreibung, Teilnehmer, aber keine Antworten der Teilnehmer. Wenn der Ersteller eines Termins irgendeine Benachrichtigung will, erhält er automatisch auch die Antworten der Teilnehmer, wie Zusagen oder Absagen. do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar de Wollen Sie über neue oder geänderte Termine benachrichtigt werden? Sie werden nie über eigene Änderungen benachrichtigt.<br>Sie können die Benachrichtigungen auf verschiedene Änderungen begrenzen. Jede Zeile enthält die Benachrichtigungen der darüber liegenden. Alle Änderungen umfasst den Titel, die Beschreibung, Teilnehmer, aber keine Antworten der Teilnehmer. Wenn der Ersteller eines Termins irgendeine Benachrichtigung will, erhält er automatisch auch die Antworten der Teilnehmer, wie Zusagen oder Absagen.
do you want to edit this event as an exception or the whole series? calendar de Wollen Sie diesen Termin als Ausnahme bearbeiten oder die ganze Serie? do you want to edit this event as an exception or the whole series? calendar de Wollen Sie diesen Termin als Ausnahme bearbeiten oder die ganze Serie?
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar de Möchten Sie eine regelmäßige Zusammenfassung Ihrer Termine via E-Mail erhalten?<br>Die Zusammenfassung wird täglich (jeden Morgen), oder für eine wöchentliche Zusammenfassung Montags an Ihre Standard E-Mail Adresse gesendet.<br> Die Benachrichtigung wird nur versendet, wenn Sie am nächsten Tag oder in der nächsten Woche auch einen Termin haben. do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar de Möchten Sie eine regelmäßige Zusammenfassung Ihrer Termine via E-Mail erhalten?<br>Die Zusammenfassung wird täglich (jeden Morgen), oder für eine wöchentliche Zusammenfassung Montags an Ihre Standard E-Mail Adresse gesendet.<br> Die Benachrichtigung wird nur versendet, wenn Sie am nächsten Tag oder in der nächsten Woche auch einen Termin haben.
@ -164,10 +172,12 @@ global public only calendar de nur Global öffentlich
group invitation calendar de Gruppeneinladung group invitation calendar de Gruppeneinladung
group planner calendar de Gruppenplaner group planner calendar de Gruppenplaner
group public only calendar de Gruppen-öffentlich group public only calendar de Gruppen-öffentlich
group(s) or user(s) whose calendars to show (if acl exists) calendar de Gruppe(n) oder Benutzer deren Kalender angezeigt werden (wenn eine ACL existiert)
groupmember(s) %1 not included, because you have no access. calendar de Gruppenmitglied(er) %1 nicht enthalten, da Sie keinen Zugriff haben. groupmember(s) %1 not included, because you have no access. calendar de Gruppenmitglied(er) %1 nicht enthalten, da Sie keinen Zugriff haben.
groups: other users can allways be invited, only groups require an invite grant admin de Gruppen: andere Benutzer können immer eingeladen werden, nur Gruppen benötigen eine Freigabe groups: other users can allways be invited, only groups require an invite grant admin de Gruppen: andere Benutzer können immer eingeladen werden, nur Gruppen benötigen eine Freigabe
h calendar de h h calendar de h
here is your requested alarm. calendar de Hier ist Ihr bestellter Alarm. here is your requested alarm. calendar de Hier ist Ihr bestellter Alarm.
hide private events calendar de Private Termine verbergen
hide private infos calendar de Private Informationen ausblenden hide private infos calendar de Private Informationen ausblenden
high priority calendar de Hohe Priorität high priority calendar de Hohe Priorität
history calendar de Historie history calendar de Historie
@ -178,6 +188,7 @@ hours calendar de Stunden
how far to search (from startdate) calendar de wie weit suchen (vom Startdatum) how far to search (from startdate) calendar de wie weit suchen (vom Startdatum)
how many minutes should each interval last? calendar de Wie viele Minuten soll jedes Intervall dauern? how many minutes should each interval last? calendar de Wie viele Minuten soll jedes Intervall dauern?
how many weeks should the multiple week view show? calendar de Wie viele Wochen soll die Mehrwochenansicht zeigen? how many weeks should the multiple week view show? calendar de Wie viele Wochen soll die Mehrwochenansicht zeigen?
how much entries to skip calendar de Wieviele Einträge soll weiter gesprungen werden?
ical calendar de iCal ical calendar de iCal
ical / rfc2445 calendar de iCal / RFC2445 ical / rfc2445 calendar de iCal / RFC2445
ical export calendar de iCal Export ical export calendar de iCal Export
@ -206,6 +217,7 @@ location to autoload from admin de Von wo sollen sie geladen werden
location, start- and endtimes, ... calendar de Ort, Start- und Endzeiten location, start- and endtimes, ... calendar de Ort, Start- und Endzeiten
mail all participants calendar de Mail an alle Teilnehmer mail all participants calendar de Mail an alle Teilnehmer
make freebusy information available to not loged in persons? calendar de Die Belegtzeiten für nicht angemeldete Personen verfügbar machen? make freebusy information available to not loged in persons? calendar de Die Belegtzeiten für nicht angemeldete Personen verfügbar machen?
max. number of entries to show (leave empty for no restriction) calendar de Maximale Anzahl von Einträgen (falls leer, werden alle Einträge angezeigt)
minutes calendar de Minuten minutes calendar de Minuten
modified calendar de Geändert modified calendar de Geändert
mon calendar de Mo mon calendar de Mo
@ -268,6 +280,7 @@ private only calendar de nur private
quantity calendar de Menge quantity calendar de Menge
re-edit event calendar de Event erneut bearbeiten re-edit event calendar de Event erneut bearbeiten
receive email updates calendar de Empfange E-Mail-Updates receive email updates calendar de Empfange E-Mail-Updates
receive notifications about events you created/modified/deleted calendar de Benachrichtigungen zu Terminen die Sie angelegt, modifiziert oder gelöscht haben
receive summary of appointments calendar de Zusammenfassung der Termine erhalten receive summary of appointments calendar de Zusammenfassung der Termine erhalten
recurrence calendar de Wiederholung recurrence calendar de Wiederholung
recurring event calendar de Wiederholender Termin recurring event calendar de Wiederholender Termin
@ -294,6 +307,7 @@ save event as exception - delete single occurrence - edit status or alarms for t
saves the changes made calendar de Speichert die Änderungen saves the changes made calendar de Speichert die Änderungen
saves the event ignoring the conflict calendar de Speichert den Konflikt ignorierend den Termin saves the event ignoring the conflict calendar de Speichert den Konflikt ignorierend den Termin
scheduling conflict calendar de Terminüberschneidung scheduling conflict calendar de Terminüberschneidung
search string for the events calendar de Suche nach Terminen
select a %1 calendar de %1 auswählen select a %1 calendar de %1 auswählen
select a time calendar de eine Zeit auswählen select a time calendar de eine Zeit auswählen
select an action calendar de Befehl auswählen select an action calendar de Befehl auswählen
@ -301,6 +315,7 @@ select multiple contacts for a further action calendar de mehrere Adressen für
select resources calendar de Ressourcen auswählen select resources calendar de Ressourcen auswählen
select who should get the alarm calendar de Auswählen wer den Alarm erhalten soll select who should get the alarm calendar de Auswählen wer den Alarm erhalten soll
selected range calendar de Ausgewählter Zeitraum selected range calendar de Ausgewählter Zeitraum
series deleted calendar de Serientermin gelöscht
set a year only for one-time / non-regular holidays. calendar de Nur für einmalige bzw. unregelmäßige Feiertage das Jahr angeben. set a year only for one-time / non-regular holidays. calendar de Nur für einmalige bzw. unregelmäßige Feiertage das Jahr angeben.
set new events to private calendar de Neue Termine als private Termine eintragen set new events to private calendar de Neue Termine als private Termine eintragen
setting lock time calender admin de Zeitintervall für Datensatzlock (default 1 sec.) setting lock time calender admin de Zeitintervall für Datensatzlock (default 1 sec.)
@ -308,6 +323,7 @@ should new events created as private by default ? calendar de Sollen neue Termin
should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar de Sollen nicht angemeldete Personen Ihre Belegtzeiten einsehen können? Sie können ein Passwort setzen um diese Informationen zu schützen. Das Passwort sollte sich von Ihrem normalen Passwort unterscheiden. Die Belegtzeiten sind im iCal Format und enthalten ausschließlich die Zeiten, an denen Sie nicht verfügbar sind. Sie enthalten NICHT den Namen, die Beschreibung oder den Ort des Termins. Die Adresse (URL) Ihrer Belegtzeiten ist %1. should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar de Sollen nicht angemeldete Personen Ihre Belegtzeiten einsehen können? Sie können ein Passwort setzen um diese Informationen zu schützen. Das Passwort sollte sich von Ihrem normalen Passwort unterscheiden. Die Belegtzeiten sind im iCal Format und enthalten ausschließlich die Zeiten, an denen Sie nicht verfügbar sind. Sie enthalten NICHT den Namen, die Beschreibung oder den Ort des Termins. Die Adresse (URL) Ihrer Belegtzeiten ist %1.
should the planner display an empty row for users or categories without any appointment. calendar de Soll der Planer eine leere Zeile für Benutzer oder Kategorien ohne einen Termin anzeigen. should the planner display an empty row for users or categories without any appointment. calendar de Soll der Planer eine leere Zeile für Benutzer oder Kategorien ohne einen Termin anzeigen.
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar de Soll der Status (zugesagt, abgesagt ...) der Termin- Teilnehmer in Klammern hinter jeden Teilnehmer angezeigt werden? should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar de Soll der Status (zugesagt, abgesagt ...) der Termin- Teilnehmer in Klammern hinter jeden Teilnehmer angezeigt werden?
show a calendar title calendar de Zeige den Kalendertitel
show all events, as if they were private calendar de Zeige alle Termine, so als wären sie privat show all events, as if they were private calendar de Zeige alle Termine, so als wären sie privat
show all status incl. rejected events calendar de Zeige alle Status einschl. abgesagte Termine show all status incl. rejected events calendar de Zeige alle Status einschl. abgesagte Termine
show all status, but rejected calendar de Zeige alle Status außer abgesagte Termine show all status, but rejected calendar de Zeige alle Status außer abgesagte Termine
@ -317,6 +333,7 @@ show default view on main screen calendar de Standardansicht auf der Startseite
show empty rows in planner calendar de Zeige leere Zeilen im Planer show empty rows in planner calendar de Zeige leere Zeilen im Planer
show list of upcoming events calendar de Zeige eine Liste der kommenden Termine show list of upcoming events calendar de Zeige eine Liste der kommenden Termine
show only accepted events calendar de Zeige nur zugesagte Termine show only accepted events calendar de Zeige nur zugesagte Termine
show only delegated events calendar de Zeige nur delegiert Termine
show only invitations, not yet accepted or rejected calendar de Zeige nur Einladungen, nicht bereits zu- oder abgesagte Termine show only invitations, not yet accepted or rejected calendar de Zeige nur Einladungen, nicht bereits zu- oder abgesagte Termine
show only rejected events calendar de Zeige nur abgesagte Termine show only rejected events calendar de Zeige nur abgesagte Termine
show only tentative accepted events calendar de Zeige nur vorläufig zugesagte Termine show only tentative accepted events calendar de Zeige nur vorläufig zugesagte Termine
@ -361,6 +378,7 @@ timeframe to search calendar de Zeitrahmen für die Suche
timezone calendar de Zeitzone timezone calendar de Zeitzone
timezone in which recurrences have identical time calendar de Zeitzone in der Wiederholungen zu identischer Uhrzeit stattfinden timezone in which recurrences have identical time calendar de Zeitzone in der Wiederholungen zu identischer Uhrzeit stattfinden
timezone of event exports calendar de Zeitzone des exportierten Termins timezone of event exports calendar de Zeitzone des exportierten Termins
timezone of event ical file import/export calendar de Zeitzone für den iCal Import/Export
timezones updated to version %1 (%2 records updated). calendar de Zeitzonen aktualisiert zu Version %1 (%2 Datensätze aktualisiert). timezones updated to version %1 (%2 records updated). calendar de Zeitzonen aktualisiert zu Version %1 (%2 Datensätze aktualisiert).
title of the event calendar de Titel des Termin title of the event calendar de Titel des Termin
to many might exceed your execution-time-limit calendar de zu viele können Ihre Laufzeitbeschränkung überschreiten to many might exceed your execution-time-limit calendar de zu viele können Ihre Laufzeitbeschränkung überschreiten
@ -373,6 +391,8 @@ updated calendar de Aktualisiert
use end date calendar de Enddatum benutzen use end date calendar de Enddatum benutzen
use the selected time and close the popup calendar de benutzt die ausgewählte Zeit und schließt das Popup use the selected time and close the popup calendar de benutzt die ausgewählte Zeit und schließt das Popup
use this timezone to export calendar data. calendar de Diese Zeitzone zum exportieren von Kalenderdaten verwenden use this timezone to export calendar data. calendar de Diese Zeitzone zum exportieren von Kalenderdaten verwenden
use this timezone to import/export calendar data. calendar de Diese Zeitzone wird für den Import/Export von Kalendardaten verwendet.
use weekday start calendar de Dies Tag wird als Wochenanfang verwendet.
user or group calendar de Benutzer oder Gruppe user or group calendar de Benutzer oder Gruppe
users + groups: inviting both allways requires an invite grant admin de Benutzer + Gruppen: Einladungen beider brauchen eine Freigabe users + groups: inviting both allways requires an invite grant admin de Benutzer + Gruppen: Einladungen beider brauchen eine Freigabe
view exception calendar de Ausnahme anzeigen view exception calendar de Ausnahme anzeigen