From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 5/7] view: avoid attempting to find "subject dummy"
Date: Fri, 4 Sep 2015 02:18:09 +0000 [thread overview]
Message-ID: <1441333091-32421-6-git-send-email-e@80x24.org> (raw)
In-Reply-To: <1441333091-32421-1-git-send-email-e@80x24.org>
This is an internal Message-ID used by Mail::Thread, to group
messages with identical subjects but common parent. Don't
attempt to redirect users to external sites when we cannot
find it.
---
lib/PublicInbox/View.pm | 31 ++++++++++++++++---------------
1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 68adbd7..65ef1e7 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -591,6 +591,17 @@ sub pre_anchor_entry {
$seen->{$id} = "#$id"; # save the anchor for children, later
}
+sub ghost_parent {
+ my ($upfx, $mid) = @_;
+ # 'subject dummy' is used internally by Mail::Thread
+ return '[no common parent]' if ($mid eq 'subject dummy');
+
+ $mid = PublicInbox::Hval->new_msgid($mid);
+ my $href = $mid->as_href;
+ my $html = $mid->as_html;
+ qq{[parent not found: <<a\nhref="$upfx../$href/">$html</a>>]};
+}
+
sub __thread_entry {
my ($cb, $git, $state, $mime, $level) = @_;
@@ -607,15 +618,10 @@ sub __thread_entry {
if (my $ghost = delete $state->{ghost}) {
# n.b. ghost messages may only be parents, not children
foreach my $g (@$ghost) {
- my $mid = PublicInbox::Hval->new_msgid($g->[0]);
- my $pfx = INDENT x $g->[1];
- my $href = $mid->as_href;
- my $html = $mid->as_html;
- $$cb->write("<table><tr><td>$pfx</td><td>" .
- PRE_WRAP .
- '[parent not found: <' .
- qq{<a\nhref="../../$href/">}.
- "$html</a>>]</pre></td></table>");
+ $$cb->write("<table\nsummary=ghost><tr><td>" .
+ (INDENT x $g->[1]) . "</td><td>" .
+ PRE_WRAP . ghost_parent('', $g->[0]) .
+ '</pre></td></table>');
}
}
index_entry($$cb, $mime, $level, $state);
@@ -736,12 +742,7 @@ sub inline_dump {
_inline_header($dst, $state, $upfx, $mime, $level);
} else {
my $pfx = INDENT x $level;
- my $v = PublicInbox::Hval->new_msgid($node->messageid, 1);
- my $html = $v->as_html;
- my $href = $v->as_href;
- $$dst .= $pfx . '` [parent not found: <' .
- qq{<a\nhref="$upfx../$href/">}.
- "$html</a>>]\n";
+ $$dst .= $pfx . '` ' . ghost_parent($upfx, $node->messageid);
}
inline_dump($dst, $state, $upfx, $node->child, $level+1);
inline_dump($dst, $state, $upfx, $node->next, $level);
--
EW
next prev parent reply other threads:[~2015-09-04 2:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 2:18 [PATCH 0/7] new index and misc fixes Eric Wong
2015-09-04 2:18 ` [PATCH 1/7] doc: design_www: more accessibility guidelines Eric Wong
2015-09-04 2:18 ` [PATCH 2/7] index: use message threading if search is available Eric Wong
2015-09-04 2:18 ` [PATCH 3/7] consolidate thread sorting in view Eric Wong
2015-09-04 2:18 ` [PATCH 4/7] extmsg: close HTML tag in response Eric Wong
2015-09-04 2:18 ` Eric Wong [this message]
2015-09-04 2:18 ` [PATCH 6/7] SearchMsg: avoid encoding Message-IDs Eric Wong
2015-09-04 2:37 ` Eric Wong
2015-09-04 2:18 ` [PATCH 7/7] view: do not generate anchors in thread views Eric Wong
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=1441333091-32421-6-git-send-email-e@80x24.org \
--to=e@80x24.org \
--cc=meta@public-inbox.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).