Page MenuHomePhabricator

D12012.diff
No OneTemporary

D12012.diff

diff --git a/src/applications/differential/controller/DifferentialChangesetViewController.php b/src/applications/differential/controller/DifferentialChangesetViewController.php
--- a/src/applications/differential/controller/DifferentialChangesetViewController.php
+++ b/src/applications/differential/controller/DifferentialChangesetViewController.php
@@ -147,13 +147,13 @@
list($range_s, $range_e, $mask) =
DifferentialChangesetParser::parseRangeSpecification($spec);
- $parser = new DifferentialChangesetParser();
- $parser->setCoverage($coverage);
- $parser->setChangeset($changeset);
- $parser->setRenderingReference($rendering_reference);
- $parser->setRenderCacheKey($render_cache_key);
- $parser->setRightSideCommentMapping($right_source, $right_new);
- $parser->setLeftSideCommentMapping($left_source, $left_new);
+ $parser = id(new DifferentialChangesetParser())
+ ->setCoverage($coverage)
+ ->setChangeset($changeset)
+ ->setRenderingReference($rendering_reference)
+ ->setRenderCacheKey($render_cache_key)
+ ->setRightSideCommentMapping($right_source, $right_new)
+ ->setLeftSideCommentMapping($left_source, $left_new);
$parser->readParametersFromRequest($request);
@@ -200,66 +200,51 @@
}
$engine->process();
- $parser->setMarkupEngine($engine);
- $parser->setUser($request->getUser());
-
- if ($request->isAjax()) {
- $parser->setShowEditAndReplyLinks(true);
- } else {
- $parser->setShowEditAndReplyLinks(false);
- }
-
- $output = $parser->render($range_s, $range_e, $mask);
- $mcov = $parser->renderModifiedCoverage();
+ $parser
+ ->setUser($request->getUser())
+ ->setMarkupEngine($engine)
+ ->setShowEditAndReplyLinks(true)
+ ->setRange($range_s, $range_e)
+ ->setMask($mask);
if ($request->isAjax()) {
+ $mcov = $parser->renderModifiedCoverage();
+
$coverage = array(
'differential-mcoverage-'.md5($changeset->getFilename()) => $mcov,
);
return id(new PhabricatorChangesetResponse())
- ->setRenderedChangeset($output)
+ ->setRenderedChangeset($parser->renderChangeset())
->setCoverage($coverage);
}
- // TODO: [HTML] Clean up DifferentialChangesetParser output, but it's
- // undergoing like six kinds of refactoring anyway.
- $output = phutil_safe_html($output);
+ $diff = $changeset->getDiff();
- $detail = id(new DifferentialChangesetDetailView())
+ $detail = id(new DifferentialChangesetListView())
->setUser($this->getViewer())
- ->setChangeset($changeset)
- ->setRenderingRef($rendering_reference)
+ ->setChangesets(array($changeset))
+ ->setVisibleChangesets(array($changeset))
+ ->setRenderingReferences(array($rendering_reference))
->setRenderURI('/differential/changeset/')
- ->setRenderer($parser->getRenderer()->getRendererKey())
- ->appendChild($output)
- ->setVsChangesetID($left_source);
+ ->setDiff($diff)
+ ->setTitle(pht('Standalone View'))
+ ->setParser($parser);
- Javelin::initBehavior('differential-populate', array(
- 'changesetViewIDs' => array($detail->getID()),
- ));
-
- Javelin::initBehavior('differential-comment-jump', array());
-
- $panel = new DifferentialPrimaryPaneView();
- $panel->appendChild(
- phutil_tag(
- 'div',
- array(
- 'class' => 'differential-review-stage',
- 'id' => 'differential-review-stage',
- ),
- $detail->render()));
+ $revision_id = $diff->getRevisionID();
+ if ($revision_id) {
+ $detail->setInlineCommentControllerURI(
+ '/differential/comment/inline/edit/'.$revision_id.'/');
+ }
$crumbs = $this->buildApplicationCrumbs();
- $revision_id = $changeset->getDiff()->getRevisionID();
if ($revision_id) {
$crumbs->addTextCrumb('D'.$revision_id, '/D'.$revision_id);
}
- $diff_id = $changeset->getDiff()->getID();
+ $diff_id = $diff->getID();
if ($diff_id) {
$crumbs->addTextCrumb(
pht('Diff %d', $diff_id),
@@ -268,14 +253,10 @@
$crumbs->addTextCrumb($changeset->getDisplayFilename());
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Standalone View'))
- ->appendChild($panel);
-
return $this->buildApplicationPage(
array(
$crumbs,
- $box,
+ $detail,
),
array(
'title' => pht('Changeset View'),
diff --git a/src/applications/differential/parser/DifferentialChangesetParser.php b/src/applications/differential/parser/DifferentialChangesetParser.php
--- a/src/applications/differential/parser/DifferentialChangesetParser.php
+++ b/src/applications/differential/parser/DifferentialChangesetParser.php
@@ -45,6 +45,25 @@
private $highlightAs;
private $showEditAndReplyLinks = true;
+ private $rangeStart;
+ private $rangeEnd;
+ private $mask;
+
+ public function setRange($start, $end) {
+ $this->rangeStart = $start;
+ $this->rangeEnd = $end;
+ return $this;
+ }
+
+ public function setMask(array $mask) {
+ $this->mask = $mask;
+ return $this;
+ }
+
+ public function renderChangeset() {
+ return $this->render($this->rangeStart, $this->rangeEnd, $this->mask);
+ }
+
public function setShowEditAndReplyLinks($bool) {
$this->showEditAndReplyLinks = $bool;
return $this;
diff --git a/src/applications/differential/view/DifferentialChangesetDetailView.php b/src/applications/differential/view/DifferentialChangesetDetailView.php
--- a/src/applications/differential/view/DifferentialChangesetDetailView.php
+++ b/src/applications/differential/view/DifferentialChangesetDetailView.php
@@ -12,6 +12,7 @@
private $whitespace;
private $renderingRef;
private $autoload;
+ private $loaded;
private $renderer;
public function setAutoload($autoload) {
@@ -23,6 +24,15 @@
return $this->autoload;
}
+ public function setLoaded($loaded) {
+ $this->loaded = $loaded;
+ return $this;
+ }
+
+ public function getLoaded() {
+ return $this->loaded;
+ }
+
public function setRenderingRef($rendering_ref) {
$this->renderingRef = $rendering_ref;
return $this;
@@ -213,6 +223,7 @@
'renderer' => $this->getRenderer(),
'ref' => $this->getRenderingRef(),
'autoload' => $this->getAutoload(),
+ 'loaded' => $this->getLoaded(),
),
'class' => $class,
'id' => $id,
diff --git a/src/applications/differential/view/DifferentialChangesetListView.php b/src/applications/differential/view/DifferentialChangesetListView.php
--- a/src/applications/differential/view/DifferentialChangesetListView.php
+++ b/src/applications/differential/view/DifferentialChangesetListView.php
@@ -20,6 +20,16 @@
private $vsMap = array();
private $title;
+ private $parser;
+
+ public function setParser(DifferentialChangesetParser $parser) {
+ $this->parser = $parser;
+ return $this;
+ }
+
+ public function getParser() {
+ return $this->parser;
+ }
public function setTitle($title) {
$this->title = $title;
@@ -168,38 +178,46 @@
$detail->setVsChangesetID(idx($this->vsMap, $changeset->getID()));
$detail->setEditable(true);
$detail->setRenderingRef($ref);
- $detail->setAutoload(isset($this->visibleChangesets[$key]));
$detail->setRenderURI($this->renderURI);
$detail->setWhitespace($this->whitespace);
$detail->setRenderer($renderer);
- if (isset($this->visibleChangesets[$key])) {
- $load = 'Loading...';
+ if ($this->getParser()) {
+ $detail->appendChild($this->getParser()->renderChangeset());
+ $detail->setLoaded(true);
} else {
- $load = javelin_tag(
- 'a',
- array(
- 'class' => 'button grey',
- 'href' => '#'.$uniq_id,
- 'sigil' => 'differential-load',
- 'meta' => array(
- 'id' => $detail->getID(),
- 'kill' => true,
+ $detail->setAutoload(isset($this->visibleChangesets[$key]));
+ if (isset($this->visibleChangesets[$key])) {
+ $load = 'Loading...';
+ } else {
+ $load = javelin_tag(
+ 'a',
+ array(
+ 'class' => 'button grey',
+ 'href' => '#'.$uniq_id,
+ 'sigil' => 'differential-load',
+ 'meta' => array(
+ 'id' => $detail->getID(),
+ 'kill' => true,
+ ),
+ 'mustcapture' => true,
+ ),
+ pht('Load File'));
+ }
+ $detail->appendChild(
+ phutil_tag(
+ 'div',
+ array(
+ 'id' => $uniq_id,
),
- 'mustcapture' => true,
- ),
- pht('Load File'));
+ phutil_tag(
+ 'div',
+ array('class' => 'differential-loading'),
+ $load)));
}
- $detail->appendChild(
- phutil_tag(
- 'div',
- array(
- 'id' => $uniq_id,
- ),
- phutil_tag('div', array('class' => 'differential-loading'), $load)));
- $output[] = $detail->render();
+ $output[] = $detail->render();
$ids[] = $detail->getID();
}
diff --git a/webroot/rsrc/js/application/differential/ChangesetViewManager.js b/webroot/rsrc/js/application/differential/ChangesetViewManager.js
--- a/webroot/rsrc/js/application/differential/ChangesetViewManager.js
+++ b/webroot/rsrc/js/application/differential/ChangesetViewManager.js
@@ -23,6 +23,7 @@
this._renderer = data.renderer;
this._highlight = data.highlight;
this._encoding = data.encoding;
+ this._loaded = data.loaded;
},
members: {

File Metadata

Mime Type
text/plain
Expires
May 14 2024, 12:07 AM (4 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6277190
Default Alt Text
D12012.diff (9 KB)

Event Timeline