Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/differential/behavior-comment-jump.js
| /** | /** | ||||
| * @provides javelin-behavior-differential-comment-jump | * @provides javelin-behavior-differential-comment-jump | ||||
| * @requires javelin-behavior | * @requires javelin-behavior | ||||
| * javelin-stratcom | * javelin-stratcom | ||||
| * javelin-dom | * javelin-dom | ||||
| */ | */ | ||||
| JX.behavior('differential-comment-jump', function() { | JX.behavior('differential-comment-jump', function() { | ||||
| function handle_jump(offset) { | function handle_jump(offset) { | ||||
| return (function(e) { | return function(e) { | ||||
| var parent = JX.$('differential-review-stage'); | var parent = JX.$('differential-review-stage'); | ||||
| var clicked = e.getNode('differential-inline-comment'); | var clicked = e.getNode('differential-inline-comment'); | ||||
| var inlines = JX.DOM.scry(parent, 'div', 'differential-inline-comment'); | var inlines = JX.DOM.scry(parent, 'div', 'differential-inline-comment'); | ||||
| var jumpto = null; | var jumpto = null; | ||||
| for (var ii = 0; ii < inlines.length; ii++) { | for (var ii = 0; ii < inlines.length; ii++) { | ||||
| if (inlines[ii] == clicked) { | if (inlines[ii] == clicked) { | ||||
| jumpto = inlines[(ii + offset + inlines.length) % inlines.length]; | jumpto = inlines[(ii + offset + inlines.length) % inlines.length]; | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| JX.Stratcom.invoke('differential-toggle-file-request', null, { | JX.Stratcom.invoke('differential-toggle-file-request', null, { | ||||
| element: jumpto | element: jumpto | ||||
| }); | }); | ||||
| JX.DOM.scrollTo(jumpto); | JX.DOM.scrollTo(jumpto); | ||||
| e.kill(); | e.kill(); | ||||
| }); | }; | ||||
| } | } | ||||
| JX.Stratcom.listen('click', 'differential-inline-prev', handle_jump(-1)); | JX.Stratcom.listen('click', 'differential-inline-prev', handle_jump(-1)); | ||||
| JX.Stratcom.listen('click', 'differential-inline-next', handle_jump(+1)); | JX.Stratcom.listen('click', 'differential-inline-next', handle_jump(+1)); | ||||
| }); | }); | ||||