diff options
author | Eric Wong <e@80x24.org> | 2015-09-04 05:33:17 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-09-04 05:51:24 +0000 |
commit | 4dd4e8458d834889eb45bfe2f5ee67be297e7319 (patch) | |
tree | 300663e011e3055ef8d6368c2795b9d702449887 /lib | |
parent | 943b64d1b509d595f1034821605e3b0c69ce4b25 (diff) | |
download | public-inbox-4dd4e8458d834889eb45bfe2f5ee67be297e7319.tar.gz |
No point in repeating authorship when PATCH messages are threaded and it's obvious from the top message who the author is of the series: [this message] - John Smith @ 2015-09-04 00:04:20 UTC ` [PATCH 1/4] view: eliminate redundant [threaded|flat] link ` [PATCH 2/4] view: one line for thread subjects ` [PATCH 3/4] view: adjust spacing and indentation of index threads ` [PATCH 4/4] view: add missing newline to inline dump
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/View.pm | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 6b717035..d025c993 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -465,6 +465,8 @@ sub thread_inline { cur => $mid, parent_cmp => defined $parent ? $parent : '', parent => $parent, + prev_attr => '', + prev_level => 0, }; for (thread_results(load_results($res))->rootset) { inline_dump($dst, $state, $upfx, $_, 0); @@ -691,15 +693,24 @@ sub _inline_header { my $mid = mid_clean($mime->header('Message-ID')); my $f = $mime->header('X-PI-From'); my $d = _msg_date($mime); - $f = PublicInbox::Hval->new($f); - $d = PublicInbox::Hval->new($d); - $f = $f->as_html; - $d = $d->as_html . ' UTC'; + $f = PublicInbox::Hval->new($f)->as_html; + $d = PublicInbox::Hval->new($d)->as_html; + my $attr = "$f @ $d"; + $state->{first_level} ||= $level; + if ($attr ne $state->{prev_attr} || $state->{prev_level} > $level) { + $state->{prev_attr} = $attr; + $attr = ' - ' . $attr; + $attr .= ' UTC' if $level >= $state->{first_level}; + } else { + $attr = ''; + } + $state->{prev_level} = $level; + if ($cur) { if ($cur eq $mid) { delete $state->{cur}; $$dst .= "$pfx` <b><a\nid=\"r\"\nhref=\"#t\">". - "[this message]</a></b> by $f @ $d\n"; + "[this message]</a></b>$attr\n"; return; } @@ -722,7 +733,7 @@ sub _inline_header { my $m = PublicInbox::Hval->new_msgid($mid); $m = $upfx . '../' . $m->as_href . '/'; if (defined $s) { - $$dst .= "$pfx` <a\nhref=\"$m\">$s</a> by $f @ $d\n"; + $$dst .= "$pfx` <a\nhref=\"$m\">$s</a>$attr\n"; } else { $$dst .= "$pfx` <a\nhref=\"$m\">$f @ $d</a>\n"; } |