2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 16:46:35 +00:00

10_MQTT2_DEVICE.pm: add dashed lines to the map (Forum #101737)

git-svn-id: https://svn.fhem.de/fhem/trunk@19709 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2019-06-25 10:54:12 +00:00
parent b86ee78ce5
commit 3b65781ed0
3 changed files with 16 additions and 9 deletions

View File

@ -657,12 +657,14 @@ MQTT2_DEVICE_nlData($)
$h{$n}{title} = $v;
$fo = $n if(!$fo);
my @a;
$h{$n}{neighbors} = \@a;
my @a; $h{$n}{neighbors} = \@a;
my @b; $h{$n}{neighborstyles} = \@b;
} elsif($l =~ m/^\s*"([^"]+)"\s*->\s*"([^"]+)"\s\[label="([^"]*)"/) {
push @{$h{$1}{neighbors}}, $2;
$h{$1}{title} .= "${div}lqi:$3";
} elsif($l =~ m/^\s*"([^"]+)"\s*->\s*"([^"]+)".*label="([^"]*)"/) {
my ($from,$to,$title) = ($1,$2,$3);
push @{$h{$from}{neighbors}}, $to;
$h{$from}{title} .= "${div}lqi:$title";
push @{$h{$from}{neighborstyles}}, ($l =~ m/style="([^"]+)"/ ? $1 : "");
}
}
@ -672,13 +674,15 @@ MQTT2_DEVICE_nlData($)
for my $k (keys %h) {
my $n = $h{$k}{neighbors};
my $ns = $h{$k}{neighborstyles};
push @ret, '"'.$k.'":{'.
'"class":"'.$h{$k}{class}.' col_link col_oddrow",'.
'"img":"'.$h{$k}{img}.'",'.
'"txt":"'.$h{$k}{txt}.'",'.
'"title":"'.$h{$k}{title}.'",'.
'"pos":['.($dp{$k} ? $dp{$k} : '').'],'.
'"neighbors":['. (@{$n} ? ('"'.join('","',@{$n}).'"'):'').']}';
'"neighbors":['. (@{$n} ? ('"'.join('","',@{$n}).'"'):'').'],'.
'"neighborstyles":['. (@{$ns} ? ('"'.join('","',@{$ns}).'"'):'').']}';
}
my $r = '{"firstObj":"'.$fo.'","el":{'.join(",",@ret).'},'.

View File

@ -169,6 +169,7 @@ svg.zw_nr .zwBox { stroke-width:2px; }
svg.zw_nr .zwDongle { stroke:red; stroke-width:2px; }
svg.zw_nr .zwMargin { stroke-width:1px; fill:none; }
svg.zw_nr .zwLine { stroke-width:1px; }
svg.zw_nr .zwLine.dashed { stroke-dasharray:5,5 }
svg.zw_nr .zwArrowHead { stroke-width:1px; }
svg.zw_nr { height:auto; width:auto; margin:0; }

View File

@ -96,7 +96,7 @@ zw_draw(fnRet, width, height)
for(var o in h) {
if(h[o].txt && h[o].neighbors)
for(var i1=0; i1<h[o].neighbors.length; i1++)
svg += zw_drawline(ld, h, o, h[o].neighbors[i1]);
svg += zw_drawline(ld, h, o, i1);
}
for(var o in h)
if(h[o].txt)
@ -179,8 +179,10 @@ zw_calcPos(o, n)
}
function
zw_drawline(ld, h, o, n)
zw_drawline(ld, h, o, i1)
{
var n = h[o].neighbors[i1];
var ns = h[o].neighborstyles[i1];
if(!h[o] || !h[n])
return "";
var bidi = false;
@ -199,7 +201,7 @@ zw_drawline(ld, h, o, n)
h[n].lines.push(cl);
var fr = zw_calcPos(h[o], h[n]);
var to = zw_calcPos(h[n], h[o]);
return '<line class="zwLine col_link" data-name="'+cl+
return '<line class="zwLine col_link '+ns+'" data-name="'+cl+
'" x1="'+fr.x+'" y1="'+fr.y+
'" x2="'+to.x+'" y2="'+to.y+'"'+
' marker-end="url(#endarrow)"'+