mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-13 18:32:41 +01:00
ecc32e4d08
Summary: Differential used to only show diffs for the first 100 files. Now all the files are shown in the table of contents and there is a link to the standalone view for every file. The inline diffs can still be seen, if user clicks "Show All Files Inline". Inline comments can also be added in the standalone view, but there is no form to submit them. The revision page must be reloaded to able to submit the inline comment. Test Plan: Changed the limit to three for testing purposes and checked that a diff of mine with 5 files had the links to the standalone views. Made sure that adding a comment in a standalone view worked and that after reloading the revision page the comment was visible. Changed the limit back to 100 and made sure that my diff had all the files inline and that the anchor links were working. Reviewed By: jungejason Reviewers: jungejason CC: epriestley, simpkins, jungejason, tuomaspelkonen Differential Revision: 147
88 lines
2.2 KiB
PHP
88 lines
2.2 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Copyright 2011 Facebook, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
class DifferentialChangesetDetailView extends AphrontView {
|
|
|
|
private $changeset;
|
|
private $buttons = array();
|
|
private $revisionID;
|
|
|
|
public function setChangeset($changeset) {
|
|
$this->changeset = $changeset;
|
|
return $this;
|
|
}
|
|
|
|
public function addButton($button) {
|
|
$this->buttons[] = $button;
|
|
return $this;
|
|
}
|
|
|
|
public function setRevisionID($revision_id) {
|
|
$this->revisionID = $revision_id;
|
|
return $this;
|
|
}
|
|
|
|
public function render() {
|
|
require_celerity_resource('differential-changeset-view-css');
|
|
require_celerity_resource('syntax-highlighting-css');
|
|
|
|
if ($this->revisionID) {
|
|
$edit = true;
|
|
} else {
|
|
$edit = false;
|
|
}
|
|
|
|
$changeset = $this->changeset;
|
|
$class = 'differential-changeset';
|
|
if (!$edit) {
|
|
$class .= ' differential-changeset-immutable';
|
|
}
|
|
|
|
$display_filename = $changeset->getDisplayFilename();
|
|
$output = javelin_render_tag(
|
|
'div',
|
|
array(
|
|
'sigil' => 'differential-changeset',
|
|
'meta' => array(
|
|
'left' => $this->changeset->getID(),
|
|
'right' => $this->changeset->getID(),
|
|
),
|
|
'class' => $class,
|
|
),
|
|
phutil_render_tag(
|
|
'a',
|
|
array(
|
|
'name' => $changeset->getAnchorName(),
|
|
),
|
|
'').
|
|
implode('', $this->buttons).
|
|
'<h1>'.phutil_escape_html($display_filename).'</h1>'.
|
|
'<div style="clear: both;"></div>'.
|
|
$this->renderChildren());
|
|
|
|
if ($edit) {
|
|
Javelin::initBehavior(
|
|
'differential-edit-inline-comments', array(
|
|
'uri' => '/differential/comment/inline/edit/'.$this->revisionID.'/',
|
|
));
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
|
|
}
|