Page MenuHomePhabricator

D21650.diff
No OneTemporary

D21650.diff

diff --git a/src/applications/differential/render/DifferentialChangesetRenderer.php b/src/applications/differential/render/DifferentialChangesetRenderer.php
--- a/src/applications/differential/render/DifferentialChangesetRenderer.php
+++ b/src/applications/differential/render/DifferentialChangesetRenderer.php
@@ -718,6 +718,9 @@
foreach ($views as $key => $view) {
$scaffold = $this->getRowScaffoldForInline($view);
+
+ $scaffold->setIsUndoTemplate(true);
+
$views[$key] = id(new PHUIDiffInlineCommentTableScaffold())
->addRowScaffold($scaffold);
}
diff --git a/src/infrastructure/diff/view/PHUIDiffInlineCommentRowScaffold.php b/src/infrastructure/diff/view/PHUIDiffInlineCommentRowScaffold.php
--- a/src/infrastructure/diff/view/PHUIDiffInlineCommentRowScaffold.php
+++ b/src/infrastructure/diff/view/PHUIDiffInlineCommentRowScaffold.php
@@ -10,6 +10,16 @@
abstract class PHUIDiffInlineCommentRowScaffold extends AphrontView {
private $views = array();
+ private $isUndoTemplate;
+
+ final public function setIsUndoTemplate($is_undo_template) {
+ $this->isUndoTemplate = $is_undo_template;
+ return $this;
+ }
+
+ final public function getIsUndoTemplate() {
+ return $this->isUndoTemplate;
+ }
public function getInlineViews() {
return $this->views;
@@ -21,11 +31,28 @@
}
protected function getRowAttributes() {
+ $is_undo_template = $this->getIsUndoTemplate();
+
$is_hidden = false;
- foreach ($this->getInlineViews() as $view) {
- if ($view->isHidden()) {
- $is_hidden = true;
+ if ($is_undo_template) {
+
+ // NOTE: When this scaffold is turned into an "undo" template, it is
+ // important it not have any metadata: the metadata reference will be
+ // copied to each instance of the row. This is a complicated mess; for
+ // now, just sneak by without generating metadata when rendering undo
+ // templates.
+
+ $metadata = null;
+ } else {
+ foreach ($this->getInlineViews() as $view) {
+ if ($view->isHidden()) {
+ $is_hidden = true;
+ }
}
+
+ $metadata = array(
+ 'hidden' => $is_hidden,
+ );
}
$classes = array();
@@ -37,9 +64,7 @@
$result = array(
'class' => implode(' ', $classes),
'sigil' => 'inline-row',
- 'meta' => array(
- 'hidden' => $is_hidden,
- ),
+ 'meta' => $metadata,
);
return $result;
diff --git a/src/infrastructure/diff/view/PHUIDiffInlineCommentUndoView.php b/src/infrastructure/diff/view/PHUIDiffInlineCommentUndoView.php
--- a/src/infrastructure/diff/view/PHUIDiffInlineCommentUndoView.php
+++ b/src/infrastructure/diff/view/PHUIDiffInlineCommentUndoView.php
@@ -27,7 +27,7 @@
array(
'class' => 'differential-inline-undo',
),
- array(pht('Changes discarded. '), $link));
+ array(pht('Changes discarded.'), ' ', $link));
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 12:06 AM (3 d, 9 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7716151
Default Alt Text
D21650.diff (2 KB)

Event Timeline