From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 62B2A209A1 for ; Fri, 15 Apr 2016 23:33:33 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 4/4] view: thread skeleton tweaks Date: Fri, 15 Apr 2016 23:33:28 +0000 Message-Id: <20160415233328.16081-5-e@80x24.org> In-Reply-To: <20160415233328.16081-1-e@80x24.org> References: <20160413030411.1375-1-e@80x24.org> <20160415233328.16081-1-e@80x24.org> List-Id: Allow the Subject: <-> skeleton line to point to each other so the reader can bounce around between them without refocusing their browser. --- lib/PublicInbox/View.pm | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index ac44d44..f07979e 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -379,19 +379,20 @@ sub headers_to_html_header { } sub thread_skel { - my ($dst, $ctx, $hdr, $upfx) = @_; + my ($dst, $ctx, $hdr, $tpfx) = @_; my $srch = $ctx->{srch}; my $mid = mid_clean($hdr->header_raw('Message-ID')); my $sres = $srch->get_thread($mid); my $nr = $sres->{total}; - my $expand = "expand " . - "/ mbox.gz"; + my $expand = qq(expand ) . + qq(/ mbox.gz ) . + qq(/ Atom feed); my $parent = in_reply_to($hdr); if ($nr <= 1) { if (defined $parent) { $$dst .= "($expand)\n "; - $$dst .= ghost_parent("$upfx../", $parent) . "\n"; + $$dst .= ghost_parent("$tpfx../", $parent) . "\n"; } else { $$dst .= "[no followups, yet] ($expand)\n"; } @@ -412,7 +413,7 @@ sub thread_skel { prev_level => 0, }; for (thread_results(load_results($sres))->rootset) { - skel_dump($dst, $state, $upfx, $_, 0); + skel_dump($dst, $state, $tpfx, $_, 0); } $ctx->{next_msg} = $state->{next_msg}; $ctx->{parent_msg} = $parent; @@ -500,11 +501,8 @@ sub html_footer { my $tpfx = ''; my $idx = $standalone ? " index" : ''; my $irt = ''; - - if ($srch && $standalone) { - $idx .= qq{ / follow: Atom feed\n}; - } if ($idx && $srch) { + $idx .= "\n"; thread_skel(\$idx, $ctx, $hdr, $tpfx); my $p = $ctx->{parent_msg}; my $next = $ctx->{next_msg}; @@ -709,7 +707,7 @@ sub _skel_header { my $mid = mid_clean($hdr->header_raw('Message-ID')); my $f = ascii_html($hdr->header('X-PI-From')); my $d = _msg_date($hdr); - my $pfx = ' ' . $d . ' ' . indent_for($level); + my $pfx = $d . ' ' . indent_for($level); my $attr = $f; $state->{first_level} ||= $level; @@ -723,7 +721,7 @@ sub _skel_header { if ($cur) { if ($cur eq $mid) { delete $state->{cur}; - $$dst .= "$pfx$dot". + $$dst .= "$pfx$dot". "$attr [this message]\n"; return; @@ -746,11 +744,8 @@ sub _skel_header { } my $m = PublicInbox::Hval->new_msgid($mid); $m = $upfx . '../' . $m->as_href . '/'; - if (defined $s) { - $$dst .= "$pfx$dot$s $attr\n"; - } else { - $$dst .= "$pfx$dot$f\n"; - } + $$dst .= "$pfx$dot"; + $$dst .= defined($s) ? "$s $f\n" : "$f\n"; } sub skel_dump { @@ -765,7 +760,7 @@ sub skel_dump { if ($mid eq 'subject dummy') { $$dst .= "\t[no common parent]\n"; } else { - $$dst .= ' [not found] '; + $$dst .= ' [not found] '; my $dot = $level == 0 ? '' : '` '; $$dst .= indent_for($level) . $dot; $mid = PublicInbox::Hval->new_msgid($mid); -- EW