diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index d0b689e1a..058ea2ae5 100644 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -2255,8 +2255,7 @@ FW_style($$) $ret = FW_fC("reload $fileName") if($fileName =~ m,\.pm$,); $ret = FW_Set("","","rereadicons") if($isImg); DoTrigger("global", "FILEWRITE $filePath", 1) if(!$ret); # Forum #32592 - $ret = ($ret ? "

ERROR:

$ret" : - "Saved the file $fileName to $forceType"); + $ret = ($ret ? "

ERROR:

$ret" : "Saved $fileName"); FW_style("style list", $ret); $ret = ""; diff --git a/fhem/FHEM/95_holiday.pm b/fhem/FHEM/95_holiday.pm index 504f839bc..a504e28da 100644 --- a/fhem/FHEM/95_holiday.pm +++ b/fhem/FHEM/95_holiday.pm @@ -19,6 +19,7 @@ holiday_Initialize($) $hash->{SetFn} = "holiday_Set"; $hash->{UndefFn} = "holiday_Undef"; $hash->{AttrList} = $readingFnAttributes; + $hash->{FW_detailFn} = "holiday_FW_detailFn"; } @@ -228,17 +229,38 @@ sub holiday_Set($@) { my ($hash, @a) = @_; + my %sets = ( + createPrivateCopy => $hash->{READONLY}, + deletePrivateCopy => !$hash->{READONLY}, + reload => 1 + ); + + return "unknown argument $a[1], choose one of ". + join(" ", map { "$_:noArg" } + grep { $sets{$_} } keys %sets) if(!$sets{$a[1]}); - return "unknown argument $a[1], choose one of createPrivateCopy:noArg" - if($a[1] ne "createPrivateCopy"); - return "Already a private version" if(!$hash->{READONLY}); - my $fname = $attr{global}{modpath}."/FHEM/holiday/$hash->{NAME}.holiday"; - my ($err, @holidayfile) = FileRead($fname); - return $err if($err); - $fname = $attr{global}{modpath}."/FHEM/$hash->{NAME}.holiday"; - $err = FileWrite($fname, @holidayfile); - holiday_refresh($hash->{NAME}); - return $err; + if($a[1] eq "createPrivateCopy") { + return "Already a private version" if(!$hash->{READONLY}); + my $fname = $attr{global}{modpath}."/FHEM/holiday/$hash->{NAME}.holiday"; + my ($err, @holidayfile) = FileRead($fname); + return $err if($err); + $fname = $attr{global}{modpath}."/FHEM/$hash->{NAME}.holiday"; + $err = FileWrite($fname, @holidayfile); + return $err if($err); + holiday_refresh($hash->{NAME}); + + } elsif($a[1] eq "deletePrivateCopy") { + + return "Not a private version" if($hash->{READONLY}); + my $err = FileDelete($attr{global}{modpath}."/FHEM/$hash->{NAME}.holiday"); + return $err if($err); + holiday_refresh($hash->{NAME}); + + } elsif($a[1] eq "reload") { + holiday_refresh($hash->{NAME}); + + } + return undef; } sub @@ -311,6 +333,17 @@ western_easter($) return $month, $day; } + +sub +holiday_FW_detailFn($$$$) +{ + my ($FW_wname, $d, $room, $pageHash) = @_; # pageHash is set for summaryFn. + + return "" if($defs{$d}{READONLY}); + return FW_pH("cmd=style edit $d.holiday", + "
Edit $d.holiday
", 0, "dval", 1); +} + 1; =pod @@ -329,8 +362,9 @@ western_easter($) Define a set of holidays. The module will try to open the file <name>.holiday in the modpath/FHEM directory first, then in the modpath/FHEM/holiday directory, the latter containing a - set of predefined files. The set will be shown if an error occures at the - time of the definietion.
+ set of predefined files. This list of available holiday files will be shown + if an error occurs at the time of the definition, e.g. if you type "define + help holiday"
If entries in the holiday file match the current day, then the STATE of this holiday instance displayed in the list command @@ -409,6 +443,15 @@ western_easter($) modified. With createPrivateCopy the file will be copied to the FHEM directory, where it can be modified. +
  • deletePrivateCopy
    +
  • +
  • reload
    +

  • @@ -446,7 +489,7 @@ western_easter($) Datei <name>.holiday erst in modpath/FHEM zu öffnen, und dann in modpath/FHEM/holiday, Letzteres enthält eine Liste von per FHEM-update verteilten Dateien für diverse - (Bundes-)Länder. Diese Liste wird bei einer Feherlmeldung angezeigt. + (Bundes-)Länder. Diese Liste wird bei einer Fehlermeldung angezeigt. Wenn Einträge im der Datei auf den aktuellen Tag passen wird der STATE der Holiday-Instanz die im list Befehl angezeigt wird @@ -530,6 +573,15 @@ western_easter($) update aktualisiert wird. Mit createPrivateCopy kann eine private Kopie im FHEM Verzeichnis erstellt werden. +
  • deletePrivateCopy
    +
  • +
  • reload
    +

  • diff --git a/fhem/docs/commandref_frame.html b/fhem/docs/commandref_frame.html index ca3b5d078..359f7dc38 100644 --- a/fhem/docs/commandref_frame.html +++ b/fhem/docs/commandref_frame.html @@ -1459,9 +1459,11 @@ The following local attributes are used by a wider range of devices: If this attribute is set, then the $we variable will be true, if the value of the holiday variable referenced by this attribute is not none.
    + If it is a comma separated list, then it is true, if one of the + referenced entities is not none.
    Example:

    diff --git a/fhem/docs/commandref_frame_DE.html b/fhem/docs/commandref_frame_DE.html index ab8df97aa..471e70661 100644 --- a/fhem/docs/commandref_frame_DE.html +++ b/fhem/docs/commandref_frame_DE.html @@ -1557,6 +1557,8 @@ Die folgenden lokalen Attribute werden von mehreren Geräten verwendet: href="#perl">$we Variable als "true" betrachtet, wenn der Wert der holiday Variable zu diesem Attribut nicht "none" ist.
    + Falls es eine Komma getrennte Liste ist, dann ist es wahr, falls einer + der referenzierten Instanzen nicht "none" ist.
    Beispiel: