--- no_pager/index.cgi 2006/08/16 22:26:45 17
+++ no_pager/index.cgi 2006/08/16 23:37:51 18
@@ -35,22 +35,29 @@
}
sub get_results {
- my ($search, $page) = @_;
+ my $p = {@_};
+
+ my ($search,$page) = ( $p->{search} || '', $p->{page} || 0);
warn "get_results( $search , $page )\n";
+ sub next_page {
+ return '
' .
+ join("\n", @_) . json() . '
';
+ }
+
if (! $search || $search =~ m/^\s*$/) {
$v->{status} = 'Enter search query';
- return('', json);
+ return next_page();
}
if (! $page) {
$v->{status} = 'Error: no page number?';
- return('', json);
+ return next_page();
}
$search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/);
- $v->{search} = $search || '';
+ $v->{search} = $search;
$v->{page} = $page;
@@ -128,30 +135,33 @@
$out .= 'error: ' . $node->status;
}
- return ($out,json);
+ if ($v->{page} == $v->{max_page}) {
+ $out .= next_page('All results shown');
+ } else {
+ $out .= next_page(
+ 'Loading results...
',
+ 'If you are using the scroll bar, release the mouse to see more results.'
+ );
+ }
+
+ return $out;
}
if ($q->path_info() eq '/snippet') {
- print join("\n",
- get_results(
- $q->param('search'),
- $q->param('page'),
- )
+ print get_results(
+ search => $q->param('search'),
+ page => $q->param('page'),
);
} else {
- my ($get_results,$json);
-
- if ($q->param('search')) {
- ($get_results, $json) = get_results( $q->param('search'), 1 );
- } else {
- $v->{status} = 'Enter search query';
- ($get_results, $json) = ('', json);
- }
+ my $get_results = get_results(
+ search => $q->param('search'),
+ page => 1,
+ );
my $f = $q->path_info;
$f =~ s/\W+//g;