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:
parent
b86ee78ce5
commit
3b65781ed0
@ -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).'},'.
|
||||
|
@ -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; }
|
||||
|
||||
|
@ -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)"'+
|
||||
|
Loading…
x
Reference in New Issue
Block a user