[MediaWiki-commits] [Gerrit] Enable moving of the pointers by clicking on the revisions. - change (mediawiki...RevisionSlider)
WMDE-leszek has submitted this change and it was merged. Change subject: Enable moving of the pointers by clicking on the revisions. .. Enable moving of the pointers by clicking on the revisions. Bug: T134993 Change-Id: I6b467d8b89bdccc2d6e01fbd94ac5890a07d20b4 --- M modules/ext.RevisionSlider.PointerView.js M modules/ext.RevisionSlider.SliderView.js 2 files changed, 111 insertions(+), 53 deletions(-) Approvals: WMDE-leszek: Verified; Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ext.RevisionSlider.PointerView.js b/modules/ext.RevisionSlider.PointerView.js index d229340..ffc106c 100644 --- a/modules/ext.RevisionSlider.PointerView.js +++ b/modules/ext.RevisionSlider.PointerView.js @@ -49,19 +49,19 @@ }, animateTo: function ( posInPx, duration ) { - this.getElement().animate( { left: posInPx }, duration ); + return this.getElement().animate( { left: posInPx }, duration ); }, slideToPosition: function ( slider, duration ) { var relativePos = this.pointer.getPosition() - slider.getFirstVisibleRevisionIndex(); - this.animateTo( relativePos * slider.getView().revisionWidth + 4, duration ); // +4 to align triangle and revision + return this.animateTo( relativePos * slider.getView().revisionWidth + 4, duration ); // +4 to align triangle and revision }, slideToSide: function ( slider, posBeforeSlider, duration ) { if ( posBeforeSlider ) { - this.animateTo( this.offset - slider.getView().revisionWidth + 20, duration ); // +20 otherwise pointer is in arrow + return this.animateTo( this.offset - slider.getView().revisionWidth + 20, duration ); // +20 otherwise pointer is in arrow } else { - this.animateTo( ( slider.getRevisionsPerWindow() + 1 ) * slider.getView().revisionWidth - this.offset, duration ); + return this.animateTo( ( slider.getRevisionsPerWindow() + 1 ) * slider.getView().revisionWidth - this.offset, duration ); } }, @@ -70,9 +70,9 @@ posBeforeSlider = this.pointer.getPosition() < firstVisibleRev, isVisible = !posBeforeSlider && this.pointer.getPosition() <= firstVisibleRev + slider.getRevisionsPerWindow(); if ( isVisible ) { - this.slideToPosition( slider, duration ); + return this.slideToPosition( slider, duration ); } else { - this.slideToSide( slider, posBeforeSlider, duration ); + return this.slideToSide( slider, posBeforeSlider, duration ); } } } ); diff --git a/modules/ext.RevisionSlider.SliderView.js b/modules/ext.RevisionSlider.SliderView.js index 53546be..61d7181 100644 --- a/modules/ext.RevisionSlider.SliderView.js +++ b/modules/ext.RevisionSlider.SliderView.js @@ -1,6 +1,7 @@ ( function ( mw, $ ) { var SliderView = function ( slider ) { this.slider = slider; + this.diffPage = new mw.libs.revisionSlider.DiffPage( this.slider.getRevisions() ); }; $.extend( SliderView.prototype, { @@ -12,6 +13,11 @@ * @type {jQuery} */ $element: null, + + /** +* @type {DiffPage} +*/ + diffPage: null, /** * @type {Slider} @@ -30,7 +36,6 @@ render: function ( $container ) { var containerWidth = this.calculateSliderContainerWidth(), - diffPage = new mw.libs.revisionSlider.DiffPage( this.slider.getRevisions() ), $revisions = this.slider.getRevisions().getView().render( this.revisionWidth ), $slider = $( '' ), self = this; @@ -80,24 +85,49 @@ self.resetPointerStylesBasedOnPosition(); self.resetRevisionStylesBasedOnPointerPosition( $revisions ); - revId1 = $revisions - .find( 'div.revision[data-pos=\'' + self.pointerOne.getPosition() + '\']' ) - .data( 'revid' ); - revId2 = $revisions - .find( 'div.revision[data-pos=\'' +
[MediaWiki-commits] [Gerrit] Enable moving of the pointers by clicking on the revisions. - change (mediawiki...RevisionSlider)
Jakob has uploaded a new change for review. https://gerrit.wikimedia.org/r/289841 Change subject: Enable moving of the pointers by clicking on the revisions. .. Enable moving of the pointers by clicking on the revisions. Bug: T134993 Change-Id: I6b467d8b89bdccc2d6e01fbd94ac5890a07d20b4 --- M modules/ext.RevisionSlider.PointerView.js M modules/ext.RevisionSlider.SliderView.js 2 files changed, 88 insertions(+), 36 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/RevisionSlider refs/changes/41/289841/1 diff --git a/modules/ext.RevisionSlider.PointerView.js b/modules/ext.RevisionSlider.PointerView.js index 9575b0a..4c98ae0 100644 --- a/modules/ext.RevisionSlider.PointerView.js +++ b/modules/ext.RevisionSlider.PointerView.js @@ -49,19 +49,19 @@ }, animateTo: function ( posInPx, duration ) { - this.getElement().animate( { left: posInPx }, duration ); + return this.getElement().animate( { left: posInPx }, duration ); }, slideToPosition: function ( slider, duration ) { var relativePos = this.pointer.getPosition() - slider.getFirstVisibleRevisionIndex(); - this.animateTo( relativePos * slider.getView().revisionWidth, duration ); + return this.animateTo( relativePos * slider.getView().revisionWidth, duration ); }, slideToSide: function ( slider, posBeforeSlider, duration ) { if ( posBeforeSlider ) { - this.animateTo( this.offset - slider.getView().revisionWidth, duration ); + return this.animateTo( this.offset - slider.getView().revisionWidth, duration ); } else { - this.animateTo( ( slider.getRevisionsPerWindow() + 1 ) * slider.getView().revisionWidth - this.offset, duration ); + return this.animateTo( ( slider.getRevisionsPerWindow() + 1 ) * slider.getView().revisionWidth - this.offset, duration ); } }, @@ -70,9 +70,9 @@ posBeforeSlider = this.pointer.getPosition() < firstVisibleRev, isVisible = !posBeforeSlider && this.pointer.getPosition() <= firstVisibleRev + slider.getRevisionsPerWindow(); if ( isVisible ) { - this.slideToPosition( slider, duration ); + return this.slideToPosition( slider, duration ); } else { - this.slideToSide( slider, posBeforeSlider, duration ); + return this.slideToSide( slider, posBeforeSlider, duration ); } } } ); diff --git a/modules/ext.RevisionSlider.SliderView.js b/modules/ext.RevisionSlider.SliderView.js index 14717f1..8f59ed6 100644 --- a/modules/ext.RevisionSlider.SliderView.js +++ b/modules/ext.RevisionSlider.SliderView.js @@ -1,6 +1,7 @@ ( function ( mw, $ ) { var SliderView = function ( slider ) { this.slider = slider; + this.diffPage = new mw.libs.revisionSlider.DiffPage( this.slider.getRevisions() ); }; $.extend( SliderView.prototype, { @@ -12,6 +13,11 @@ * @type {jQuery} */ $element: null, + + /** +* @type {DiffPage} +*/ + diffPage: null, /** * @type {Slider} @@ -30,7 +36,6 @@ render: function ( $container ) { var containerWidth = this.calculateSliderContainerWidth(), - diffPage = new mw.libs.revisionSlider.DiffPage( this.slider.getRevisions() ), $revisions = this.slider.getRevisions().getView().render( this.revisionWidth ), $slider = $( '' ), self = this; @@ -85,43 +90,83 @@ .find( 'div.revision[data-pos=\'' + self.pointerTwo.getPosition() + '\']' ) .data( 'revid' ); - diffPage.refresh( revId1, revId2 ); - diffPage.pushState( revId1, revId2, self ); + self.diffPage.refresh( revId1, revId2 ); + self.diffPage.pushState( revId1, revId2, self ); }, drag: function () { - self.resetPointerColorsBasedOnOffset(); +