changesets = $changesets; return $this; } public function setEditable($editable) { $this->editable = $editable; return $this; } public function setRevision(DifferentialRevision $revision) { $this->revision = $revision; return $this; } public function render() { require_celerity_resource('differential-changeset-view-css'); $against = array(); // TODO $edit = false; $changesets = $this->changesets; foreach ($changesets as $key => $changeset) { if (empty($against[$changeset->getID()])) { $type = $changeset->getChangeType(); if ($type == DifferentialChangeType::TYPE_MOVE_AWAY || $type == DifferentialChangeType::TYPE_MULTICOPY) { unset($changesets[$key]); } } } $output = array(); $mapping = array(); foreach ($changesets as $key => $changeset) { $file = $changeset->getFilename(); $class = 'differential-changeset'; if (!$edit) { $class .= ' differential-changeset-noneditable'; } $id = $changeset->getID(); if ($id) { $against_id = idx($against, $id); } else { $against_id = null; } /* TODO $detail_uri = URI($render_uri) ->addQueryData(array( 'changeset' => $id, 'against' => $against_id, 'whitespace' => $whitespace, )); */ $detail_uri = '/differential/changeset/?id='.$changeset->getID(); $detail_button = phutil_render_tag( 'a', array( 'style' => 'float: right', 'class' => 'button small grey', 'href' => $detail_uri, 'target' => '_blank', ), 'Standalone View'); $uniq_id = celerity_generate_unique_node_id(); $detail = new DifferentialChangesetDetailView(); $detail->setChangeset($changeset); $detail->addButton($detail_button); $detail->appendChild( phutil_render_tag( 'div', array( 'id' => $uniq_id, ), '
Loading...
')); $output[] = $detail->render(); $mapping[$uniq_id] = array($changeset->getID()); } $whitespace = null; Javelin::initBehavior('differential-populate', array( 'registry' => $mapping, 'whitespace' => $whitespace, 'uri' => '/differential/changeset/', )); Javelin::initBehavior('differential-show-more', array( 'uri' => '/differential/changeset/', )); if ($this->editable) { $revision = $this->revision; Javelin::initBehavior('differential-edit-inline-comments', array( 'uri' => '/differential/inline/edit/'.$revision->getID().'/', )); } return '
'. implode("\n", $output). '
'; } }