X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWwwStream.pm;h=66e34a12e885c12c95454933cb42f5082545c53e;hb=db7c206a4e2c71d08dd286d6dfa92431976e9693;hp=23b03f0e8dc49ddf8780964a9f988fd41d99b6dc;hpb=5afb24f06627641e3fed608e807b5ab628cda348;p=public-inbox.git diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 23b03f0e..66e34a12 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -10,13 +10,13 @@ use strict; use parent qw(Exporter PublicInbox::GzipFilter); our @EXPORT_OK = qw(html_oneshot); use bytes (); # length -use PublicInbox::Hval qw(ascii_html prurl); +use PublicInbox::Hval qw(ascii_html prurl ts2str); our $TOR_URL = 'https://www.torproject.org/'; our $CODE_URL = 'https://public-inbox.org/public-inbox.git'; sub base_url ($) { my $ctx = shift; - my $base_url = $ctx->{-inbox}->base_url($ctx->{env}); + my $base_url = $ctx->{ibx}->base_url($ctx->{env}); chop $base_url; # no trailing slash for clone $base_url; } @@ -28,14 +28,14 @@ sub init { bless $ctx, __PACKAGE__; } -sub async_eml { # ->{async_eml} for async_blob_cb +sub async_eml { # for async_blob_cb my ($ctx, $eml) = @_; $ctx->{http_out}->write($ctx->translate($ctx->{cb}->($ctx, $eml))); } sub html_top ($) { my ($ctx) = @_; - my $ibx = $ctx->{-inbox}; + my $ibx = $ctx->{ibx}; my $desc = ascii_html($ibx->description); my $title = delete($ctx->{-title_html}) // $desc; my $upfx = $ctx->{-upfx} || ''; @@ -43,10 +43,18 @@ sub html_top ($) { my $color = $upfx.'_/text/color'; my $atom = $ctx->{-atom} || $upfx.'new.atom'; my $top = "$desc"; - my $links = "help / ". - "color / ". - "Atom feed"; - if ($ibx->search) { + if (my $t_max = $ctx->{-t_max}) { + $t_max = ts2str($t_max); + $top = qq($top); + # we had some kind of query, link to /$INBOX/?t=YYYYMMDDhhmmss + } elsif ($ctx->{qp}->{t}) { + $top = qq($top); + } + my $links = qq(help / ). + qq(color / ). + qq(mirror / ). + qq(Atom feed); + if ($ibx->isrch) { my $q_val = delete($ctx->{-q_value_html}) // ''; $q_val = qq(\nvalue="$q_val") if $q_val ne ''; # XXX gross, for SearchView.pm @@ -68,6 +76,26 @@ sub html_top ($) { '
'. $top . (delete($ctx->{-html_tip}) // ''); } +sub coderepos ($) { + my ($ctx) = @_; + my $ibx = $ctx->{ibx}; + my @ret; + if (defined(my $cr = $ibx->{coderepo})) { + my $cfg = $ctx->{www}->{pi_cfg}; + my $env = $ctx->{env}; + for my $cr_name (@$cr) { + my $urls = $cfg->{"coderepo.$cr_name.cgiturl"}; + if ($urls) { + $ret[0] //= <'.join("\n\n", $desc, $urls, + coderepos($ctx), code_footer($ctx->{env}) ).'