--- trunk2/all2all.pl 2004/09/12 01:25:55 426
+++ trunk2/all2all.pl 2004/09/12 17:21:47 429
@@ -150,13 +150,17 @@
} # XXX if(0)
-$log->info("lookup hash: ",Dumper($webpac->{'lookup'}));
+$log->debug("lookup hash: ",Dumper($webpac->{'lookup'}));
#
# tree dump implementation which shouldn't be here :-)
#
+
my $file = 'out/browse.html';
+my $js_url = 'tree-ids.js';
+
+$log->info("creating '$file' for tree html");
open(HTML, "> $file") || $log->logdie("can't open '$file'");
print HTML qq{
@@ -165,8 +169,23 @@
Browse
+
+
+
+
+
+
+
};
@@ -229,12 +248,67 @@
},
lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 5
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 6
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 7
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 8
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
# have_children => sub { defined($l->{$_[1]}) },
# child_code => sub { return $_[1] },
have_children => sub { 0 },
child_code => sub { 0 },
});
+my @show_ids;
+my @hide_ids;
+
unroll(0,'');
$log->debug("test filter: ",$tree[0]->{'filter_code'}->("root:99"));
@@ -270,13 +344,11 @@
my $have_children = $tree[$level]->{'have_children'}->($code,$v900,$start_code);
if ($have_children) {
- ($link_start,$link_end) = (qq{},qq{});
+ ($link_start,$link_end) = (qq{},qq{});
} else {
$log->debug("# $level doesn't have_children($code,$v900,$start_code)");
}
- $log->debug("# $level children re-check failed", sub { Dumper($tree[$level]->{'have_children'}->($code,$v900,$start_code)) }) if (defined($l->{$v900}) && ! $tree[$level]->{'have_children'}->($code,$v900,$start_code));
-
my $mfn_link = "thes/$mfn.html";
if (-e "out/$mfn_link") {
print HTML " " x $level .
@@ -289,12 +361,24 @@
unless ($have_children) {
next;
}
-
+ my $style = $tree[$level]->{'style'};
+
print HTML " " x $level .
qq{\n {'style'} ? ' style="'.$tree[$level]->{'style'}.'"' : '').
+ ($style ? ' style="'.$style.'"' : '').
qq{>\n};
+ if ($style) {
+ if ($style =~ m/display\s*:\s*none/i) {
+ push @hide_ids, "mfn$mfn";
+ } else {
+ push @show_ids, "mfn$mfn";
+ }
+ } else {
+ # default: show
+ push @show_ids, "mfn$mfn";
+ }
+
unroll($level+1, $tree[$level]->{'child_code'}->($code,$v900,$start_code));
print HTML " " x $level . qq{
\n};
@@ -311,6 +395,15 @@
close(HTML);
+
+my $js_file = "out/$js_url";
+$log->info("creating '$js_file' with arrays of shown and hidden ids");
+open(JS, ">", $js_file) || $log->logdie("can't open '$js_file': $!");
+print JS "var show = ['",join("','",@show_ids),"'];\n";
+print JS "var hide = ['",join("','",@hide_ids),"'];\n";
+close(JS);
+
+$log->info("closing index");
$index->close;
$log->info("elapsed time: ",$webpac->fmt_time(time() - $webpac->{'start_t'}));