2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 18:59:33 +00:00

57_SSCal: contrib 1.9.0

git-svn-id: https://svn.fhem.de/fhem/trunk@21184 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2020-02-12 13:54:45 +00:00
parent 88e9f84494
commit cd84bdba8f

View File

@ -3346,17 +3346,17 @@ sub SSCal_calAsHtml($;$) {
if ($mi eq "icon") { if ($mi eq "icon") {
# Karten-Icon auswählen # Karten-Icon auswählen
my $di = "it_i-net"; my $di = "it_i-net";
my $ui = SSCal_evalTableSpecs ($hash,$di,$hash->{HELPER}{tableSpecs}{columnMapIcon},$bnr,@allrds); $micon = SSCal_evalTableSpecs ($hash,$di,$hash->{HELPER}{tableSpecs}{columnMapIcon},$bnr,\@allrds,"image");
# in Image umwandeln (versuchen) wenn SSCal_evalTableSpecs String liefert # in Image umwandeln (versuchen) wenn SSCal_evalTableSpecs String liefert
if($ui =~ /<svg class=|<img class=/) { $micon = $ui; } else { $micon = FW_makeImage($ui); } # if($ui =~ /<svg class=|<img class=/) { $micon = $ui; } else { $micon = FW_makeImage($ui); }
} elsif ($mi eq "data") { } elsif ($mi eq "data") {
$micon = join(" ", split(",", $gpsc)); $micon = join(" ", split(",", $gpsc));
} elsif ($mi eq "text") { } elsif ($mi eq "text") {
# Karten-Text auswählen # Karten-Text auswählen
my $dt = "link"; my $dt = "link";
$micon = SSCal_evalTableSpecs ($hash,$dt,$hash->{HELPER}{tableSpecs}{columnMapText},$bnr,@allrds); $micon = SSCal_evalTableSpecs ($hash,$dt,$hash->{HELPER}{tableSpecs}{columnMapText},$bnr,\@allrds,"string");
} else { } else {
$micon = ""; $micon = "";
} }
@ -3366,7 +3366,7 @@ sub SSCal_calAsHtml($;$) {
$lng = (split("=", $lng))[1]; $lng = (split("=", $lng))[1];
# Kartenanbieter auswählen # Kartenanbieter auswählen
my $up = SSCal_evalTableSpecs ($hash,"",$hash->{HELPER}{tableSpecs}{columnMapProvider},$bnr,@allrds); my $up = SSCal_evalTableSpecs ($hash,"",$hash->{HELPER}{tableSpecs}{columnMapProvider},$bnr,\@allrds,"string");
if ($up eq "GoogleMaps") { # Kartenprovider: Google Maps if ($up eq "GoogleMaps") { # Kartenprovider: Google Maps
$gps = "<a href='https://www.google.de/maps/place/$gpsa/\@$lat,$lng' target='_blank'> $micon </a>"; $gps = "<a href='https://www.google.de/maps/place/$gpsa/\@$lat,$lng' target='_blank'> $micon </a>";
} elsif ($up eq "OpenStreetMap") { } elsif ($up eq "OpenStreetMap") {
@ -3417,10 +3417,10 @@ sub SSCal_calAsHtml($;$) {
} }
# Icon für Spalte Resttage spezifizieren # Icon für Spalte Resttage spezifizieren
$dleft = SSCal_evalTableSpecs ($hash,$dleft,$hash->{HELPER}{tableSpecs}{columnDaysLeftIcon},$bnr,@allrds); $dleft = SSCal_evalTableSpecs ($hash,$dleft,$hash->{HELPER}{tableSpecs}{columnDaysLeftIcon},$bnr,\@allrds,"image");
# Icon für Spalte Status spezifizieren # Icon für Spalte Status spezifizieren
$status = SSCal_evalTableSpecs ($hash,$status,$hash->{HELPER}{tableSpecs}{columnStateIcon},$bnr,@allrds); $status = SSCal_evalTableSpecs ($hash,$status,$hash->{HELPER}{tableSpecs}{columnStateIcon},$bnr,\@allrds,"image");
$out .= "<tr class='".($k&1?"odd":"even")."'>"; $out .= "<tr class='".($k&1?"odd":"even")."'>";
if($small) { if($small) {
@ -3459,15 +3459,18 @@ return $out;
# $hash: Devicehash # $hash: Devicehash
# $default: Standardwert - wird wieder zurückgegeben wenn kein Funktionsergebnis # $default: Standardwert - wird wieder zurückgegeben wenn kein Funktionsergebnis
# $specs: Basisschlüssel (z.B. $hash->{HELPER}{tableSpecs}{columnDaysLeft}) # $specs: Basisschlüssel (z.B. $hash->{HELPER}{tableSpecs}{columnDaysLeft})
# @allreads: alle vorhandenen Readings # $allreads: Referenz zum ARRAY was alle vorhandenen Readings des Devices enthält
# $bnr: Blocknummer Readings # $bnr: Blocknummer Readings
# $rdtype: erwarteter Datentyp als Rückgabe (image, string)
# #
###################################################################################### ######################################################################################
sub SSCal_evalTableSpecs (@){ sub SSCal_evalTableSpecs (@){
my ($hash,$default,$specs,$bnr,@allrds)= @_; my ($hash,$default,$specs,$bnr,$allrds,$rdtype) = @_;
my $name = $hash->{NAME}; my $name = $hash->{NAME};
my $check; my $check;
$rdtype = $rdtype ? $rdtype : "string"; # "string" als default Rückgabe Datentyp
# anonymous sub für Abarbeitung Perl-Kommandos # anonymous sub für Abarbeitung Perl-Kommandos
$check = sub ($) { $check = sub ($) {
my ($specs) = @_; my ($specs) = @_;
@ -3491,7 +3494,8 @@ sub SSCal_evalTableSpecs (@){
$n--; $n--;
next; next;
} }
foreach my $r (@allrds) { # alle vorhandenen Readings evaluieren
foreach my $r (@{$allrds}) { # alle vorhandenen Readings evaluieren
if($r =~ m/$k$/) { if($r =~ m/$k$/) {
(undef,$rn,$reading) = split("_", $r); # Readingnummer evaluieren (undef,$rn,$reading) = split("_", $r); # Readingnummer evaluieren
$uval = $specs->[$i]{$k}; # Vergleichswert $uval = $specs->[$i]{$k}; # Vergleichswert
@ -3511,7 +3515,7 @@ sub SSCal_evalTableSpecs (@){
} }
if($n == 0 && $ui) { if($n == 0 && $ui) {
$default = FW_makeImage($ui); # Defaultwert mit Icon ersetzen wenn alle Bedingungen erfüllt $default = $ui; # Defaultwert mit Select ersetzen wenn alle Bedingungen erfüllt
} }
$i++; $i++;
} }
@ -3525,7 +3529,7 @@ sub SSCal_evalTableSpecs (@){
$n--; $n--;
next; next;
} }
foreach my $r (@allrds) { # alle vorhandenen Readings evaluieren foreach my $r (@{$allrds}) { # alle vorhandenen Readings evaluieren
if($r =~ m/$k$/) { if($r =~ m/$k$/) {
(undef,$rn,$reading) = split("_", $r); # Readingnummer evaluieren (undef,$rn,$reading) = split("_", $r); # Readingnummer evaluieren
$uval = $specs->{$k}; # Vergleichswert $uval = $specs->{$k}; # Vergleichswert
@ -3545,7 +3549,7 @@ sub SSCal_evalTableSpecs (@){
} }
if($n == 0 && $ui) { if($n == 0 && $ui) {
$default = FW_makeImage($ui); # Defaultwert mit Icon ersetzen wenn alle Bedingungen erfüllt $default = $ui; # Defaultwert mit Select ersetzen wenn alle Bedingungen erfüllt
} }
} else { # ref Wert der Eigenschaft ist nicht HASH oder ARRAY } else { # ref Wert der Eigenschaft ist nicht HASH oder ARRAY
@ -3556,9 +3560,13 @@ sub SSCal_evalTableSpecs (@){
} else { # einfache key-value Zuweisung } else { # einfache key-value Zuweisung
eval ($default = $specs); eval ($default = $specs);
} }
} }
} }
if($default && $rdtype eq "image") {
$default = FW_makeImage($default); # Icon aus "string" errechnen wenn "image" als Rückgabe erwartet wird und $default gesetzt
}
use warnings; use warnings;
return $default; return $default;
@ -3620,7 +3628,7 @@ Die Beschreibung des Moduls ist momentan nur im <a href="https://wiki.fhem.de/wi
"Appointments" "Appointments"
], ],
"version": "v1.1.1", "version": "v1.1.1",
"release_status": "testing", "release_status": "stable",
"author": [ "author": [
"Heiko Maaz <heiko.maaz@t-online.de>" "Heiko Maaz <heiko.maaz@t-online.de>"
], ],