From e0de1d35d69b9c0a7006b21d82a98d9f175ec8f0 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 26 Nov 2011 11:19:39 +0000 Subject: [PATCH] Styling is now configurable git-svn-id: https://svn.fhem.de/fhem/trunk@1120 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/webfrontend/pgm2/01_FHEMWEB.pm | 73 +++++++++++------- fhem/webfrontend/pgm2/98_SVG.pm | 10 ++- fhem/webfrontend/pgm2/darklogo.png | Bin 0 -> 84323 bytes fhem/webfrontend/pgm2/darkstyle.css | 36 +++++++++ fhem/webfrontend/pgm2/darksvg_defs.svg | 7 ++ fhem/webfrontend/pgm2/darksvg_style.css | 32 ++++++++ ...e_smallscreen.css => smallscreenstyle.css} | 14 +++- fhem/webfrontend/pgm2/style.css | 12 ++- .../{style_touchpad.css => touchpadstyle.css} | 3 +- 9 files changed, 151 insertions(+), 36 deletions(-) create mode 100644 fhem/webfrontend/pgm2/darklogo.png create mode 100644 fhem/webfrontend/pgm2/darkstyle.css create mode 100644 fhem/webfrontend/pgm2/darksvg_defs.svg create mode 100644 fhem/webfrontend/pgm2/darksvg_style.css rename fhem/webfrontend/pgm2/{style_smallscreen.css => smallscreenstyle.css} (76%) rename fhem/webfrontend/pgm2/{style_touchpad.css => touchpadstyle.css} (88%) diff --git a/fhem/webfrontend/pgm2/01_FHEMWEB.pm b/fhem/webfrontend/pgm2/01_FHEMWEB.pm index ba7d82e75..b59eea099 100755 --- a/fhem/webfrontend/pgm2/01_FHEMWEB.pm +++ b/fhem/webfrontend/pgm2/01_FHEMWEB.pm @@ -87,7 +87,7 @@ FHEMWEB_Initialize($) $hash->{AttrList}= "loglevel:0,1,2,3,4,5,6 webname fwmodpath fwcompress " . "plotmode:gnuplot,gnuplot-scroll,SVG plotsize refresh " . "touchpad smallscreen plotfork basicAuth basicAuthMsg ". - "stylesheet hiddenroom HTTPS longpoll"; + "stylesheetPrefix hiddenroom HTTPS longpoll"; ############### # Initialize internal structures @@ -334,7 +334,12 @@ FW_AnswerCall($) return 1; } elsif($arg =~ m,^$FW_ME/(.*).css,) { - open(FH, "$FW_dir/$1.css") || return 0; + my $cssName = $1; + my $prf = AttrVal($FW_wname, "stylesheetPrefix", ""); + $prf = "smallscreen" if(!$prf && $FW_ss); + $prf = "touchpad" if(!$prf && $FW_tp); + return 0 if(!open(FH, "$FW_dir/$prf$cssName.css") && + !open(FH, "$FW_dir/$cssName.css")); pO join("", ); close(FH); $FW_RETTYPE = "text/css"; @@ -459,10 +464,7 @@ FW_AnswerCall($) my $rf = AttrVal($FW_wname, "refresh", ""); pO "" if($rf); - my $stylecss = ($FW_ss ? "style_smallscreen.css" : - $FW_tp ? "style_touchpad.css" : "style.css"); - $stylecss = AttrVal($FW_wname, "stylesheet", $stylecss); - pO ""; + pO ""; pO "" if($FW_plotmode eq "SVG"); pO "" @@ -698,8 +700,7 @@ FW_roomOverview($) return; } else { - my $logo = $FW_ss ? "fhem_smallscreen.png" : "fhem.png"; - pO "
"; + pO "
"; } @@ -749,6 +750,7 @@ FW_roomOverview($) "Details", "$FW_ME/commandref.html", "Examples", "$FW_ME/cmd=style%20examples", "Edit files", "$FW_ME/cmd=style%20list", + "Select style","$FW_ME/cmd=style%20select", "", ""); my $lastname = ","; # Avoid double "". for(my $idx = 0; $idx < @list; $idx+= 2) { @@ -1166,7 +1168,7 @@ FW_showLog($) } $ret = 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_ss); + SVG_render($wl, $f, $t, $cfg, $internal_data, $plot, $FW_wname); $FW_RETTYPE = "image/svg+xml"; } @@ -1380,22 +1382,21 @@ FW_style($$) my ($cmd, $msg) = @_; my @a = split(" ", $cmd); + my $start = "
"; + my $end = "
"; if($a[1] eq "list") { - my @fl; - push(@fl, "fhem.cfg"); + my @fl = ("fhem.cfg"); push(@fl, ""); - push(@fl, FW_fileList("$FW_dir/.*.sh")); - push(@fl, FW_fileList("$FW_dir/.*Util.*")); - push(@fl, FW_fileList("$FW_dir/.*.css")); - push(@fl, FW_fileList("$FW_dir/.*.js")); + push(@fl, FW_fileList("$FW_dir/(.*.sh|.*Util.*)")); + push(@fl, ""); + push(@fl, FW_fileList("$FW_dir/.*.(css|svg|js)")); push(@fl, ""); push(@fl, FW_fileList("$FW_dir/.*.gplot")); push(@fl, ""); push(@fl, FW_fileList("$FW_dir/.*html")); - pO "
"; - pO "
"; + pO $start; pO "$msg

" if($msg); pO ""; my $row = 0; @@ -1409,17 +1410,37 @@ FW_style($$) pO ""; $row = ($row+1)%2; } - pO "
"; - pO "
"; - pO "
"; + pO "$end"; + + } elsif($a[1] eq "select") { + + my @fl = FW_fileList("$FW_dir/.*style.css"); + + 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 ""; + $row = ($row+1)%2; + } + pO "
$end"; + + } elsif($a[1] eq "set") { + if($a[2] eq "Default") { + delete($attr{$FW_wname}{stylesheetPrefix}); + } else { + $attr{$FW_wname}{stylesheetPrefix} = $a[2]; + } + pO "${start}Reload the page in the browser.$end"; } elsif($a[1] eq "examples") { my @fl = FW_fileList("$FW_dir/example.*"); - pO "
"; - pO "
"; - pO "$msg

" if($msg); - pO ""; + pO "$start
"; my $row = 0; foreach my $file (@fl) { pO ""; @@ -1427,9 +1448,7 @@ FW_style($$) pO ""; $row = ($row+1)%2; } - pO "
"; - pO "
"; - pO "
"; + pO "$end"; } elsif($a[1] eq "edit") { diff --git a/fhem/webfrontend/pgm2/98_SVG.pm b/fhem/webfrontend/pgm2/98_SVG.pm index 5a1789af6..89e28f0c4 100755 --- a/fhem/webfrontend/pgm2/98_SVG.pm +++ b/fhem/webfrontend/pgm2/98_SVG.pm @@ -34,8 +34,9 @@ SVG_render($$$$$$$) my $confp = shift; # lines from the .gplot file, w/o FileLog and plot my $dp = shift; # pointer to data (one string) my $plot = shift; # Plot lines from the .gplot file - my $SVG_ss = shift; # small screen + my $FW_wname = shift; # FHEMWEB instance name + my $SVG_ss = AttrVal($FW_wname, "smallscreen", 0); return "" if(!defined($dp)); my $th = 16; # "Font" height my ($x, $y) = (($SVG_ss ? 2 : 3)*$th, 1.2*$th); # Rect offset @@ -58,8 +59,10 @@ SVG_render($$$$$$$) pO ''; + my $prf = AttrVal($FW_wname, "stylesheetPrefix", ""); pO ""; - if(open(FH, "$FW_dir/svg_defs.svg")) { # gradient definitions + if(open(FH, "$FW_dir/${prf}svg_defs.svg") || + open(FH, "$FW_dir/svg_defs.svg")) { # gradient definitions pO join("", ); close(FH); } else { diff --git a/fhem/webfrontend/pgm2/darklogo.png b/fhem/webfrontend/pgm2/darklogo.png new file mode 100644 index 0000000000000000000000000000000000000000..8d69a439d2679642879390da895044c1faa43611 GIT binary patch literal 84323 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∈t2sH`rF?e{!_C@{3x5)29D4G#2Q0Vtpwfq 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 { position:fixed; } +div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; } +div#dist { padding-top:0.3em; } +h2,h3,h4 { color:#EEE; line-height:1.3; margin-top:1.5em; +font-family:Verdana; } diff --git a/fhem/webfrontend/pgm2/darksvg_defs.svg b/fhem/webfrontend/pgm2/darksvg_defs.svg new file mode 100644 index 000000000..246e389a6 --- /dev/null +++ b/fhem/webfrontend/pgm2/darksvg_defs.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/fhem/webfrontend/pgm2/darksvg_style.css b/fhem/webfrontend/pgm2/darksvg_style.css new file mode 100644 index 000000000..964786e7a --- /dev/null +++ b/fhem/webfrontend/pgm2/darksvg_style.css @@ -0,0 +1,32 @@ +/* Author: Volker */ +.background { fill:#444444; } + +text { font-family:Arial, Helvetica, sans-serif; font-size:12px; fill:#CCCCCC;} +text.title {font-family:Arial, Helvetica, sans-serif; font-size:16px; fill:#CCCCCC;} +text.copy { text-decoration:underline; stroke:none; fill:blue;} +text.paste { text-decoration:underline; stroke:none; fill:blue;} +text.l0 { text-decoration:underline; stroke:none; fill:red;} +text.l1 { text-decoration:underline; stroke:none; fill:green;} +text.l2 { text-decoration:underline; stroke:none; fill:blue;} +text.l3 { text-decoration:underline; stroke:none; fill:magenta;} +text.l4 { text-decoration:underline; stroke:none; fill:brown;} +text.l5 { text-decoration:underline; stroke:none; fill:black;} +text.l6 { text-decoration:underline; stroke:none; fill:olive;} +text.l7 { text-decoration:underline; stroke:none; fill:gray;} +text.l8 { text-decoration:underline; stroke:none; fill:yellow;} + +polyline { stroke:black; fill:none; } +.border { stroke:black; fill:url(#grad1);} +.vgrid { stroke:gray; stroke-dasharray:2,6;} +.hgrid { stroke:gray; stroke-dasharray:2,6;} +.pasted { stroke:black; stroke-dasharray:1,1;} + +.l0 { stroke:red;} +.l1 { stroke:green;} +.l2 { stroke:blue;} +.l3 { stroke:magenta;} +.l4 { stroke:brown;} +.l5 { stroke:black;} +.l6 { stroke:olive;} +.l7 { stroke:gray;} +.l8 { stroke:yellow;} diff --git a/fhem/webfrontend/pgm2/style_smallscreen.css b/fhem/webfrontend/pgm2/smallscreenstyle.css similarity index 76% rename from fhem/webfrontend/pgm2/style_smallscreen.css rename to fhem/webfrontend/pgm2/smallscreenstyle.css index d0713f275..43b8a6b9f 100644 --- a/fhem/webfrontend/pgm2/style_smallscreen.css +++ b/fhem/webfrontend/pgm2/smallscreenstyle.css @@ -1,11 +1,11 @@ body { background-color: #FFFFE7; - font-family:Arial, sans-serif; font-size:24px; - } + font-family:Arial, sans-serif; font-size:24px; } textarea { font-family:Arial, sans-serif; font-size:16px;} input { font-family:Arial, sans-serif; font-size:16px;} select { font-family:Arial, sans-serif; font-size:16px;} #back { position:absolute; top: 2px; left:18px; } -#logo { position:absolute; top: 2px; left: 2px; } +#logo { position:absolute; top: 2px; left: 2px; + width:64px; height:67px; background-image:url(fhem_smallscreen.png); } #menu { position:absolute; top: 2px; left:65px; } #hdr { position:absolute; top:40px; left:65px; } #content { position:absolute; top:85px; left: 0px; right: 0px;} @@ -50,3 +50,11 @@ table { -moz-border-radius:8px; border-radius:8px; } table#room { background: #D7FFFF; } table#room tr.sel { background: #A0FFFF; } + +#menu #block { visibility: hidden; } +#right { position:absolute; top:85px; left: 0px; right: 0px; + font-family:Arial, sans-serif; font-size:16px; } +h2,h3,h4 { color:#52865D; line-height:1.3; + margin-top:1.5em; font-family:Arial,Sans-serif; } +div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; } +div#dist { padding-top:0.3em; } diff --git a/fhem/webfrontend/pgm2/style.css b/fhem/webfrontend/pgm2/style.css index 5de1a6571..2e564c340 100644 --- a/fhem/webfrontend/pgm2/style.css +++ b/fhem/webfrontend/pgm2/style.css @@ -3,8 +3,9 @@ body { background-color: #FFFFE7; input { font-family:Arial, sans-serif; font-size:16px; } select { font-family:Arial, sans-serif; font-size:16px; } -#logo { position:absolute; top:10px; left:20px; width:140px; } -#menu { position:absolute; top:120px;left:20px; width:140px; } +#logo { position:fixed; top:10px; left:20px; + width:100px; height:105px; background-image:url(fhem.png); } +#menu { position:fixed; top:120px;left:20px; width:140px; } #hdr { position:absolute; top:10px; left:180px; } #content { position:absolute; top:50px; left:180px; bottom:20px; right:10px; } @@ -21,3 +22,10 @@ table { -moz-border-radius:8px; border-radius:8px; } table#room { border:1px solid gray; width: 100%; background: #D7FFFF; } table#room tr.sel { background: #A0FFFF; } + +#right { position:absolute; top:20px; left:180px; bottom:20px; right:10px; } +h2,h3,h4 { color:#52865D; line-height:1.3; + margin-top:1.5em; font-family:Arial,Sans-serif; } +div#block { border:1px solid gray; background: #F8F8E0; padding:0.7em; } +div#dist { padding-top:0.3em; } + diff --git a/fhem/webfrontend/pgm2/style_touchpad.css b/fhem/webfrontend/pgm2/touchpadstyle.css similarity index 88% rename from fhem/webfrontend/pgm2/style_touchpad.css rename to fhem/webfrontend/pgm2/touchpadstyle.css index e94592abe..02f39962b 100644 --- a/fhem/webfrontend/pgm2/style_touchpad.css +++ b/fhem/webfrontend/pgm2/touchpadstyle.css @@ -4,7 +4,8 @@ body { background-color: #FFFFE7; textarea { font-family:Arial, sans-serif; font-size:16px} input { font-family:Arial, sans-serif; font-size:16px} select { font-family:Arial, sans-serif; font-size:16px} -#logo { position:absolute; top:10px; left:10px; width:100px; } +#logo { position:absolute; top:10px; left:10px; + width:100px; height:105px; background-image:url(fhem.png); } #menu { position:absolute; top:120px;left:10px; width:100px; } #hdr { position:absolute; top:10px; left:140px; } #content { position:absolute; top:50px; left:140px; bottom:20px; right:10px; }