Bug 134571 - client-side image maps in showdependencygraph.cgi

Patch by zeroJ@null.net (John Vandenberg), r=bbaetz, justdave
parent 04fd648f
...@@ -37,6 +37,26 @@ use vars qw($template $vars $userid $usergroupset); ...@@ -37,6 +37,26 @@ use vars qw($template $vars $userid $usergroupset);
my %seen; my %seen;
my %edgesdone; my %edgesdone;
sub CreateImagemap {
my $mapfilename = shift;
my $map = "<map name=\"imagemap\">\n";
my $default;
open MAP, "<$mapfilename";
while(my $line = <MAP>) {
if($line =~ /^default ([^ ]*)(.*)$/) {
$default = qq{<area shape="default" href="$1">\n};
}
if ($line =~ /^rectangle \((.*),(.*)\) \((.*),(.*)\) (http[^ ]*)(.*)?$/) {
$map .= qq{<area name="bug$6" shape="rect" href="$5" coords="$1,$4,$3,$2">\n};
}
}
close MAP;
$map .= "$default</map>";
return $map;
}
sub AddLink { sub AddLink {
my ($blocked, $dependson) = (@_); my ($blocked, $dependson) = (@_);
my $key = "$blocked,$dependson"; my $key = "$blocked,$dependson";
...@@ -162,9 +182,9 @@ if ($webdotbase =~ /^https?:/) { ...@@ -162,9 +182,9 @@ if ($webdotbase =~ /^https?:/) {
my $pngfilename = "data/webdot/$$.png"; my $pngfilename = "data/webdot/$$.png";
my $mapfilename = "data/webdot/$$.map"; my $mapfilename = "data/webdot/$$.map";
system("$webdotbase","-Tpng","-o","$pngfilename","$filename"); system("$webdotbase","-Tpng","-o","$pngfilename","$filename");
system("$webdotbase","-Timap","-o","$mapfilename","$filename");
$vars->{'image_url'} = $pngfilename; $vars->{'image_url'} = $pngfilename;
$vars->{'map_url'} = $mapfilename; system("$webdotbase","-Tismap","-o","$mapfilename","$filename");
$vars->{'image_map'} = CreateImagemap($mapfilename);
} }
# Cleanup any old .dot files created from previous runs. # Cleanup any old .dot files created from previous runs.
......
...@@ -27,7 +27,9 @@ ...@@ -27,7 +27,9 @@
# rankdir: string. "TB" if we are ranking top-to-bottom, # rankdir: string. "TB" if we are ranking top-to-bottom,
"LR" if left-to-right. "LR" if left-to-right.
# image_url: string. The URL of the graphic showing the dependencies. # image_url: string. The URL of the graphic showing the dependencies.
# map_url: string. The URL of the map file for the image. # map_url: string. The URL of the map file for the image. (Optional)
# image_map: string. The image map for the graphic showing the
dependencies. (Optional)
#%] #%]
[% title = "Dependency Graph" [% title = "Dependency Graph"
...@@ -42,13 +44,19 @@ ...@@ -42,13 +44,19 @@
[% PROCESS global/header.html.tmpl %] [% PROCESS global/header.html.tmpl %]
[% image_map %]
<p> <p>
Green circles represent open bugs. Green circles represent open bugs.
</p> </p>
<a href="[% map_url %]"> [% IF image_map %]
<img src="[% image_url %]" usemap="#imagemap">
[% ELSE %]
<a href="[% map_url %]">
<img src="[% image_url %]" ismap> <img src="[% image_url %]" ismap>
</a> </a>
[% END %]
<hr> <hr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment