From: Eric Wong <e@80x24.org> To: meta@public-inbox.org Cc: Konstantin Ryabitsev <konstantin@linuxfoundation.org> Subject: [PATCH] www_listing: support /all/ search as a 302 redirect Date: Sun, 26 Sep 2021 01:30:47 +0000 [thread overview] Message-ID: <20210926013047.6806-1-e@80x24.org> (raw) In-Reply-To: <20210827120845.29682-1-e@80x24.org> On Fri, 27 Aug 2021 12:08:43 +0000, Eric Wong wrote: > Konstantin Ryabitsev wrote: > > I switched the configuration to return wwwlisting as toplevel view (instead of > > redirecting / to /all/), but there's some discontent, because the easy > > interface to "search everything" is gone and unless someone knows about /all/, > > they wouldn't find out about it from the wwwlisting view. > > > > How about, if there is an extindex "all" defined, the wwwlisting adds an extra > > search box: > > > > [_________________] [search all] help > > > > * 2021-08-26 16:54 - https://x-lore.kernel.org/all/ > > All of lore.kernel.org > > > > ------------------------------------------------------ > > > > [_________________] [locate inbox] > > > > I think that's too much vertical whitespace at the top of the > page, and multiple <form>s or <input> boxes at the top can get > confusing. > > Just making /all/ show up at the top like a normal inbox (and > letting the admin decide on description) seems sufficient. If > users can get to /all/ then they can search /all/ as normal. > > I tried moving the <input>s next to infourl, but mixing <form> > and <pre> introduces a lot of vertical whitespace. > > > I also tried adding radio button (or drop-down): > > [_________________] [*] inboxes [ ] /all/ [search] > > But extra <form> elements always confuse me whenever I encounter > them in any browser, so I decided to just leave things alone. -------------8<------------ Subject: [PATCH] www_listing: support /all/ search as a 302 redirect This allows users to search /all/ from the top-level WwwListing without extra manual steps, although there's still extra network roundtrips incurred. No vertical whitespace is added, and there's no clumsy radio buttons nor menus to deal with. Users only have to use a different <input type=submit /> button. I forgot how to do this until I realized we already do something similar with multiple submit buttons for threaded vs non-threaded mboxrd.gz downloads. Link: https://public-inbox.org/meta/20210827120845.29682-1-e@80x24.org/ --- lib/PublicInbox/WwwListing.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/WwwListing.pm b/lib/PublicInbox/WwwListing.pm index a9290802..79c0a8ec 100644 --- a/lib/PublicInbox/WwwListing.pm +++ b/lib/PublicInbox/WwwListing.pm @@ -11,6 +11,7 @@ use PublicInbox::GzipFilter qw(gzf_maybe); use PublicInbox::ConfigIter; use PublicInbox::WwwStream; use URI::Escape qw(uri_escape_utf8); +use PublicInbox::MID qw(mid_escape); sub ibx_entry { my ($ctx, $ibx, $ce) = @_; @@ -135,6 +136,13 @@ sub response { my ($re, $qs) = $ctx->url_filter; $re // return $ctx->psgi_triple; if (my $ALL = $ctx->{www}->{pi_cfg}->ALL) { # fast path + if ($ctx->{qp}->{a} && # "search all inboxes" + $ctx->{qp}->{'q'}) { + my $u = 'all/?q='.mid_escape($ctx->{qp}->{'q'}); + return [ 302, [ 'Location' => $u, + qw(Content-Type text/plain) ], + [ "Redirecting to $u\n" ] ]; + } # FIXME: test this in t/ $ALL->misc->reopen->retry_reopen(\&add_misc_ibx, $ctx, $re, $qs); @@ -166,11 +174,10 @@ sub mset_nav_top { $qh = qq[\nvalue="$qh"] if $qh ne ''; my $rv = <<EOM; <form -action="./"><pre><input -name=q -type=text$qh /><input -type=submit -value="locate inbox" /></pre></form><pre> +action="./"><pre><input name=q type=text$qh +/><input type=submit value="locate inbox" +/><input type=submit name=a value="search all inboxes" +/></pre></form><pre> EOM chomp $rv; if (defined($q->{'q'})) {
prev parent reply other threads:[~2021-09-26 1:30 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-26 17:01 Add a way to search all from wwwlisting Konstantin Ryabitsev 2021-08-27 12:08 ` [PATCH 0/2] wwwlisting shows /all/ Eric Wong 2021-08-27 12:08 ` [PATCH 1/2] www_listing: show ->ALL at top of HTML listing Eric Wong 2021-08-27 12:08 ` [PATCH 2/2] www_listing: fix odd "locate inbox" cases Eric Wong 2021-08-27 13:03 ` [PATCH 0/2] wwwlisting shows /all/ Konstantin Ryabitsev 2021-08-27 14:33 ` Konstantin Ryabitsev 2021-08-27 22:03 ` [PATCH] www: avoid potential auto-vivification on ibx->{url} Eric Wong 2021-08-28 18:00 ` Konstantin Ryabitsev 2021-08-27 21:15 ` [PATCH 0/2] wwwlisting shows /all/ Eric Wong 2021-09-26 1:30 ` Eric Wong [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://public-inbox.org/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210926013047.6806-1-e@80x24.org \ --to=e@80x24.org \ --cc=konstantin@linuxfoundation.org \ --cc=meta@public-inbox.org \ --subject='Re: [PATCH] www_listing: support /all/ search as a 302 redirect' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/public-inbox.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).