diff --git a/fhem/webfrontend/pgm2/01_FHEMWEB.pm b/fhem/webfrontend/pgm2/01_FHEMWEB.pm index 0bc11f94b..f2da63e32 100755 --- a/fhem/webfrontend/pgm2/01_FHEMWEB.pm +++ b/fhem/webfrontend/pgm2/01_FHEMWEB.pm @@ -32,9 +32,9 @@ sub FW_textfield($$); sub FW_updateHashes(); sub FW_zoomLink($$$); sub pF($@); -sub pH(@); -sub pHPlain(@); -sub pO(@); +sub FW_pH(@); +sub FW_pHPlain(@); +sub FW_pO(@); use vars qw($FW_dir); # moddir (./FHEM), needed by SVG use vars qw($FW_ME); # webname (default is fhem), needed by 97_GROUP @@ -337,7 +337,7 @@ FW_AnswerCall($) my $f = $1; $f =~ s,/,,g; # little bit of security open(FH, "$FW_dir/$f") || return 0; - pO join("", ); + FW_pO join("", ); close(FH); $FW_RETTYPE = "text/plain; charset=$FW_encoding" if($f !~ m/\.*html$/); return 1; @@ -349,7 +349,7 @@ FW_AnswerCall($) $prf = "touchpad" if(!$prf && $FW_tp); return 0 if(!open(FH, "$FW_dir/$prf$cssName.css") && !open(FH, "$FW_dir/$cssName.css")); - pO join("", ); + FW_pO join("", ); close(FH); $FW_RETTYPE = "text/css"; return 1; @@ -365,7 +365,7 @@ FW_AnswerCall($) return 0 if(!$img || !open(FH, "$FW_dir/$img")); } binmode (FH); # necessary for Windows - pO join("", ); + FW_pO join("", ); close(FH); my @f_ext = split(/\./,$img); #kpb $FW_RETTYPE = "image/$f_ext[-1]"; @@ -373,7 +373,7 @@ FW_AnswerCall($) } elsif($arg =~ m,^$FW_ME/(.*).js,) { #kpb java include open(FH, "$FW_dir/$1.js") || return 0; - pO join("", ); + FW_pO join("", ); close(FH); $FW_RETTYPE = "application/javascript"; return 1; @@ -412,7 +412,7 @@ FW_AnswerCall($) $FW_tp ? "640,160" : "800,160"); $FW_reldoc = "$FW_ME/commandref.html"; - $FW_cmdret = $docmd ? fC($cmd) : ""; + $FW_cmdret = $docmd ? FW_fC($cmd) : ""; if($FW_inform) { # Longpoll header $defs{$FW_cname}{inform} = $FW_room; @@ -425,7 +425,7 @@ FW_AnswerCall($) if($FW_XHR) { $FW_RETTYPE = "text/plain; charset=$FW_encoding"; - pO $FW_cmdret; + FW_pO $FW_cmdret; return 0; } @@ -447,7 +447,7 @@ FW_AnswerCall($) } $defs{$aa[0]}{currentlogfile} =~ m,([^/]*)$,; $aa[2] = "CURRENT" if($1 eq $aa[2]); - $FW_cmdret = fC("define wl_$max weblink fileplot $aa[0]:$aa[1]:$aa[2]"); + $FW_cmdret = FW_fC("define wl_$max weblink fileplot $aa[0]:$aa[1]:$aa[2]"); if(!$FW_cmdret) { $FW_detail = "wl_$max"; FW_updateHashes(); @@ -456,44 +456,44 @@ FW_AnswerCall($) my $t = AttrVal("global", "title", "Home, Sweet Home"); - pO ''; - pO ''; - pO "\n$t"; + FW_pO ''; + FW_pO ''; + FW_pO "\n$t"; # Enable WebApp if($FW_tp || $FW_ss) { - pO ''; - pO ''; - #pO '' + FW_pO ''; + FW_pO ''; + #FW_pO '' if($FW_ss) { - pO ''; + FW_pO ''; } elsif($FW_tp) { - pO ''; + FW_pO ''; } } my $rf = AttrVal($FW_wname, "refresh", ""); - pO "" if($rf); - pO ""; - pO "" + FW_pO "" if($rf); + FW_pO ""; + FW_pO "" if($FW_plotmode eq "SVG"); - pO "" + FW_pO "" if($FW_longpoll); - pO "\n"; + FW_pO "\n"; if($FW_cmdret) { $FW_detail = ""; $FW_room = ""; $FW_cmdret =~ s//>/g; - pO "
"; + FW_pO "
"; $FW_cmdret = "
$FW_cmdret
" if($FW_cmdret =~ m/\n/); if($FW_ss) { - pO "
$FW_cmdret
"; + FW_pO "
$FW_cmdret
"; } else { - pO $FW_cmdret; + FW_pO $FW_cmdret; } - pO "
"; + FW_pO "
"; } FW_roomOverview($cmd); @@ -501,7 +501,7 @@ FW_AnswerCall($) FW_doDetail($FW_detail) if($FW_detail); FW_showRoom() if($FW_room && !$FW_detail); FW_logWrapper($cmd) if($cmd =~ /^logwrapper/); - pO ""; + FW_pO ""; return 0; } @@ -585,7 +585,7 @@ FW_makeTable($$@) my($name, $hash, $cmd) = (@_); return if(!$hash || !int(keys %{$hash})); - pO ""; + FW_pO "
"; my $row = 1; foreach my $n (sort keys %{$hash}) { @@ -601,33 +601,33 @@ FW_makeTable($$@) } else { - pO ""; + FW_pO ""; if(ref($val)) { my ($v, $t) = ($val->{VAL}, $val->{TIME}); if($FW_ss) { $t = ($t ? "
$t
" : ""); - pO ""; + FW_pO ""; } else { $t = "" if(!$t); - pO ""; + FW_pO ""; } } else { - pO ""; + FW_pO ""; } } - pH "cmd.$name=$cmd $name $n&detail=$name", $cmd, 1 + FW_pH "cmd.$name=$cmd $name $n&detail=$name", $cmd, 1 if($cmd && !$FW_ss); - pO ""; + FW_pO ""; } - pO "
$n
$n
$v$t
$v$t
$v$t$v$t
$val
$val
"; - pO "
"; + FW_pO ""; + FW_pO "
"; } @@ -639,13 +639,13 @@ FW_makeSelect($$$) return if(!$list || $FW_hiddenroom{input}); my @al = map { s/[:;].*//;$_ } split(" ", $list); - pO "
"; - pO FW_hidden("detail", $d); - pO FW_hidden("dev.$cmd$d", $d); - pO FW_submit("cmd.$cmd$d", $cmd) . " $d"; - pO FW_select("arg.$cmd$d",\@al,undef); - pO FW_textfield("val.$cmd$d", 30); - pO "
"; + FW_pO "
"; + FW_pO FW_hidden("detail", $d); + FW_pO FW_hidden("dev.$cmd$d", $d); + FW_pO FW_submit("cmd.$cmd$d", $cmd) . " $d"; + FW_pO FW_select("arg.$cmd$d",\@al,undef); + FW_pO FW_textfield("val.$cmd$d", 30); + FW_pO "
"; } @@ -655,35 +655,35 @@ FW_doDetail($) { my ($d) = @_; - pO "
"; - pO FW_hidden("detail", $d); + FW_pO ""; + FW_pO FW_hidden("detail", $d); my $t = $defs{$d}{TYPE}; - pO "
"; - pO "
"; + FW_pO "
"; + FW_pO "
"; FW_makeSelect($d, "set", getAllSets($d)); FW_makeTable($d, $defs{$d}); - pO "Readings" if($defs{$d}{READINGS}); + FW_pO "Readings" if($defs{$d}{READINGS}); FW_makeTable($d, $defs{$d}{READINGS}); FW_makeSelect($d, "attr", getAllAttr($d)); FW_makeTable($d, $attr{$d}, "deleteattr"); if($t eq "FileLog" ) { - pO ""; + FW_pO "
"; FW_dumpFileLog($d, 0, 1); - pO "
"; + FW_pO "
"; } - pO "
"; + FW_pO ""; FW_showWeblink($d, $defs{$d}{LINK}, $defs{$d}{WLTYPE}, 1) if($t eq "weblink"); - pO "

"; - pH "$FW_reldoc#${t}", "Device specific help"; - pO "

"; - pO "
"; - pO "
"; + FW_pO "

"; + FW_pH "$FW_reldoc#${t}", "Device specific help"; + FW_pO "

"; + FW_pO ""; + FW_pO ""; } @@ -706,30 +706,30 @@ FW_roomOverview($) $FW_room = AttrVal($FW_detail, "room", undef); $FW_room = $1 if($FW_room && $FW_room =~ m/^([^,]*),/); $FW_room = "" if(!$FW_room); - pHPlain "room=$FW_room", + FW_pHPlain "room=$FW_room", "
"; - pO "
$FW_detail details
"; + FW_pO "
$FW_detail details
"; return; } else { - pO "
"; + FW_pO "
"; } ############## # HEADER - pO "
"; - pO '
'; - pO "
"; - pO FW_hidden("room", "$FW_room") if($FW_room); - pO FW_textfield("cmd", $FW_ss ? 25 : 40); + FW_pO "
"; + FW_pO '
'; + FW_pO ""; + FW_pO FW_hidden("room", "$FW_room") if($FW_room); + FW_pO FW_textfield("cmd", $FW_ss ? 25 : 40); if(!$FW_ss && !$FW_hiddenroom{save}) { - pO "
" . FW_submit("cmd", "save"); + FW_pO "
" . FW_submit("cmd", "save"); } - pO "
"; - pO "
"; - pO "
"; + FW_pO ""; + FW_pO "
"; + FW_pO "
"; ############## # MENU @@ -777,46 +777,46 @@ FW_roomOverview($) } - pO "
"; - pO ""; + FW_pO "
"; + FW_pO "
"; if($FW_ss) { # Make a selection sensitive dropdown list - pO ""; + FW_pO ""; if(!$FW_hiddenroom{save}) { - pO ""; } - pO ""; + FW_pO ""; } else { foreach(my $idx = 0; $idx < @list1; $idx++) { my ($l1, $l2) = ($list1[$idx], $list2[$idx]); if(!$l1) { - pO "
" . + FW_pO "
" . FW_submit("cmd", "save"). "
" if($idx); - pO "" + FW_pO "
" if($idx); + FW_pO "" if($idx", $l1 eq $FW_room ? " class=\"sel\"" : ""; if($l2 =~ m/.html$/ || $l2 =~ m/^http/) { - pO ""; + FW_pO ""; } else { - pH $l2, $l1, 1; + FW_pH $l2, $l1, 1; } - pO ""; + FW_pO ""; } } } - pO "
$l1$l1
"; - pO "
"; + FW_pO ""; + FW_pO ""; } @@ -830,9 +830,9 @@ FW_showRoom() # (re-) list the icons FW_ReadIcons(); - pO "
"; - pO "
"; - pO ""; # Need for equal width of subtables + FW_pO ""; + FW_pO "
"; + FW_pO "
"; # Need for equal width of subtables my $rf = ($FW_room ? "&room=$FW_room" : ""); # stay in the room @@ -848,9 +848,9 @@ FW_showRoom() !IsIgnored($_) } keys %{$FW_types{$type}}; next if(!@devs); - pO "\n"; - pO ""; } - pO "
$type
"; - pO ""; + FW_pO "\n"; + FW_pO ""; + FW_pO "
$type
"; + FW_pO ""; foreach my $d (sort @devs) { my $type = $defs{$d}{TYPE}; @@ -858,23 +858,23 @@ FW_showRoom() pF "\n", ($row&1)?"odd":"even"; my $devName = AttrVal($d, "alias", $d); if($FW_hiddenroom{detail}) { - pO ""; + FW_pO ""; } else { - pH "detail=$d", $devName, 1, "col1"; + FW_pH "detail=$d", $devName, 1, "col1"; } $row++; my ($allSets, $cmdlist, $txt) = FW_devState($d, $rf); - pO ""; + FW_pO ""; if($cmdlist) { foreach my $cmd (split(":", $cmdlist)) { - pH "cmd.$d=set $d $cmd$rf", ReplaceEventMap($d,$cmd,1), 1, "col3"; + FW_pH "cmd.$d=set $d $cmd$rf", ReplaceEventMap($d,$cmd,1), 1, "col3"; } } elsif($allSets =~ m/ desired-temp /) { @@ -885,7 +885,7 @@ FW_showRoom() shift(@tv); # 5.0 is not valid $txt = int($txt*20)/$txt if($txt =~ m/^[0-9].$/); - pO ""; + FW_pO ""; } - pO "
$devName
$devName
$txt"; + FW_pO "$txt"; if(!$FW_ss) { - pO "". + FW_pO "". FW_hidden("arg.$d", "desired-temp") . FW_hidden("dev.$d", $d) . FW_select("val.$d", \@tv, ReadingsVal($d, "desired-temp", $txt)) . @@ -897,12 +897,12 @@ FW_showRoom() } } - pO "
"; - pO "
"; + FW_pO "

"; + FW_pO "
"; # Now the weblinks my $buttons = 1; @@ -914,8 +914,8 @@ FW_showRoom() $buttons = FW_showWeblink($d, $defs{$d}{LINK}, $defs{$d}{WLTYPE}, $buttons); } - pO "
"; - pO "
"; + FW_pO ""; + FW_pO ""; } ################# @@ -953,7 +953,7 @@ FW_logWrapper($) $path = AttrVal($d,"archivedir","") . "/$file" if(!-f $path); if(!open(FH, $path)) { - pO "
$path: $!
"; + FW_pO "
$path: $!
"; return; } binmode (FH); # necessary for Windows @@ -962,37 +962,37 @@ FW_logWrapper($) $cnt =~ s//>/g; - pO "
"; - pO "
" if($FW_ss); - pO "
$cnt
"; - pO "
" if($FW_ss); - pO "
"; + FW_pO "
"; + FW_pO "
" if($FW_ss); + FW_pO "
$cnt
"; + FW_pO "
" if($FW_ss); + FW_pO "
"; } else { - pO "
"; - pO "
"; + FW_pO "
"; + FW_pO "
"; FW_zoomLink("cmd=$cmd;zoom=-1", "Zoom-in.png", "zoom in"); FW_zoomLink("cmd=$cmd;zoom=1", "Zoom-out.png","zoom out"); FW_zoomLink("cmd=$cmd;off=-1", "Prev.png", "prev"); FW_zoomLink("cmd=$cmd;off=1", "Next.png", "next"); - pO ""; + FW_pO "
"; - pO ""; + FW_pO ""; - pO "
"; + FW_pO ""; my $wl = "&pos=" . join(";", map {"$_=$FW_pos{$_}"} keys %FW_pos); my $arg = "$FW_ME?cmd=showlog undef $d $type $file$wl"; if(AttrVal($d,"plotmode",$FW_plotmode) eq "SVG") { my ($w, $h) = split(",", AttrVal($d,"plotsize",$FW_plotsize)); - pO "\n"; } else { - pO ""; + FW_pO ""; } - pO "
"; - pH "cmd=toweblink $d:$type:$file", "Convert to weblink"; - pO "
"; - pO ""; + FW_pO "
"; + FW_pH "cmd=toweblink $d:$type:$file", "Convert to weblink"; + FW_pO "
"; + FW_pO "
"; } } @@ -1092,9 +1092,9 @@ FW_showLog($) if($pm =~ m/SVG/) { # FW_fatal for SVG: $FW_RETTYPE = "image/svg+xml"; - pO ''; - pO ''.$msg.''; - pO ''; + FW_pO ''; + FW_pO ''.$msg.''; + FW_pO ''; return; } else { @@ -1143,7 +1143,7 @@ FW_showLog($) my ($f,$t)=($FW_devs{$d}{from}, $FW_devs{$d}{to}); my $oll = $attr{global}{verbose}; $attr{global}{verbose} = 0; # Else the filenames will be Log'ged - my @path = split(" ", fC("get $d $file $tmpfile $f $t " . + my @path = split(" ", FW_fC("get $d $file $tmpfile $f $t " . join(" ", @{$flog}))); $attr{global}{verbose} = $oll; @@ -1171,7 +1171,7 @@ FW_showLog($) $FW_RETTYPE = "image/png"; open(FH, "$tmpfile.png"); # read in the result and send it binmode (FH); # necessary for Windows - pO join("", ); + FW_pO join("", ); close(FH); unlink("$tmpfile.png"); @@ -1189,7 +1189,7 @@ FW_showLog($) $ret = CommandReload(undef, "98_SVG"); Log 0, $ret if($ret); } - $ret = fC("get $d $file INT $f $t " . join(" ", @{$flog})); + $ret = FW_fC("get $d $file INT $f $t " . join(" ", @{$flog})); ($cfg, $plot) = FW_substcfg(1, $wl, $cfg, $plot, $file, ""); SVG_render($wl, $f, $t, $cfg, $internal_data, $plot, $FW_wname); $FW_RETTYPE = "image/svg+xml"; @@ -1203,7 +1203,7 @@ sub FW_fatal($) { my ($msg) = @_; - pO "$msg"; + FW_pO "$msg"; } ################## @@ -1302,8 +1302,8 @@ FW_zoomLink($$$) } - pO "  "; - pHPlain "$cmd", "\"$alt\""; } @@ -1419,38 +1419,38 @@ FW_style($$) # push(@fl, ""); # push(@fl, FW_fileList("$FW_dir/.*html")); - pO $start; - pO "$msg

" if($msg); - pO ""; + FW_pO $start; + FW_pO "$msg

" if($msg); + FW_pO "
"; my $row = 0; foreach my $file (@fl) { - pO ""; + FW_pO ""; if($file eq "") { - pO ""; + FW_pO ""; } else { - pH "cmd=style edit $file", $file, 1; + FW_pH "cmd=style edit $file", $file, 1; } - pO ""; + FW_pO ""; $row = ($row+1)%2; } - pO "


$end"; + FW_pO "$end"; } elsif($a[1] eq "select") { my @fl = FW_fileList("$FW_dir/.*style.css"); - pO "$start"; + FW_pO "$start
"; my $row = 0; foreach my $file (@fl) { next if($file =~ m/(svg_|smallscreen|touchpad)style.css/); $file =~ s/style.css//; $file = "Default" if($file eq ""); - pO ""; - pH "cmd=style set $file", "$file", 1; - pO ""; + FW_pO ""; + FW_pH "cmd=style set $file", "$file", 1; + FW_pO ""; $row = ($row+1)%2; } - pO "
$end"; + FW_pO "$end"; } elsif($a[1] eq "set") { if($a[2] eq "Default") { @@ -1458,20 +1458,20 @@ FW_style($$) } else { $attr{$FW_wname}{stylesheetPrefix} = $a[2]; } - pO "${start}Reload the page in the browser.$end"; + FW_pO "${start}Reload the page in the browser.$end"; } elsif($a[1] eq "examples") { my @fl = FW_fileList("$FW_dir/example.*"); - pO "$start"; + FW_pO "$start
"; my $row = 0; foreach my $file (@fl) { - pO ""; - pO ""; - pO ""; + FW_pO ""; + FW_pO ""; + FW_pO ""; $row = ($row+1)%2; } - pO "
$file
$file
$end"; + FW_pO "$end"; } elsif($a[1] eq "edit") { @@ -1479,26 +1479,26 @@ FW_style($$) my $f = ($a[2] eq "fhem.cfg" ? $attr{global}{configfile} : "$FW_dir/$a[2]"); if(!open(FH, $f)) { - pO "$f: $!"; + FW_pO "$f: $!"; return; } my $data = join("", ); close(FH); my $ncols = $FW_ss ? 40 : 80; - pO "
"; - pO "
"; + FW_pO "
"; + FW_pO ""; $f =~ s,^.*/,,; - pO FW_submit("save", "Save $f"); - pO "  "; - pO FW_submit("saveAs", "Save as"); - pO FW_textfield("saveName", 30); - pO "

"; - pO FW_hidden("cmd", "style save $a[2]"); - pO ""; - pO ""; - pO "
"; + FW_pO ""; + FW_pO "
"; } elsif($a[1] eq "save") { my $fName = $a[2]; @@ -1508,7 +1508,7 @@ FW_style($$) $fName = ($fName eq "fhem.cfg" ? $attr{global}{configfile} : "$FW_dir/$fName"); if(!open(FH, ">$fName")) { - pO "$fName: $!"; + FW_pO "$fName: $!"; return; } $FW_data =~ s/\r//g if($^O !~ m/Win/); @@ -1516,7 +1516,7 @@ FW_style($$) print FH $FW_data; close(FH); FW_style("style list", "Saved the file $fName"); - fC("rereadcfg") if($fName eq $attr{global}{configfile}); + FW_fC("rereadcfg") if($fName eq $attr{global}{configfile}); } } @@ -1524,7 +1524,7 @@ FW_style($$) ################## # print (append) to output sub -pO(@) +FW_pO(@) { my $arg = shift; return if(!defined($arg)); @@ -1535,36 +1535,36 @@ pO(@) ################# # add href sub -pH(@) +FW_pH(@) { my ($link, $txt, $td, $class) = @_; - pO "" if($td); + FW_pO "" if($td); $link = ($link =~ m,^/,) ? $link : "$FW_ME?$link"; $class = "" if(!defined($class)); $class = " class=\"$class\"" if($class); if($FW_ss || $FW_tp) { # No pointer change if using onClick - pO "$txt
"; + FW_pO "$txt"; } else { - pO "$txt"; + FW_pO "$txt"; } - pO "" if($td); + FW_pO "" if($td); } sub -pHPlain(@) +FW_pHPlain(@) { my ($link, $txt, $td) = @_; - pO "" if($td); + FW_pO "" if($td); if($FW_ss || $FW_tp) { - pO "$txt"; + FW_pO "$txt"; } else { - pO "$txt"; + FW_pO "$txt"; } - pO "" if($td); + FW_pO "" if($td); } @@ -1581,7 +1581,7 @@ pF($@) ################## # fhem command sub -fC($) +FW_fC($) { my ($cmd) = @_; my $ret = AnalyzeCommand(undef, $cmd); @@ -1597,19 +1597,19 @@ FW_showWeblink($$$$) my $attr = AttrVal($d, "htmlattr", ""); if($t eq "link") { - pO "$d"; # no pH, want to open extra browser + FW_pO "$d"; # no FW_pH, want to open extra browser } elsif($t eq "image") { - pO "
"; - pO "
"; - pHPlain "detail=$d", $d; - pO "
"; + FW_pO "
"; + FW_pO "
"; + FW_pHPlain "detail=$d", $d; + FW_pO "
"; } elsif($t eq "iframe") { - pO ""; - pO "
"; - pHPlain "detail=$d", $d; - pO "
"; + FW_pO ""; + FW_pO "
"; + FW_pHPlain "detail=$d", $d; + FW_pO "
"; } elsif($t eq "fileplot") { @@ -1624,12 +1624,12 @@ FW_showWeblink($$$$) FW_zoomLink("off=-1", "Prev.png", "prev"); FW_zoomLink("off=1", "Next.png", "next"); $buttons = 0; - pO "
"; + FW_pO "
"; } my @va = split(":", $v, 3); if(@va != 3 || !$defs{$va[0]} || !$defs{$va[0]}{currentlogfile}) { - pO "Broken definition: $v
"; + FW_pO "Broken definition: $v
"; } else { if($va[2] eq "CURRENT") { @@ -1642,16 +1642,16 @@ FW_showWeblink($$$$) my $arg="$FW_ME?cmd=showlog $d $va[0] $va[1] $va[2]$wl"; if(AttrVal($d,"plotmode",$FW_plotmode) eq "SVG") { my ($w, $h) = split(",", AttrVal($d,"plotsize",$FW_plotsize)); - pO "\n"; } else { - pO ""; + FW_pO ""; } - pO "
"; - pHPlain "detail=$d", $d; - pO "
"; + FW_pO "
"; + FW_pHPlain "detail=$d", $d; + FW_pO "
"; } } @@ -1725,26 +1725,26 @@ FW_makeEdit($$$) "s.display = s.display=='none' ? 'block' : 'none';". "s=document.getElementById('disp').style;". "s.display = s.display=='none' ? 'block' : 'none';"; - pO ""; - pO "$n"; - pO ""; + FW_pO ""; + FW_pO "$n"; + FW_pO ""; $val =~ s,\\\n,\n,g; my $eval = $val; $eval = "
$eval
" if($eval =~ m/\n/); - pO ""; - pO "
$eval
"; - pO ""; + FW_pO ""; + FW_pO "
$eval
"; + FW_pO ""; - pO ""; - pO "
"; + FW_pO ""; + FW_pO "
"; my $cmd = "modify"; my $ncols = $FW_ss ? 30 : 60; - pO ""; - pO "
" . FW_submit("cmd.${cmd}$name", "$cmd $name"); - pO "
"; - pO ""; + FW_pO "
" . FW_submit("cmd.${cmd}$name", "$cmd $name"); + FW_pO "
"; + FW_pO ""; } sub @@ -1766,16 +1766,16 @@ FW_dumpFileLog($$$) pF "", ($row&1)?"odd":"even"; pF "
%s
", ($nr ? "" : $f); } - pH "cmd=logwrapper $d $lt $f", + FW_pH "cmd=logwrapper $d $lt $f", "
$name
", 1, "dval"; if(!$oneRow) { - pO ""; + FW_pO ""; $row++; } $nr++; } if($oneRow) { - pO ""; + FW_pO ""; $row++; } } diff --git a/fhem/webfrontend/pgm2/98_SVG.pm b/fhem/webfrontend/pgm2/98_SVG.pm index 89e28f0c4..19faf5162 100755 --- a/fhem/webfrontend/pgm2/98_SVG.pm +++ b/fhem/webfrontend/pgm2/98_SVG.pm @@ -54,48 +54,48 @@ SVG_render($$$$$$$) my ($w, $h) = ($ow-2*$x, $oh-2*$y); # Rect size # Html Header - pO ''; - pO ''; - pO ''; + FW_pO ''; + FW_pO ''; my $prf = AttrVal($FW_wname, "stylesheetPrefix", ""); - pO ""; + FW_pO "]]>"; if(open(FH, "$FW_dir/${prf}svg_defs.svg") || open(FH, "$FW_dir/svg_defs.svg")) { # gradient definitions - pO join("", ); + FW_pO join("", ); close(FH); } else { Log 0, "Can't open $FW_dir/svg_defs.svg" } # Background - pO ""; + FW_pO ""; # Rectangle - pO ""; my ($off1,$off2) = ($ow/2, 3*$y/4); my $title = ($conf{title} ? $conf{title} : " "); $title =~ s//>/g; - pO "$title"; # Copy and Paste labels, hidden by default - pO " "; - pO " "; @@ -104,13 +104,13 @@ SVG_render($$$$$$$) $t =~ s/"//g; if(!$SVG_ss) { ($off1,$off2) = (3*$th/4, $oh/2); - pO "$t"; $t = ($conf{y2label} ? $conf{y2label} : ""); $t =~ s/"//g; ($off1,$off2) = ($ow-$th/4, $oh/2); - pO "$t"; } @@ -138,7 +138,7 @@ SVG_render($$$$$$$) $desc = sprintf("%s: Min:%g Max:%g Last:%g", $t, $data{"min$j"}, $data{"max$j"}, $data{"currval$j"}); } - pO "$t"; @@ -195,7 +195,7 @@ SVG_render($$$$$$$) $dxp = $hdx[0]; if($dxp && int(@{$dxp}) < 2 && !$tosec) { # not enough data and no range... - pO ""; + FW_pO ""; return; } @@ -238,24 +238,24 @@ SVG_render($$$$$$$) for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $tstep) { $i = time_align($i,$aligntics); $off1 = int($x+($i-$fromsec)*$tmul); - pO ""; - pO ""; + FW_pO ""; + FW_pO ""; } # then the text and the grid $off1 = $x; $off2 = $y+$h+$th; $t = fmtTime($first_tag, $fromsec); - pO "$t"; + FW_pO "$t"; $initoffset = $step; $initoffset = int(($step/2)/86400)*86400 if($aligntext); for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $step) { $i = time_align($i,$aligntext); $off1 = int($x+($i-$fromsec)*$tmul); $t = fmtTime($tag, $i); - pO "$t"; - pO " "; + FW_pO " "; } @@ -313,10 +313,10 @@ SVG_render($$$$$$$) $tlabel =~ s/^"(.*)"$/$1/; $off2 = int($y+($ma-$tvalue)*$hmul); - pO ""; + FW_pO ""; $off2 += $th/4; my $align = ($axis eq "x1y1" ? " text-anchor=\"end\"" : ""); - pO " + FW_pO " $tlabel"; } @@ -324,16 +324,16 @@ SVG_render($$$$$$$) for(my $i = $mi; $i <= $ma; $i += $step) { $off2 = int($y+($ma-$i)*$hmul); - pO " "; + FW_pO " "; if($axis eq "x1y2") { my $o6 = $x+$w; - pO " " + FW_pO " " if($i > $mi && $i < $ma); } $off2 += $th/4; my $align = ($axis eq "x1y1" ? " text-anchor=\"end\"" : ""); my $txt = sprintf("%g", $i); - pO "$txt"; + FW_pO "$txt"; } } @@ -372,7 +372,7 @@ SVG_render($$$$$$$) $ly = $x1; $ly = $y1; $ret = sprintf(" %d,%d %d,%d %d,%d %d,%d %d,%d", $x1-3,$y1, $x1,$y1-3, $x1+3,$y1, $x1,$y1+3, $x1-3,$y1); - pO ""; + FW_pO ""; } } elsif($type[$idx] eq "steps" || $type[$idx] eq "fsteps" ) { @@ -394,7 +394,7 @@ SVG_render($$$$$$$) } } } - pO ""; + FW_pO ""; } elsif($type[$idx] eq "histeps" ) { if(@{$dxp} == 1) { @@ -411,7 +411,7 @@ SVG_render($$$$$$$) $x1,$y1, ($x1+$x2)/2,$y1, ($x1+$x2)/2,$y2, $x2,$y2); } } - pO ""; + FW_pO ""; } else { # lines and everything else foreach my $i (0..int(@{$dxp})-1) { @@ -422,7 +422,7 @@ SVG_render($$$$$$$) $ret .= sprintf(" %d,%d", $x1, $y1); } - pO ""; @@ -430,7 +430,7 @@ SVG_render($$$$$$$) } } - pO ""; + FW_pO ""; } sub