]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WWW.pm
view: preliminary HTML search interface
[public-inbox.git] / lib / PublicInbox / WWW.pm
index e8b35cb2b0bd7aa2e05c89d5dd6b43e0578221f5..2718854c6b6f28523344aa84a33ecd6190943ef9 100644 (file)
@@ -42,6 +42,10 @@ sub run {
        } elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/$END_RE\z!o) {
                msg_page($ctx, $1, $2, $3);
 
+       # in case people leave off the trailing slash:
+       } elsif ($path_info =~ m!$LISTNAME_RE/$MID_RE/(f|T|t)\z!o) {
+               r301($ctx, $1, $2, $3 eq 't' ? 't/#u' : $3);
+
        # convenience redirects order matters
        } elsif ($path_info =~ m!$LISTNAME_RE/([^/]{2,})\z!o) {
                r301($ctx, $1, $2);
@@ -63,6 +67,7 @@ sub preload {
 
        eval {
                require PublicInbox::Search;
+               require PublicInbox::SearchView;
                require PublicInbox::Mbox;
                require IO::Compress::Gzip;
        };
@@ -124,8 +129,14 @@ sub get_index {
        my ($ctx) = @_;
        require PublicInbox::Feed;
        my $srch = searcher($ctx);
+       my $q = $ctx->{cgi}->param('q');
        footer($ctx);
-       PublicInbox::Feed::generate_html_index($ctx);
+       if (defined $q) {
+               require PublicInbox::SearchView;
+               PublicInbox::SearchView::sres_top_html($ctx, $q);
+       } else {
+               PublicInbox::Feed::generate_html_index($ctx);
+       }
 }
 
 # just returns a string ref for the blob in the current ctx
@@ -354,6 +365,9 @@ sub legacy_redirects {
        } elsif ($path_info =~ m!$LISTNAME_RE/(\S+/\S+)/$END_RE\z!o) {
                msg_page($ctx, $1, $2, $3);
 
+       # in case people leave off the trailing slash:
+       } elsif ($path_info =~ m!$LISTNAME_RE/(\S+/\S+)/(f|T|t)\z!o) {
+               r301($ctx, $1, $2, $3 eq 't' ? 't/#u' : $3);
        } else {
                r404();
        }