mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-03 16:56:54 +00:00
iPhone optimizations
git-svn-id: https://svn.fhem.de/fhem/trunk@714 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
345e141400
commit
6caf00a5dc
@ -27,6 +27,7 @@ sub FW_roomOverview($);
|
|||||||
sub FW_fatal($);
|
sub FW_fatal($);
|
||||||
sub pF($@);
|
sub pF($@);
|
||||||
sub pO(@);
|
sub pO(@);
|
||||||
|
sub pH(@);
|
||||||
sub FW_AnswerCall($);
|
sub FW_AnswerCall($);
|
||||||
sub FW_zoomLink($$$);
|
sub FW_zoomLink($$$);
|
||||||
sub FW_calcWeblink($$);
|
sub FW_calcWeblink($$);
|
||||||
@ -351,14 +352,19 @@ FW_AnswerCall($)
|
|||||||
my $t = FW_getAttr("global", "title", "Home, Sweet Home");
|
my $t = FW_getAttr("global", "title", "Home, Sweet Home");
|
||||||
|
|
||||||
pO '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
|
pO '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
|
||||||
|
|
||||||
pO '<html xmlns="http://www.w3.org/1999/xhtml">';
|
pO '<html xmlns="http://www.w3.org/1999/xhtml">';
|
||||||
pO "<head>\n<title>$t</title>";
|
pO "<head>\n<title>$t</title>";
|
||||||
|
|
||||||
|
if($__ss) {
|
||||||
|
pO '<link rel="apple-touch-icon-precomposed" href="'.$__ME.'/fhemicon.png"/>';
|
||||||
|
pO '<meta name="apple-mobile-web-app-capable" content="yes"/>';
|
||||||
|
pO '<meta name="viewport" content="width=device-width"/>';
|
||||||
|
}
|
||||||
|
|
||||||
my $rf = FW_getAttr($__wname, "refresh", "");
|
my $rf = FW_getAttr($__wname, "refresh", "");
|
||||||
pO "<meta http-equiv=\"refresh\" content=\"$rf\">" if($rf);
|
pO "<meta http-equiv=\"refresh\" content=\"$rf\">" if($rf);
|
||||||
my $stylecss = ($__ss ? "style_smallscreen.css" : "style.css");
|
my $stylecss = ($__ss ? "style_smallscreen.css" : "style.css");
|
||||||
pO "<link href=\"$__ME/$stylecss\" rel=\"stylesheet\"/>";
|
pO "<link href=\"$__ME/$stylecss\" rel=\"stylesheet\"/>";
|
||||||
pO "<meta name=\"viewport\" content=\"width=device-width\"/>" if($__ss);
|
|
||||||
pO "<script type=\"text/javascript\" src=\"$__ME/svg.js\"></script>"
|
pO "<script type=\"text/javascript\" src=\"$__ME/svg.js\"></script>"
|
||||||
if($__plotmode eq "SVG");
|
if($__plotmode eq "SVG");
|
||||||
pO "</head>\n<body name=\"$t\">";
|
pO "</head>\n<body name=\"$t\">";
|
||||||
@ -483,7 +489,7 @@ FW_makeTable($$$$$$$$)
|
|||||||
pF " <tr class=\"%s\">", $row?"odd":"even";
|
pF " <tr class=\"%s\">", $row?"odd":"even";
|
||||||
$row = ($row+1)%2;
|
$row = ($row+1)%2;
|
||||||
if($makelink && $__reldoc) {
|
if($makelink && $__reldoc) {
|
||||||
pO "<td><a href=\"$__reldoc#$v\">$v</a></td>";
|
pO "<td><a href=\"$__reldoc#$v\">$v</a></td>"; # no pH, want to open extra browser
|
||||||
} else {
|
} else {
|
||||||
pO "<td>$v</td>";
|
pO "<td>$v</td>";
|
||||||
}
|
}
|
||||||
@ -499,7 +505,7 @@ FW_makeTable($$$$$$$$)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pO "<td><a href=\"$__ME?cmd.$d=$cmd $d $v&detail=$d\">$cmd</a></td>"
|
pH "cmd.$d=$cmd $d $v&detail=$d", $cmd, 1
|
||||||
if($cmd);
|
if($cmd);
|
||||||
|
|
||||||
pO "</tr>";
|
pO "</tr>";
|
||||||
@ -533,12 +539,12 @@ FW_showArchive($)
|
|||||||
pF " <tr class=\"%s\"><td>$f</td>", $row?"odd":"even";
|
pF " <tr class=\"%s\"><td>$f</td>", $row?"odd":"even";
|
||||||
$row = ($row+1)%2;
|
$row = ($row+1)%2;
|
||||||
if(!defined($l)) {
|
if(!defined($l)) {
|
||||||
pO "<td><a href=\"$__ME?cmd=logwrapper $d text $f\">text</a></td>";
|
pH "cmd=logwrapper $d text $f", "text", 1;
|
||||||
} else {
|
} else {
|
||||||
foreach my $ln (split(",", $l)) {
|
foreach my $ln (split(",", $l)) {
|
||||||
my ($lt, $name) = split(":", $ln);
|
my ($lt, $name) = split(":", $ln);
|
||||||
$name = $lt if(!$name);
|
$name = $lt if(!$name);
|
||||||
pO "<td><a href=\"$__ME?cmd=logwrapper $d $lt $f\">$name</a></td>";
|
pH "cmd=logwrapper $d $lt $f", $name, 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pO "</tr>";
|
pO "</tr>";
|
||||||
@ -564,14 +570,16 @@ FW_doDetail($)
|
|||||||
|
|
||||||
pO "<div id=\"content\">";
|
pO "<div id=\"content\">";
|
||||||
pO "<table><tr><td>";
|
pO "<table><tr><td>";
|
||||||
pO "<a href=\"$__ME?cmd=delete $d\">Delete $d</a>";
|
pH "cmd=delete $d", "Delete $d";
|
||||||
|
|
||||||
my $pgm = "Javascript:" .
|
my $pgm = "Javascript:" .
|
||||||
"s=document.getElementById('edit').style;".
|
"s=document.getElementById('edit').style;".
|
||||||
"if(s.display=='none') s.display='block'; else s.display='none';".
|
"if(s.display=='none') s.display='block'; else s.display='none';".
|
||||||
"s=document.getElementById('disp').style;".
|
"s=document.getElementById('disp').style;".
|
||||||
"if(s.display=='none') s.display='block'; else s.display='none';";
|
"if(s.display=='none') s.display='block'; else s.display='none';";
|
||||||
pO "<a href=\"#top\" onClick=\"$pgm\">Modify $d</a>";
|
pO "<a onClick=\"$pgm\">Modify $d</a>";
|
||||||
|
|
||||||
|
pH "room=$__room", "Back:$__room" if($__ss);
|
||||||
|
|
||||||
pO "</td></tr><tr><td>";
|
pO "</td></tr><tr><td>";
|
||||||
FW_makeTable($d, $t,
|
FW_makeTable($d, $t,
|
||||||
@ -603,13 +611,15 @@ FW_roomOverview($)
|
|||||||
# HEADER
|
# HEADER
|
||||||
pO "<form method=\"get\" action=\"$__ME\">";
|
pO "<form method=\"get\" action=\"$__ME\">";
|
||||||
pO "<div id=\"hdr\">";
|
pO "<div id=\"hdr\">";
|
||||||
pO "<table><tr><td>";
|
pO '<table border="0"><tr><td style="padding:0">';
|
||||||
pO FW_textfield("cmd", $__ss ? 20 : 40);
|
my $tf_done;
|
||||||
if($__room) {
|
if($__room) {
|
||||||
pO FW_hidden("room", "$__room");
|
pO FW_hidden("room", "$__room");
|
||||||
# plots navigation buttons
|
# plots navigation buttons
|
||||||
if(!$__detail || $defs{$__detail}{TYPE} eq "weblink") {
|
if(!$__detail || $defs{$__detail}{TYPE} eq "weblink") {
|
||||||
if(FW_calcWeblink(undef,undef)) {
|
if(FW_calcWeblink(undef,undef)) {
|
||||||
|
pO FW_textfield("cmd", $__ss ? 20 : 40);
|
||||||
|
$tf_done = 1;
|
||||||
pO "</td><td>";
|
pO "</td><td>";
|
||||||
pO " ";
|
pO " ";
|
||||||
FW_zoomLink("zoom=-1", "Zoom-in.png", "zoom in");
|
FW_zoomLink("zoom=-1", "Zoom-in.png", "zoom in");
|
||||||
@ -619,14 +629,15 @@ FW_roomOverview($)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pO FW_textfield("cmd", $__ss ? 28 : 40) if(!$tf_done);
|
||||||
pO "</td></tr></table>";
|
pO "</td></tr></table>";
|
||||||
pO "</div>";
|
pO "</div>";
|
||||||
pO "</form>";
|
pO "</form>";
|
||||||
|
|
||||||
##############
|
##############
|
||||||
# LOGO
|
# LOGO
|
||||||
my $logofile = ($__ss ? "fhem_smallscreen.png" : "fhem.png");
|
my $logo = $__ss ? "fhem_smallscreen.png" : "fhem.png";
|
||||||
pO "<div id=\"logo\"><img src=\"$__ME/$logofile\"></div>";
|
pO "<div id=\"logo\"><img src=\"$__ME/$logo\"></div>";
|
||||||
|
|
||||||
##############
|
##############
|
||||||
# MENU
|
# MENU
|
||||||
@ -774,7 +785,7 @@ FW_showRoom()
|
|||||||
}
|
}
|
||||||
$v = "" if(!defined($v));
|
$v = "" if(!defined($v));
|
||||||
|
|
||||||
pO "<td><a href=\"$__ME?detail=$d\">$d</a></td>";
|
pH "detail=$d", $d, 1;
|
||||||
if($iname) {
|
if($iname) {
|
||||||
pO "<td align=\"center\"><img src=\"$__ME/icons/$iname\" ".
|
pO "<td align=\"center\"><img src=\"$__ME/icons/$iname\" ".
|
||||||
"alt=\"$v\"/></td>";
|
"alt=\"$v\"/></td>";
|
||||||
@ -782,8 +793,8 @@ FW_showRoom()
|
|||||||
pO "<td align=\"center\">$v</td>";
|
pO "<td align=\"center\">$v</td>";
|
||||||
}
|
}
|
||||||
if(getAllSets($d)) {
|
if(getAllSets($d)) {
|
||||||
pO "<td><a href=\"$__ME?cmd.$d=set $d on$rf\">on</a></td>";
|
pH "cmd.$d=set $d on$rf", "on", 1;
|
||||||
pO "<td><a href=\"$__ME?cmd.$d=set $d off$rf\">off</a></td>";
|
pH "cmd.$d=set $d off$rf", "off", 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
} elsif($type eq "FHT") {
|
} elsif($type eq "FHT") {
|
||||||
@ -791,7 +802,7 @@ FW_showRoom()
|
|||||||
$v = ReadingsVal($d, "measured-temp", "");
|
$v = ReadingsVal($d, "measured-temp", "");
|
||||||
|
|
||||||
$v =~ s/ .*//;
|
$v =~ s/ .*//;
|
||||||
pO "<td><a href=\"$__ME?detail=$d\">$d</a></td>";
|
pH "detail=$d", $d, 1;
|
||||||
pO "<td align=\"center\">$v°</td>";
|
pO "<td align=\"center\">$v°</td>";
|
||||||
|
|
||||||
$v = sprintf("%2.1f", int(2*$v)/2) if($v =~ m/[0-9.-]/);
|
$v = sprintf("%2.1f", int(2*$v)/2) if($v =~ m/[0-9.-]/);
|
||||||
@ -807,9 +818,10 @@ FW_showRoom()
|
|||||||
|
|
||||||
} elsif($type eq "FileLog") {
|
} elsif($type eq "FileLog") {
|
||||||
|
|
||||||
pO "<td><a href=\"$__ME?detail=$d\">$d</a></td><td>$v</td>";
|
pH "detail=$d", $d, 1;
|
||||||
|
pO "<td>$v</td>";
|
||||||
if(defined(FW_getAttr($d, "archivedir", undef))) {
|
if(defined(FW_getAttr($d, "archivedir", undef))) {
|
||||||
pO "<td><a href=\"$__ME?cmd=showarchive $d\">archive</a></td>";
|
pH "cmd=showarchive $d", "archive", 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach my $f (FW_fileList($defs{$d}{logfile})) {
|
foreach my $f (FW_fileList($defs{$d}{logfile})) {
|
||||||
@ -819,7 +831,7 @@ FW_showRoom()
|
|||||||
foreach my $ln (split(",", FW_getAttr($d, "logtype", "text"))) {
|
foreach my $ln (split(",", FW_getAttr($d, "logtype", "text"))) {
|
||||||
my ($lt, $name) = split(":", $ln);
|
my ($lt, $name) = split(":", $ln);
|
||||||
$name = $lt if(!$name);
|
$name = $lt if(!$name);
|
||||||
pO "<td><a href=\"$__ME?cmd=logwrapper $d $lt $f\">$name</a></td>";
|
pH "cmd=logwrapper $d $lt $f", $name, 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -829,7 +841,8 @@ FW_showRoom()
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
pO "<td><a href=\"$__ME?detail=$d\">$d</a></td><td>$v</td>";
|
pH "detail=$d", $d, 1;
|
||||||
|
pO "<td>$v</td>";
|
||||||
|
|
||||||
}
|
}
|
||||||
pO " </tr>";
|
pO " </tr>";
|
||||||
@ -906,7 +919,8 @@ FW_logWrapper($)
|
|||||||
pO "<img src=\"$arg\"/>";
|
pO "<img src=\"$arg\"/>";
|
||||||
}
|
}
|
||||||
|
|
||||||
pO "<a href=\"$__ME?cmd=toweblink $d:$type:$file\"><br>Convert to weblink</a></td>";
|
pH "cmd=toweblink $d:$type:$file", "<br>Convert to weblink";
|
||||||
|
pO "</td>";
|
||||||
pO "</td></tr></table>";
|
pO "</td></tr></table>";
|
||||||
pO "</td></tr></table>";
|
pO "</td></tr></table>";
|
||||||
pO "</div>";
|
pO "</div>";
|
||||||
@ -1107,7 +1121,7 @@ FW_showLog($)
|
|||||||
}
|
}
|
||||||
$ret = fC("get $d $file INT $f $t " . join(" ", @{$flog}));
|
$ret = fC("get $d $file INT $f $t " . join(" ", @{$flog}));
|
||||||
($cfg, $plot) = FW_substcfg(1, $wl, $cfg, $plot, $file, "<OuT>");
|
($cfg, $plot) = FW_substcfg(1, $wl, $cfg, $plot, $file, "<OuT>");
|
||||||
SVG_render($wl, $f, $t, $cfg, $internal_data, $plot);
|
SVG_render($wl, $f, $t, $cfg, $internal_data, $plot, $__ss);
|
||||||
$__RETTYPE = "image/svg+xml";
|
$__RETTYPE = "image/svg+xml";
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1168,8 +1182,9 @@ FW_makeEdit($$$$)
|
|||||||
pO "<div id=\"edit\" style=\"display:none\"><form>";
|
pO "<div id=\"edit\" style=\"display:none\"><form>";
|
||||||
my $eval = $val;
|
my $eval = $val;
|
||||||
$eval =~ s,\\\n,\n,g;
|
$eval =~ s,\\\n,\n,g;
|
||||||
|
my $ncols = $__ss ? 40 : 60;
|
||||||
|
|
||||||
pO "<textarea name=\"val.${cmd}$name\" cols=\"60\" rows=\"10\">".
|
pO "<textarea name=\"val.${cmd}$name\" cols=\"$ncols\" rows=\"10\">".
|
||||||
"$eval</textarea>";
|
"$eval</textarea>";
|
||||||
pO "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
|
pO "<br>" . FW_submit("cmd.${cmd}$name", "$cmd $name");
|
||||||
pO "</form></div>";
|
pO "</form></div>";
|
||||||
@ -1234,9 +1249,8 @@ FW_zoomLink($$$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pO "<a href=\"$__ME?$cmd\">";
|
pH "$cmd", "<img style=\"border-color:transparent\" alt=\"$alt\" ".
|
||||||
pO "<img style=\"border-color:transparent\" alt=\"$alt\" ".
|
"src=\"$__ME/icons/$img\"/>";
|
||||||
"src=\"$__ME/icons/$img\"/></a>";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##################
|
##################
|
||||||
@ -1371,7 +1385,8 @@ FW_style($$)
|
|||||||
my $row = 0;
|
my $row = 0;
|
||||||
foreach my $file (@fl) {
|
foreach my $file (@fl) {
|
||||||
pO "<tr class=\"" . ($row?"odd":"even") . "\">";
|
pO "<tr class=\"" . ($row?"odd":"even") . "\">";
|
||||||
pO "<td><a href=\"$__ME?cmd=style edit $file\">$file</a></td></tr>";
|
pH "cmd=style edit $file", $file, 1;
|
||||||
|
pO "</tr>";
|
||||||
$row = ($row+1)%2;
|
$row = ($row+1)%2;
|
||||||
}
|
}
|
||||||
pO " </table>";
|
pO " </table>";
|
||||||
@ -1388,7 +1403,8 @@ FW_style($$)
|
|||||||
my $row = 0;
|
my $row = 0;
|
||||||
foreach my $file (@fl) {
|
foreach my $file (@fl) {
|
||||||
pO "<tr class=\"" . ($row?"odd":"even") . "\">";
|
pO "<tr class=\"" . ($row?"odd":"even") . "\">";
|
||||||
pO "<td><a href=\"$__ME/$file\">$file</a></td></tr>";
|
pH $file, $file, 1;
|
||||||
|
pO "</tr>";
|
||||||
$row = ($row+1)%2;
|
$row = ($row+1)%2;
|
||||||
}
|
}
|
||||||
pO " </table>";
|
pO " </table>";
|
||||||
@ -1446,6 +1462,22 @@ pO(@)
|
|||||||
$__RET .= "\n";
|
$__RET .= "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#################
|
||||||
|
# add href
|
||||||
|
sub
|
||||||
|
pH(@)
|
||||||
|
{
|
||||||
|
my ($link, $txt, $td) = @_;
|
||||||
|
|
||||||
|
pO "<td>" if($td);
|
||||||
|
if($__ss) {
|
||||||
|
pO "<a onClick=\"location.href='$__ME?$link'\">$txt</a>";
|
||||||
|
} else {
|
||||||
|
pO "<a href=\"$__ME?$link\">$txt</a>";
|
||||||
|
}
|
||||||
|
pO "</td>" if($td);
|
||||||
|
}
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# print formatted
|
# print formatted
|
||||||
sub
|
sub
|
||||||
@ -1482,10 +1514,12 @@ FW_showWeblink($$$)
|
|||||||
my ($d, $v, $t) = @_;
|
my ($d, $v, $t) = @_;
|
||||||
|
|
||||||
if($t eq "link") {
|
if($t eq "link") {
|
||||||
pO "<td><a href=\"$v\">$d</a></td>";
|
pH $v, $d, 1;
|
||||||
|
|
||||||
} elsif($t eq "image") {
|
} elsif($t eq "image") {
|
||||||
pO "<td><img src=\"$v\"><br><a href=\"$__ME?detail=$d\">$d</a></td>";
|
pO "<td><img src=\"$v\"><br>";
|
||||||
|
pH "detail=$d", $d;
|
||||||
|
pO "</td>";
|
||||||
|
|
||||||
} elsif($t eq "fileplot") {
|
} elsif($t eq "fileplot") {
|
||||||
my @va = split(":", $v, 3);
|
my @va = split(":", $v, 3);
|
||||||
@ -1498,7 +1532,8 @@ FW_showWeblink($$$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($__ss) {
|
if($__ss) {
|
||||||
pO "<a href=\"$__ME?detail=$d\">$d</a><br>"
|
pH "detail=$d", $d;
|
||||||
|
pO "<br>";
|
||||||
} else {
|
} else {
|
||||||
pO "<table><tr><td>";
|
pO "<table><tr><td>";
|
||||||
}
|
}
|
||||||
@ -1518,7 +1553,9 @@ FW_showWeblink($$$)
|
|||||||
if($__ss) {
|
if($__ss) {
|
||||||
pO "<br>";
|
pO "<br>";
|
||||||
} else {
|
} else {
|
||||||
pO "</td><td><a href=\"$__ME?detail=$d\">$d</a></td></tr></table>";
|
pO "</td>";
|
||||||
|
pH "detail=$d", $d, 1;
|
||||||
|
pO "</tr></table>";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ use POSIX;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
sub SVG_render($$$$$$);
|
sub SVG_render($$$$$$$);
|
||||||
sub time_to_sec($);
|
sub time_to_sec($);
|
||||||
sub fmtTime($$);
|
sub fmtTime($$);
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ SVG_Initialize($)
|
|||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
sub
|
sub
|
||||||
SVG_render($$$$$$)
|
SVG_render($$$$$$$)
|
||||||
{
|
{
|
||||||
my $name = shift; # e.g. wl_8
|
my $name = shift; # e.g. wl_8
|
||||||
my $from = shift; # e.g. 2008-01-01
|
my $from = shift; # e.g. 2008-01-01
|
||||||
@ -33,11 +33,12 @@ SVG_render($$$$$$)
|
|||||||
my $confp = shift; # lines from the .gplot file, w/o FileLog and plot
|
my $confp = shift; # lines from the .gplot file, w/o FileLog and plot
|
||||||
my $dp = shift; # pointer to data (one string)
|
my $dp = shift; # pointer to data (one string)
|
||||||
my $plot = shift; # Plot lines from the .gplot file
|
my $plot = shift; # Plot lines from the .gplot file
|
||||||
|
my $__ss = shift; # small screen
|
||||||
|
|
||||||
return "" if(!defined($dp));
|
return "" if(!defined($dp));
|
||||||
|
|
||||||
my $th = 16; # "Font" height
|
my $th = 16; # "Font" height
|
||||||
my ($x, $y) = (3*$th, 1.2*$th); # Rect offset
|
my ($x, $y) = (($__ss ? 2 : 3)*$th, 1.2*$th); # Rect offset
|
||||||
my %conf; # gnuplot file settings
|
my %conf; # gnuplot file settings
|
||||||
|
|
||||||
# Convert the configuration to a "readable" form -> array to hash
|
# Convert the configuration to a "readable" form -> array to hash
|
||||||
@ -97,6 +98,7 @@ SVG_render($$$$$$)
|
|||||||
|
|
||||||
my $t = ($conf{ylabel} ? $conf{ylabel} : "");
|
my $t = ($conf{ylabel} ? $conf{ylabel} : "");
|
||||||
$t =~ s/"//g;
|
$t =~ s/"//g;
|
||||||
|
if(!$__ss) {
|
||||||
($off1,$off2) = (3*$th/4, $oh/2);
|
($off1,$off2) = (3*$th/4, $oh/2);
|
||||||
pO "<text x=\"$off1\" y=\"$off2\" text-anchor=\"middle\" " .
|
pO "<text x=\"$off1\" y=\"$off2\" text-anchor=\"middle\" " .
|
||||||
"class=\"ylabel\" transform=\"rotate(270,$off1,$off2)\">$t</text>";
|
"class=\"ylabel\" transform=\"rotate(270,$off1,$off2)\">$t</text>";
|
||||||
@ -106,6 +108,7 @@ SVG_render($$$$$$)
|
|||||||
($off1,$off2) = ($ow-$th/4, $oh/2);
|
($off1,$off2) = ($ow-$th/4, $oh/2);
|
||||||
pO "<text x=\"$off1\" y=\"$off2\" text-anchor=\"middle\" " .
|
pO "<text x=\"$off1\" y=\"$off2\" text-anchor=\"middle\" " .
|
||||||
"class=\"y2label\" transform=\"rotate(270,$off1,$off2)\">$t</text>";
|
"class=\"y2label\" transform=\"rotate(270,$off1,$off2)\">$t</text>";
|
||||||
|
}
|
||||||
|
|
||||||
# Digest axes/title/type from $plot (gnuplot) and draw the line-titles
|
# Digest axes/title/type from $plot (gnuplot) and draw the line-titles
|
||||||
my (@axes,@ltitle,@type);
|
my (@axes,@ltitle,@type);
|
||||||
|
BIN
fhem/webfrontend/pgm2/fhemicon.png
Normal file
BIN
fhem/webfrontend/pgm2/fhemicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -3,6 +3,7 @@ body { background-color: #FFFFE7;}
|
|||||||
#menu { position:absolute; top:10px; left:85px; }
|
#menu { position:absolute; top:10px; left:85px; }
|
||||||
#hdr { position:absolute; top:40px; left:85px; }
|
#hdr { position:absolute; top:40px; left:85px; }
|
||||||
#content { position:absolute; top:85px; left:10px; }
|
#content { position:absolute; top:85px; left:10px; }
|
||||||
|
|
||||||
a { color: #278727; }
|
a { color: #278727; }
|
||||||
|
|
||||||
table.block { border:1px solid gray; width: 100%; background: #F8F8E0; }
|
table.block { border:1px solid gray; width: 100%; background: #F8F8E0; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user