]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchView.pm
www: redefinable project name and URL
[public-inbox.git] / lib / PublicInbox / SearchView.pm
index 8771d5d3aab0b180c084560b2ca1bb3450c8b3a6..80a2ff7c28e68ab9fe178919f481d24fcde8e708 100644 (file)
@@ -38,11 +38,11 @@ sub sres_top_html {
        my $cb;
        if ($err) {
                $code = 400;
-               $ctx->{-html_tip} = '<pre>'.err_txt($ctx, $err).'</pre><hr />';
+               $ctx->{-html_tip} = '<pre>'.err_txt($ctx, $err).'</pre><hr>';
                $cb = *noop;
        } elsif ($total == 0) {
                $code = 404;
-               $ctx->{-html_tip} = "<pre>\n[No results found]</pre><hr />";
+               $ctx->{-html_tip} = "<pre>\n[No results found]</pre><hr>";
                $cb = *noop;
        } else {
                my $x = $q->{x};
@@ -55,9 +55,7 @@ sub sres_top_html {
                        $cb = mset_summary($ctx, $mset, $q);
                }
        }
-
-       [ $code, ['Content-Type', 'text/html; charset=UTF-8'],
-               PublicInbox::WwwStream->new($ctx, $cb) ];
+       PublicInbox::WwwStream->response($ctx, $code, $cb);
 }
 
 # display non-threaded search results similar to what users expect from
@@ -88,7 +86,7 @@ sub mset_summary {
 sub err_txt {
        my ($ctx, $err) = @_;
        my $u = '//xapian.org/docs/queryparser.html';
-       $u = PublicInbox::Hval::prurl($ctx->{cgi}->{env}, $u);
+       $u = PublicInbox::Hval::prurl($ctx->{env}, $u);
        $err =~ s/^\s*Exception:\s*//; # bad word to show users :P
        $err = ascii_html($err);
        "\nBad query: <b>$err</b>\n" .
@@ -128,7 +126,7 @@ sub search_nav_bot {
        my $o = $q->{o};
        my $end = $o + $nr;
        my $beg = $o + 1;
-       my $rv = "</pre><hr /><pre>Results $beg-$end of $total";
+       my $rv = "</pre><hr><pre>Results $beg-$end of $total";
        my $n = $o + $LIM;
 
        if ($n < $total) {
@@ -170,21 +168,17 @@ sub mset_thread {
        my $skel = search_nav_bot($mset, $q). "<pre>";
        my $inbox = $ctx->{-inbox};
        $ctx->{-upfx} = '';
-       my $state = {
-               -inbox => $inbox,
-               anchor_idx => 1,
-               ctx => $ctx,
-               cur_level => 0,
-               dst => \$skel,
-               mapping => {},
-               pct => \%pct,
-               prev_attr => '',
-               prev_level => 0,
-               seen => {},
-               srch => $ctx->{srch},
-       };
+       $ctx->{anchor_idx} = 1;
+       $ctx->{cur_level} = 0;
+       $ctx->{dst} = \$skel;
+       $ctx->{mapping} = {};
+       $ctx->{pct} = \%pct;
+       $ctx->{prev_attr} = '';
+       $ctx->{prev_level} = 0;
+       $ctx->{seen} = {};
+       $ctx->{s_nr} = scalar(@m).'+ results';
 
-       PublicInbox::View::walk_thread($th, $state,
+       PublicInbox::View::walk_thread($th, $ctx,
                *PublicInbox::View::pre_thread);
 
        my $msgs = \@m;
@@ -197,7 +191,8 @@ sub mset_thread {
                }
                if ($mime) {
                        $mime = Email::MIME->new($mime);
-                       return PublicInbox::View::index_entry($mime, $state);
+                       return PublicInbox::View::index_entry($mime, $ctx,
+                               scalar @$msgs);
                }
                $msgs = undef;
                $skel .= "\n</pre>";