*** gnatsweb.pl Mon Sep 10 05:11:04 2001 --- /u/WWW/SDSS/cgi-bin/gnatsweb-2.9.0.pl Mon Sep 10 15:06:28 2001 *************** *** 1342,1347 **** --- 1342,1349 ---- sub advanced_query_page { + my($values_hash) = @_; + my $page = 'Advanced Query'; page_start_html($page); page_heading($page, 'Query Problem Reports', 1); *************** *** 1368,1377 **** "using regular expression\n", "\n"; print "\nSingle-line text fields:\n", ! $q->textfield(-name=>'text', -size=>$width), "\n\n", "\nMulti-line text fields:\n", ! $q->textfield(-name=>'multitext', -size=>$width), "\n\n", "\n"; --- 1370,1381 ---- "using regular expression\n", "\n"; print "\nSingle-line text fields:\n", ! $q->textfield(-name=>'text', -size=>$width, ! -value=>$$values_hash{Text}), "\n\n", "\nMulti-line text fields:\n", ! $q->textfield(-name=>'multitext', -size=>$width, ! -value=>$$values_hash{Multitext}), "\n\n", "\n"; *************** *** 1395,1401 **** my $param_name = lc($_); $param_name =~ s/ //; print "\n$_:\n", ! $q->textfield(-name=>$param_name, -size=>$width), "\n\n"; } print $q->Tr( $q->td({-colspan=>2}, --- 1399,1406 ---- my $param_name = lc($_); $param_name =~ s/ //; print "\n$_:\n", ! $q->textfield(-name=>$param_name, -size=>$width, ! -value=>$$values_hash{$_}), "\n\n"; } print $q->Tr( $q->td({-colspan=>2}, *************** *** 1427,1433 **** # 2nd column is regexp search field print "", $q->textfield(-name=>$lc_fieldname, ! -size=>$width); if ($_ eq 'State') { print "
", --- 1432,1438 ---- # 2nd column is regexp search field print "", $q->textfield(-name=>$lc_fieldname, ! -size=>$width, -value=>$$values_hash{$_}); if ($_ eq 'State') { print "
", *************** *** 1884,1892 **** print "", "", $q->start_form(), "\n); --- 2391,2406 ---- if $global_prefs{'database'}; $row .= qq(User: $db_prefs{'user'}  ) if $db_prefs{'user'}; ! $row .= qq(Access: $access_level  ) if $access_level; + if($global_prefs{'show date'}) + { + my($date); + $date = localtime; + $date =~ s/:[0-9]+\s/ /; + $row .= qq(Date: $date   ); + } + $row .= qq(\n\n\n\n
", hidden_db(), ! $q->submit('cmd', 'submit stored query'), " ", $q->popup_menu(-name=>'queryname', -values=>[ sort(keys %stored_queries) ]), --- 1889,1899 ---- print "", "", $q->start_form(), + "Stored Queries:\n\n\n
", "", hidden_db(), ! hidden(-name=>'full_cmd', -value=>'submit stored query'), ! $q->submit('cmd', 'submit'), " ", $q->popup_menu(-name=>'queryname', -values=>[ sort(keys %stored_queries) ]), *************** *** 1895,1901 **** "", $q->hidden('return_url', $q->self_url()), hidden_db(), ! $q->submit('cmd', 'delete stored query'), " ", $q->popup_menu(-name=>'queryname', -values=>[ sort(keys %stored_queries) ]), --- 1902,1918 ---- "", $q->hidden('return_url', $q->self_url()), hidden_db(), ! hidden(-name=>'full_cmd', -value=>'delete stored query'), ! $q->submit('cmd', 'delete'), ! " ", ! $q->popup_menu(-name=>'queryname', ! -values=>[ sort(keys %stored_queries) ]), ! $q->end_form(), ! $q->start_form(), ! "", ! hidden_db(), ! hidden(-name=>'full_cmd', -value=>'load stored query'), ! $q->submit('cmd', 'load'), " ", $q->popup_menu(-name=>'queryname', -values=>[ sort(keys %stored_queries) ]), *************** *** 2008,2013 **** --- 2025,2104 ---- } } + + # load_stored_query - + # Set the current query from a cookie + # + # Queries are stored as individual cookies named + # 'gnatsweb-query-$queryname'. + # + sub load_stored_query + { + my $debug = 0; + my $queryname = $q->param('queryname'); + my $query_string; + my $err = ''; + if (!$queryname) + { + $err = "Internal error: no 'queryname' parameter"; + } + elsif (!($query_string = $q->cookie("gnatsweb-query-$queryname"))) + { + $err = "No such named query: $queryname"; + } + if ($err) + { + print $q->header(), + $q->start_html('Error'), + $q->h3($err), + $q->end_html(); + } + else + { + # + # Save values into a hash + # + my %values; + my($key, $val); + foreach (split("&", $query_string)) + { + ($key, $val) = split("="); + if($key =~ /(before|after)$/) + { + $key = ucfirst($`) . " " . ucfirst($1); + } else { + $key = ucfirst($key); + } + if($key eq "Submitter_id") { + $key = "Submitter-Id"; + } + # I'm guessing here... (RHL) + $val =~ s/%2A/*/g; + $val =~ s/%20/ /g; + $val =~ s/%5B/[/g; + $val =~ s/%5D/]/g; + $val =~ s/%5E/^/g; + $val =~ s/%7C/|/g; + + if($values{$key}) { + $values{$key} .= "|"; + } + $values{$key} .= $val; + } + + + print $q->header(); + initialize(); + if($debug) { + foreach (keys %values) + { + print "$_:$values{$_}
"; + } + } + advanced_query_page(\%values); + } + } + # send_html - # Send HTML help file, after first trimming out everything but # ... This is done in this way for convenience of *************** *** 2300,2307 **** if $global_prefs{'database'}; $row .= qq(User: $db_prefs{'user'}  ) if $db_prefs{'user'}; ! $row .= qq(Access: $access_level) if $access_level; $row .= qq(\n
$site_banner_text
$site_banner_text
\n); *************** *** 2345,2351 **** # sub page_heading { ! my($title, $heading, $display_user_info, $display_date) = @_; # Protect against multiple calls. return if $page_heading_done; --- 2444,2450 ---- # sub page_heading { ! my($title, $heading, $display_user_info) = @_; # Protect against multiple calls. return if $page_heading_done; *************** *** 3165,3170 **** --- 3264,3270 ---- set_pref('email', \%global_prefs, \%cvals); set_pref('Originator', \%global_prefs, \%cvals); set_pref('Submitter-Id', \%global_prefs, \%cvals); + set_pref('show date', \%global_prefs, \%cvals); # columns is treated differently because it's an array which is stored # in the cookie as a joined string. *************** *** 3231,3237 **** } $sn = $q->script_name; ! my $cmd = $q->param('cmd') || ''; # avoid perl -w warning ### Cookie-related code must happen before we print the HTML header. --- 3331,3337 ---- } $sn = $q->script_name; ! my $cmd = $q->param('full_cmd') || $q->param('cmd') || ''; # avoid perl -w warning ### Cookie-related code must happen before we print the HTML header. *************** *** 3242,3247 **** --- 3342,3348 ---- $global_cookie_path = '/'; $global_cookie_expires = '+30d'; init_prefs(); + cb('init_prefs', ''); # Big old switch to handle commands. if($cmd eq 'store query') *************** *** 3257,3262 **** --- 3358,3368 ---- elsif($cmd eq 'submit stored query') { submit_stored_query(); + exit(); + } + elsif($cmd eq 'load stored query') + { + load_stored_query(); exit(); } elsif($cmd eq 'login')