From c488da76f5edf255bacffa2c779ba906d04960ac Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Thu, 25 Mar 2021 16:10:28 +0000 Subject: [PATCH] 98_SVG.pm: new label alignments by (95248) git-svn-id: https://svn.fhem.de/fhem/trunk@24084 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_SVG.pm | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/fhem/FHEM/98_SVG.pm b/fhem/FHEM/98_SVG.pm index ed7d42720..21321a670 100644 --- a/fhem/FHEM/98_SVG.pm +++ b/fhem/FHEM/98_SVG.pm @@ -1651,7 +1651,7 @@ SVG_render($$$$$$$$$$) } $tstep = $step; $first_tag=""; $tag=". 6"; - $aligntext = 2; $aligntics = 2; + $aligntext = 3; $aligntics = 3; } my $barwidth = $tstep; @@ -1674,12 +1674,13 @@ SVG_render($$$$$$$$$$) } } else { # times - $initoffset = int(($tstep/2)/86400)*86400 if($aligntics == 1); - for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $tstep) { + for(my $i = $fromsec; $i < $tosec; $i += $tstep) { $i = SVG_time_align($i,$aligntics); $off1 = int($x+($i-$fromsec)*$tmul); - SVG_pO ""; - SVG_pO ""; + if($off1 > $x+8 && $off1 < $x+$w-8) { + SVG_pO ""; + SVG_pO ""; + } } } @@ -1731,14 +1732,25 @@ SVG_render($$$$$$$$$$) } } else { # times - $initoffset = 86400 if($aligntext == 1); - for(my $i = $fromsec+$initoffset; $i < $tosec; $i += $step) { + for(my $i = $fromsec; $i < $tosec; $i += $step) { $i = SVG_time_align($i,$aligntext); - $off1 = int($x+($i-$fromsec)*$tmul); + if($aligntext >= 2) { # center month and year + $off1 = int($x+($i-$fromsec+$step/2)*$tmul); + } else { + $off1 = int($x+($i-$fromsec)*$tmul); + } $t = SVG_fmtTime($tag, $i); - SVG_pO "$t"; - SVG_pO " "; + if($off1 == $x) { + SVG_pO "$t"; + } elsif ($off1 < $x+$w-8) { + SVG_pO "$t"; + } + $off1 = int($x+($i-$fromsec)*$tmul); + if($off1 > $x+8 && $off1 < $x+$w-8) { + SVG_pO " "; + } } } @@ -2374,11 +2386,12 @@ sub SVG_time_align($$) { my ($v,$align) = @_; + my $wl = $FW_webArgs{detail}; return $v if(!$align); if($align == 1) { # Look for the beginning of the week for(;;) { my @a = localtime($v); - return $v if($a[6] == 0); + return $v if($a[6] == SVG_Attr($FW_wname, $wl, "plotWeekStartDay", 0)); $v += 86400; } } @@ -2389,6 +2402,13 @@ SVG_time_align($$) $v += 86400; } } + if($align == 3) { # Look for the beginning of the year + for(;;) { + my @a = localtime($v); + return $v if($a[7] == 0); + $v += 86400; + } + } } sub