--- 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;