mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-07 19:04:20 +00:00
57_Calendar: remove ended calendar events from list
git-svn-id: https://svn.fhem.de/fhem/trunk@8986 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
f67762e3d5
commit
782095634e
@ -276,6 +276,11 @@ sub isDeleted {
|
||||
return $self->isState("deleted");
|
||||
}
|
||||
|
||||
sub isExpired {
|
||||
my ($self)= @_;
|
||||
return $self->isState("expired");
|
||||
}
|
||||
|
||||
|
||||
sub stateChanged {
|
||||
my ($self)= @_;
|
||||
@ -399,8 +404,9 @@ sub fromVEvent {
|
||||
$self->{lastModified}= tm($vevent->value("DTSTAMP"));
|
||||
#main::Debug "DTSTAMP: $self->{lastModified} ";
|
||||
}
|
||||
$self->{summary}= $vevent->value("SUMMARY");
|
||||
$self->{location}= $vevent->value("LOCATION");
|
||||
$self->{summary}= defined($vevent->value("SUMMARY")) ? $vevent->value("SUMMARY") : "";
|
||||
$self->{location}= defined($vevent->value("LOCATION")) ? $vevent->value("LOCATION") : "";
|
||||
|
||||
|
||||
#Dates to exclude in reoccuring rule
|
||||
my @exdate;
|
||||
@ -495,6 +501,14 @@ sub asText {
|
||||
|
||||
sub asFull {
|
||||
my ($self)= @_;
|
||||
#main::Log3 undef,1,$self->uid();
|
||||
#main::Log3 undef,1,$self->state();
|
||||
#main::Log3 undef,1,$self->mode();
|
||||
#main::Log3 undef,1,ts($self->{alarm});
|
||||
#main::Log3 undef,1,ts($self->{start});
|
||||
#main::Log3 undef,1,ts($self->{end});
|
||||
#main::Log3 undef,1,$self->{summary};
|
||||
#main::Log3 undef,1,$self->{location};
|
||||
return sprintf("%s %7s %8s %s %s-%s %s %s",
|
||||
$self->uid(),
|
||||
$self->state(),
|
||||
@ -736,13 +750,13 @@ sub updateFromCalendar {
|
||||
my $uid;
|
||||
my $event;
|
||||
|
||||
# we first remove all elements which were previously marked for deletion
|
||||
# we first remove all elements which were previously marked for deletion or are expired
|
||||
foreach $event ($self->events()) {
|
||||
if($event->isDeleted() || $removeall) {
|
||||
if($event->isDeleted() || $event->isExpired() || $removeall) {
|
||||
$self->deleteEvent($event->uid());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# we iterate over the VEVENTs in the calendar
|
||||
my @vevents= grep { $_->{type} eq "VEVENT" } @{$calendar->{entries}};
|
||||
foreach my $vevent (@vevents) {
|
||||
@ -780,12 +794,16 @@ sub updateFromCalendar {
|
||||
}
|
||||
}
|
||||
|
||||
# untouched elements get marked as deleted
|
||||
# untouched elements get marked as deleted, expired elements as expired
|
||||
foreach $event ($self->events()) {
|
||||
if($event->lastSeen() != $t) {
|
||||
$event->setState("deleted");
|
||||
} elsif($event->mode() eq "end") {
|
||||
$event->setState("expired");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
#####################################
|
||||
@ -1256,6 +1274,7 @@ sub Calendar_Undef($$) {
|
||||
<tr><td>known</td><td>The calendar event was already there before the most recent update.</td></tr>
|
||||
<tr><td>updated</td><td>The calendar event was already there before the most recent update but it has changed since it
|
||||
was last retrieved.</td></tr>
|
||||
<tr><td>expired</td><td>The calendar event was already there before the most recent update and has ended. The calendar event will be removed from all lists at the next update.</td></tr>
|
||||
<tr><td>deleted</td><td>The calendar event was there before the most recent update but is no longer. You removed it from the source calendar. The calendar event will be removed from all lists at the next update.</td></tr>
|
||||
</table><br>
|
||||
Calendar events that lie completely in the past (current time on wall clock is later than the calendar event's end time)
|
||||
@ -1462,6 +1481,7 @@ sub Calendar_Undef($$) {
|
||||
<tr><td>new</td><td>Das Kalender-Ereignis wurde das erste Mal beim letzten Update gefunden. Entweder war dies das erste Mal des Kalenderzugriffs oder Du hast einen neuen Kalendereintrag zum Quellkalender hinzugefügt.</td></tr>
|
||||
<tr><td>known</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update.</td></tr>
|
||||
<tr><td>updated</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update, wurde aber geändert.</td></tr>
|
||||
<tr><td>expired</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update und ist beendet. Das Kalender-Ereignis wird beim nächsten Update von allen Listen entfernt.</td></tr>
|
||||
<tr><td>deleted</td><td>Das Kalender-Ereignis existierte bereits vor dem letzten Update, wurde aber seitdem gelöscht. Das Kalender-Ereignis wird beim nächsten Update von allen Listen entfernt.</td></tr>
|
||||
</table><br>
|
||||
Kalender-Ereignisse, welche vollständig in der Vergangenheit liegen (aktuelle Zeit liegt nach dem Ende-Termin des Kalendereintrags) werden nicht bezogen und sind daher nicht im Kalender verfügbar.
|
||||
|
Loading…
x
Reference in New Issue
Block a user