mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-22 04:31:13 +01:00
Added 'Next' and 'Previous' links to differential
Summary: Browsing comments was a bit difficult without the possibllity to jump between comments. These links will make the browsing easier. Test Plan: Tested on multiple diffs that the links were working correctly. Reviewed By: epriestley Reviewers: epriestley CC: jungejason, aran, tuomaspelkonen, epriestley Differential Revision: 266
This commit is contained in:
parent
f36c852542
commit
43f6cc75f6
5 changed files with 75 additions and 11 deletions
|
@ -61,6 +61,15 @@ celerity_register_resource_map(array(
|
|||
),
|
||||
'disk' => '/rsrc/css/aphront/headsup-action-list-view.css',
|
||||
),
|
||||
'aphront-list-filter-view-css' =>
|
||||
array(
|
||||
'uri' => '/res/e6cff171/rsrc/css/aphront/list-filter-view.css',
|
||||
'type' => 'css',
|
||||
'requires' =>
|
||||
array(
|
||||
),
|
||||
'disk' => '/rsrc/css/aphront/list-filter-view.css',
|
||||
),
|
||||
0 =>
|
||||
array(
|
||||
'uri' => '/res/39de799e/rsrc/js/javelin/docs/Base.js',
|
||||
|
@ -71,15 +80,6 @@ celerity_register_resource_map(array(
|
|||
),
|
||||
'disk' => '/rsrc/js/javelin/docs/Base.js',
|
||||
),
|
||||
'aphront-list-filter-view-css' =>
|
||||
array(
|
||||
'uri' => '/res/e6cff171/rsrc/css/aphront/list-filter-view.css',
|
||||
'type' => 'css',
|
||||
'requires' =>
|
||||
array(
|
||||
),
|
||||
'disk' => '/rsrc/css/aphront/list-filter-view.css',
|
||||
),
|
||||
'aphront-pager-view-css' =>
|
||||
array(
|
||||
'uri' => '/res/43fb79f0/rsrc/css/aphront/pager-view.css',
|
||||
|
@ -322,6 +322,18 @@ celerity_register_resource_map(array(
|
|||
),
|
||||
'disk' => '/rsrc/js/application/differential/behavior-add-reviewers.js',
|
||||
),
|
||||
'javelin-behavior-differential-comment-jump' =>
|
||||
array(
|
||||
'uri' => '/res/a84186de/rsrc/js/application/differential/behavior-comment-jump.js',
|
||||
'type' => 'js',
|
||||
'requires' =>
|
||||
array(
|
||||
0 => 'javelin-behavior',
|
||||
1 => 'javelin-util',
|
||||
2 => 'javelin-dom',
|
||||
),
|
||||
'disk' => '/rsrc/js/application/differential/behavior-comment-jump.js',
|
||||
),
|
||||
'javelin-behavior-differential-diff-radios' =>
|
||||
array(
|
||||
'uri' => '/res/004cb66f/rsrc/js/application/differential/behavior-diff-radios.js',
|
||||
|
|
|
@ -192,6 +192,8 @@ class DifferentialChangesetViewController extends DifferentialController {
|
|||
'whitespace' => $request->getStr('whitespace'),
|
||||
));
|
||||
|
||||
Javelin::initBehavior('differential-comment-jump', array());
|
||||
|
||||
$detail = new DifferentialChangesetDetailView();
|
||||
$detail->setChangeset($changeset);
|
||||
$detail->appendChild($output);
|
||||
|
@ -219,7 +221,8 @@ class DifferentialChangesetViewController extends DifferentialController {
|
|||
|
||||
$output =
|
||||
'<div class="differential-primary-pane">'.
|
||||
'<div class="differential-review-stage">'.
|
||||
'<div class="differential-review-stage" '.
|
||||
'id="differential-review-stage">'.
|
||||
$detail->render().
|
||||
'</div>'.
|
||||
'</div>';
|
||||
|
|
|
@ -133,6 +133,8 @@ class DifferentialChangesetListView extends AphrontView {
|
|||
'uri' => $this->renderURI,
|
||||
));
|
||||
|
||||
Javelin::initBehavior('differential-comment-jump', array());
|
||||
|
||||
if ($this->editable) {
|
||||
$revision = $this->revision;
|
||||
Javelin::initBehavior('differential-edit-inline-comments', array(
|
||||
|
@ -141,7 +143,7 @@ class DifferentialChangesetListView extends AphrontView {
|
|||
}
|
||||
|
||||
return
|
||||
'<div class="differential-review-stage">'.
|
||||
'<div class="differential-review-stage" id="differential-review-stage">'.
|
||||
implode("\n", $output).
|
||||
'</div>';
|
||||
}
|
||||
|
|
|
@ -82,6 +82,24 @@ final class DifferentialInlineCommentView extends AphrontView {
|
|||
|
||||
$links = array();
|
||||
|
||||
$links[] = javelin_render_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'mustcapture' => true,
|
||||
'sigil' => 'differential-inline-prev',
|
||||
),
|
||||
'Previous');
|
||||
|
||||
$links[] = javelin_render_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => '#',
|
||||
'mustcapture' => true,
|
||||
'sigil' => 'differential-inline-next',
|
||||
),
|
||||
'Next');
|
||||
|
||||
$links[] = javelin_render_tag(
|
||||
'a',
|
||||
array(
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* @provides javelin-behavior-differential-comment-jump
|
||||
* @requires javelin-behavior
|
||||
* javelin-util
|
||||
* javelin-dom
|
||||
*/
|
||||
|
||||
JX.behavior('differential-comment-jump', function(config) {
|
||||
function handle_jump(offset) {
|
||||
return (function(e) {
|
||||
var parent = JX.$('differential-review-stage');
|
||||
var clicked = e.getNode('differential-inline-comment');
|
||||
var inlines = JX.DOM.scry(parent, 'div', 'differential-inline-comment');
|
||||
var jumpto = null;
|
||||
|
||||
for (var ii = 0; ii < inlines.length; ii++) {
|
||||
if (inlines[ii] == clicked) {
|
||||
jumpto = inlines[(ii + offset + inlines.length) % inlines.length];
|
||||
break;
|
||||
}
|
||||
}
|
||||
JX.DOM.scrollTo(jumpto);
|
||||
e.kill();
|
||||
});
|
||||
}
|
||||
|
||||
JX.Stratcom.listen('click', 'differential-inline-prev', handle_jump(-1));
|
||||
JX.Stratcom.listen('click', 'differential-inline-next', handle_jump(+1));
|
||||
});
|
Loading…
Reference in a new issue