diff --git a/calendar/inc/class.calendar_uiforms.inc.php b/calendar/inc/class.calendar_uiforms.inc.php
index 344ed850ba..50b7e64225 100644
--- a/calendar/inc/class.calendar_uiforms.inc.php
+++ b/calendar/inc/class.calendar_uiforms.inc.php
@@ -187,6 +187,17 @@ class calendar_uiforms extends calendar_ui
unset($content['recur_exception']['delete_exception']);
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]);
$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'])
{
- // 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']);
foreach ($recur_exceptions as $id)
{
- $this->bo->delete($id);
+ if ($delete_exceptions)
+ {
+ $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');
}
}
- $msg = lang('Event deleted');
+ else
+ {
+ $msg = lang('Event deleted');
+ }
$js = 'opener.location.href=\''.addslashes(egw::link($referer,array(
'msg' => $msg,
))).'\';';
diff --git a/calendar/lang/egw_de.lang b/calendar/lang/egw_de.lang
index b597f4f7cd..4928d2f88e 100644
--- a/calendar/lang/egw_de.lang
+++ b/calendar/lang/egw_de.lang
@@ -3,6 +3,8 @@
%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 weeks calendar de %1 Wochen
+(%1 events in %2 seconds) calendar de (%1 Termine in %2 Sekunden)
+, exceptions preserved calendar de _und Ausnahmen erhalten
please note: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.
holidays are %3 automatic installed from %4. you can changed it in %5. calendar de Bitte beachten: Der Kalender verwendet die Feiertages des Landes, welches auf %1 eingestellt ist. Das können Sie in Ihren %2 ändern.
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
accept or reject an invitation calendar de Einladung zu- oder absagen
@@ -41,6 +43,8 @@ birthday calendar de Geburtstag
birthdays admin de Geburtstage
busy calendar de belegt
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 event calendar de Kalender Aktualisierung
calendar holiday management admin de Feiertage verwalten
@@ -58,6 +62,7 @@ chair calendar de Vorsitz
change history calendar de Änderungshistorie
charset of file calendar de Zeichensatz der Datei
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
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
@@ -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 selection calendar de Vorgabe für die Ressourcensuche
default week view calendar de Vorgabe Wochenansicht
+delegated calendar de Delegiert
delete selected events calendar de Ausgewählte Termine löschen
delete series calendar de Serie 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
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 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.
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.
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.
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.
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 receive a regulary summary of your appointsments via email?
the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.
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?
Die Zusammenfassung wird täglich (jeden Morgen), oder für eine wöchentliche Zusammenfassung Montags an Ihre Standard E-Mail Adresse gesendet.
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 planner calendar de Gruppenplaner
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.
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
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
high priority calendar de Hohe Priorität
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 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 much entries to skip calendar de Wieviele Einträge soll weiter gesprungen werden?
ical calendar de iCal
ical / rfc2445 calendar de iCal / RFC2445
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
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?
+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
modified calendar de Geändert
mon calendar de Mo
@@ -268,6 +280,7 @@ private only calendar de nur private
quantity calendar de Menge
re-edit event calendar de Event erneut bearbeiten
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
recurrence calendar de Wiederholung
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 event ignoring the conflict calendar de Speichert den Konflikt ignorierend den Termin
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 time calendar de eine Zeit 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 who should get the alarm calendar de Auswählen wer den Alarm erhalten soll
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 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.)
@@ -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 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?
+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 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
@@ -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 list of upcoming events calendar de Zeige eine Liste der kommenden 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 rejected events calendar de Zeige nur abgesagte 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 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 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).
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
@@ -373,6 +391,8 @@ updated calendar de Aktualisiert
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 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
users + groups: inviting both allways requires an invite grant admin de Benutzer + Gruppen: Einladungen beider brauchen eine Freigabe
view exception calendar de Ausnahme anzeigen