my %seen;
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 {
my ($blocked, $dependson) = (@_);
my $key = "$blocked,$dependson";
my $pngfilename = "data/webdot/$$.png";
my $mapfilename = "data/webdot/$$.map";
system("$webdotbase","-Tpng","-o","$pngfilename","$filename");
- system("$webdotbase","-Timap","-o","$mapfilename","$filename");
$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.
# rankdir: string. "TB" if we are ranking top-to-bottom,
"LR" if left-to-right.
# 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"
[% PROCESS global/header.html.tmpl %]
+[% image_map %]
+
<p>
Green circles represent open bugs.
</p>
-<a href="[% map_url %]">
- <img src="[% image_url %]" ismap>
-</a>
+[% IF image_map %]
+ <img src="[% image_url %]" usemap="#imagemap">
+[% ELSE %]
+ <a href="[% map_url %]">
+ <img src="[% image_url %]" ismap>
+ </a>
+[% END %]
<hr>