$dataname query results
\n";
print "Query: $prettyquery, " if $prettyquery;
print "No. matches= $nrecords\n";
}
sub printResultsReports {
local( $dpath, $dfile, $items, $repstyle, $contype) = @_;
##? need gopher support
print STDERR "printResultsReports: path=$dpath data=$dfile items=$items\n" if $debug;
$err= &openResultList( $dpath, $dfile);
if ($err) { return; }
&getResultListInfo( $dpath, $dfile);
if ($items eq "*") { $items= "1..$nrecords"; } # faster to just step thru RLIB
local @list = ("1","2");
$items =~ tr/ /,/;
$items =~ s/--/-/g;
$items =~ s/-/../g; ## let 1-5 work for eval()
@list = eval("($items);"); # items in format "1,2,3..5,7,9..20"
local $idlist= undef;
local ($item, $i);
foreach $item (@list) {
&seekResultItem( $item);
local $line = ;
##print STDERR "item=$item line=$line" if $debug;
if ($line =~ /([A-Za-z]{4}\d+)/) {
$idlist .= "+" if ($i>0);
$idlist .= $1;
$i++;
}
}
&closeResultList();
if ($idlist) {
if ($repstyle) { $idlist .= "&content=$repstyle"; }
if ($contype) { $idlist .= "&mimetype=$contype"; }
## print STDERR "${idurl}?${idlist}\n" if $debug;
return &redirectToUrl("${idurl}?${idlist}", 1);
}
else {
print STDERR " no ids found in $askdata \n" if $debug;
return &putNoResults("Error reading results to query '$prettyquery'", 1);
}
}
sub getCommonOrgName {
local($val) = @_;
return 'Fruitfly' if ($val eq 'DM');
return 'Fruitfly' if ($val =~ /^Drosophila/i);
return 'Human' if ($val =~ /^Homo sapiens/i);
return 'Yeast' if ($val =~ /^Sacchar/i);
return 'Mouse' if ($val =~ /^Mus /i);
return 'Worm' if ($val =~ / elegans$/i);
return 'Weed' if ($val =~ /^Arabidopsis/i);
return 'Fish' if ($val =~ /^Danio/i);
return $val;
}
sub printResultList {
local( $dpath, $dfile, $pgsize, $startNum) = @_;
local($str,$i);
local($do_table)=0;
$pagesize= $pgsize if ($pgsize>0);
if ($javaResList || $ENV{'FB_QUERYLIST_X'}==1 ) {
local(@myclasses) = ( "fbqueryj.jar", "jgl3.1.0.jar" );
&initJavaEnv(@myclasses);
$japp= "flybase.query.FbQuery";
$jflags= "";
$javaparms = "debug " . $javaparms if ($debug);
$javaparms .= " path=$dpath" if ($dpath);
$javaparms .= " class=$fbidtag" if ($fbidtag);
$javaparms .= " maxhit=$pagesize";
$javaparms .= " start=$startNum" if ($startNum);
local($cmd)= "$javabin $jflags $japp $javaparms kind=querylist data=$dfile";
print STDERR "printResultList: $cmd\n" if $debug;
system($cmd);
unlink $envtemp;
return;
}
print STDERR "printResultList: path=$dpath data=$dfile start=$startNum\n" if $debug;
&putContentType();
$err= &openResultList( $dpath, $dfile);
if ($err) { &printHeader(); return; }
&getResultListInfo( $dpath, $dfile);
&setClassVars($fbidtag);
if( !($dohtml) ) { ## GOPHER
## for( $i=0; $i <= $#outarray; $i++) { print $outarray[$i]; }
return;
}
if( !$startNum || $startNum<1 ) { $startNum=1; }
## &out_html_hits_page(@outarray);
&printHeader();
if( $ENV{'FB_LIST_HSTYLE'} ne 'preformat' ) { $do_table=1; } ## eq 'table' ??
if( $do_table ) {
local(@heads)= &getColHeader(1);
print "\n";
print "";
foreach $hd ( @heads ) {
print "| $hd | ";
}
print "
\n";
}
else {
local($colhdr)= &getColHeader(0);
print "\n";
print "$colhdr\n";
}
local($irow, $linenum);
local($more)= 1;
while ($more)
{
$lineno= $startNum + $irow;
$more= 0 if ($lineno > $nrecords);
$more= 0 if ($irow >= $pagesize);
last if (!$more);
$irow++;
&seekResultItem( $lineno);
$str = ;
##$more= 0 if (!$str);
if ($str) {
$str =~ s|\n+$||;
local @tparts = split(/\t/, $str, 999);
if( $do_table ) {
$str = ($irow % 2 == 1) ? "" : "
";
print $str;
print "| ". $lineno ." | ";
}
else { print "- "; }
local($i);
%vals= ();
$id= undef;
for ( $i=0; $i<=$#tparts; $i++ ) {
local $part= $tparts[$i];
$part =~ s/^RETE\|//;
if ($part =~ /^[A-Za-z]{4}\d/) { $id= $part; }
else {
($key,$num,$val)= split(' ',$part,3);
# print STDERR "key=$key num=$num val=$val\n" if $debug;
$key= 'SYM' if ($key eq "GSYM"); ## hack fix for FBgn
$val= &getCommonOrgName($val) if ($key eq 'ORG');
if ($key eq "ID") { $id= $val; }
elsif (!$val || $numIsVal{ $key }) { $val= $num; }
else { ($val) = &main'ConvertCodes( ($val) ); }
}
if ($headsize{$key}) { $vals{$key}= $val; }
}
for ( $i=0; $i<=$#headkeys; $i++ ) {
local $key= $headkeys[$i];
local $val= $vals{ $key };
$val= "-" if (!$val || $val =~ m/^\s+$/);
local $dolink= 0;
if (($key eq $gSymbolKey) && $id) {
$dolink= 1;
$url= $idurl . '?' . $id;
}
elsif (($key eq $gDbIDKey) && $val =~ /:/) {
local($dbtag,$dbid)= split(/:/,$val);
$url= $DBurls{$dbtag};
$dolink= defined($url);
$url =~ s/\%s/$dbid/;
}
if( $do_table ) {
print '
| ';
print "" if ($dolink);
print $val;
print '' if ($dolink);
print ' | ';
}
else {
print "" if ($dolink);
print $val;
print '' if ($dolink);
local $spc= ' ';
local $len= $headsize{$key} - length($val) - 1;
$spc .= substr(' ',0,$len) if ($len>0);
print $spc;
}
}
if( $do_table ) { print "
"; }
}
print " \n";
}
if ( $do_table ) { print "
\n"; }
else { print "\n"; }
print "
\n";
&putpagebar( $startNum, $nrecords, $pagesize);
print $footer if ($footer);
print "\n";
&closeResultList();
}
sub initJavaEnv {
local(@classes) = @_;
$jlib = "$gopath/.etc/jlib";
$envtemp = "$gopath/tmp/fbjava$$.env";
if (!$contenttype) { $contenttype= $ENV{'CGI_CONTYPE'}; }
if (!$contenttype) { $contenttype= $ENV{'CONTENT_TYPE'}; }
if (!$contenttype) { $contenttype= "text/html"; }
if ($contenttype eq "application/x-www-form-urlencoded") { $contenttype= "text/html"; }
$javapath= "$gopath/.totop/java-local/";
if (! -d $javapath ) {
$javapath= "$gopath/.totop/bin-local/java/";
if (! -d $javapath ) { $javapath= $ENV{"JAVA_HOME"}; }
}
if ( -d $javapath ) {
$javabin= "$javapath/bin/java";
$javalib= "$javapath/lib/classes.zip";
}
else {
return &putNoResults("No java runtime available", $noexit);
}
## ?? set $javalib from $ENV{"CLASSPATH"} ??
$classpath= "$jlib";
local($i);
for ($i= 0; $i<=$#classes; $i++) {
$classpath .= ":$jlib/" . $classes[$i];
}
$classpath .= ":$javalib";
$ENV{"CLASSPATH"}= $classpath;
print STDERR "CLASSPATH='$classpath'\n" if $debug;
open(ENVF,">$envtemp");
while (local($key,$val) = each %ENV) { print ENVF "$key=$val\n"; }
close(ENVF);
$javaparms= "httpcall mimetype=$contenttype env=${envtemp} ";
}
##
## from ? fbperls_add.pl -- need opt to use that
##
sub getRefineDialog {
local($query,$humquery)=@_;
$query=&main'URLescape($query);
local $selfurl= $0;
if (index($selfurl,$gopath)==0) {
$selfurl= substr($selfurl, length($gopath));
}
if( $main'srs_pipe2 ne "" ) {
local $tag="\L$srs_pipe2";
local $script= $ScriptsList{$tag};
if ($script) {
##$fbidtag= $tag; ## is this true?
$selfurl= "/.bin/" . $script;
}
}
local $s = <
REOF
;
return $s;
}
sub getRefineDialogByClass
{
local($_)=@_;
local $s = <