mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-22 11:39:03 +01:00
When a transaction adds more than 100 inline comments, include only the first 100 in email
Summary: Ref T13195. An install had a user apply a transaction which added about 1,000 inline comments. Rendering the email for this transaction took a very long time because the context section for each comment must be highlighted separately. We can make the highlighting faster (in this case, by porting the lexer to PHP) but it's also sort of silly to include more than 100 inlines in an email. These emails are likely to be truncated by outbound size rules at some point anyway. Instead, limit inlines rendered directly into email to the first 100 per transaction group. Test Plan: Set limit to 2, added 4 comments, viewed text and HTML emails: {F5859967} {F5859968} Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13195 Differential Revision: https://secure.phabricator.com/D19632
This commit is contained in:
parent
650e74933a
commit
041392988e
1 changed files with 24 additions and 0 deletions
|
@ -892,6 +892,17 @@ final class DifferentialTransactionEditor
|
|||
array $inlines,
|
||||
PhabricatorMetaMTAMailBody $body) {
|
||||
|
||||
$limit = 100;
|
||||
$limit_note = null;
|
||||
if (count($inlines) > $limit) {
|
||||
$limit_note = pht(
|
||||
'(Showing first %s of %s inlines.)',
|
||||
new PhutilNumber($limit),
|
||||
phutil_count($inlines));
|
||||
|
||||
$inlines = array_slice($inlines, 0, $limit, true);
|
||||
}
|
||||
|
||||
$section = id(new DifferentialInlineCommentMailView())
|
||||
->setViewer($this->getActor())
|
||||
->setInlines($inlines)
|
||||
|
@ -900,6 +911,9 @@ final class DifferentialTransactionEditor
|
|||
$header = pht('INLINE COMMENTS');
|
||||
|
||||
$section_text = "\n".$section->getPlaintext();
|
||||
if ($limit_note) {
|
||||
$section_text = $limit_note."\n".$section_text;
|
||||
}
|
||||
|
||||
$style = array(
|
||||
'margin: 6px 0 12px 0;',
|
||||
|
@ -912,6 +926,16 @@ final class DifferentialTransactionEditor
|
|||
),
|
||||
$section->getHTML());
|
||||
|
||||
if ($limit_note) {
|
||||
$section_html = array(
|
||||
phutil_tag(
|
||||
'em',
|
||||
array(),
|
||||
$limit_note),
|
||||
$section_html,
|
||||
);
|
||||
}
|
||||
|
||||
$body->addPlaintextSection($header, $section_text, false);
|
||||
$body->addHTMLSection($header, $section_html);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue