WMDE-Fisch has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/363159 )

Change subject: Merge container and pointer building and dependencies
......................................................................

Merge container and pointer building and dependencies

Change-Id: I6c933b0702910aca4c38b2e4a5098f11fdc28ad5
---
M modules/ext.RevisionSlider.SliderView.js
M modules/ext.RevisionSlider.SliderViewTwo.js
2 files changed, 113 insertions(+), 164 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/RevisionSlider 
refs/changes/59/363159/1

diff --git a/modules/ext.RevisionSlider.SliderView.js 
b/modules/ext.RevisionSlider.SliderView.js
index a400dda..fb9e1fa 100644
--- a/modules/ext.RevisionSlider.SliderView.js
+++ b/modules/ext.RevisionSlider.SliderView.js
@@ -159,24 +159,58 @@
                 * @return {jQuery} the pointer container
                 */
                renderPointerContainer: function ( containerWidth ) {
-                       var pointerContainerSideOffset = 53,
+                       var pointerContainerPosition = 53,
                                pointerContainerWidth = containerWidth + 
this.revisionWidth - 1,
-                               pointerContainerStyle;
+                               pointerContainerStyle, lastMouseMoveRevisionPos,
+                               self = this;
 
-                       pointerContainerStyle = { left: 
pointerContainerSideOffset + 'px', width: pointerContainerWidth + 'px' };
+                       pointerContainerStyle = { left: 
pointerContainerPosition + 'px', width: pointerContainerWidth + 'px' };
                        if ( this.dir === 'rtl' ) {
                                // Due to properly limit dragging a pointer on 
the right side of the screen,
                                // there must some extra space added to the 
right of the revision bar container
                                // For this reason right position of the 
pointer container in the RTL mode is
                                // a bit moved off right compared to its left 
position in the LTR mode
-                               pointerContainerSideOffset = 
pointerContainerSideOffset - this.revisionWidth + 1;
-                               pointerContainerStyle = { right: 
pointerContainerSideOffset + 'px', width: pointerContainerWidth + 'px' };
+                               pointerContainerPosition = 
pointerContainerPosition - this.revisionWidth + 1;
+                               pointerContainerStyle = { right: 
pointerContainerPosition + 'px', width: pointerContainerWidth + 'px' };
                        }
 
                        return $( '<div>' )
                                .addClass( 'mw-revslider-pointer-container' )
                                .css( pointerContainerStyle )
-                               .append( this.pointerOlder.getView().render(), 
this.pointerNewer.getView().render() );
+                               .append( this.renderPointerContainers() )
+                               .mousemove( function ( event ) {
+                                       if ( !self.isDragged ) {
+                                               lastMouseMoveRevisionPos = 
self.showTooltipsOnMouseMoveHandler(
+                                                       event,
+                                                       lastMouseMoveRevisionPos
+                                               );
+                                       }
+                               } );
+               },
+
+               renderPointerContainers: function () {
+                       var self = this;
+
+                       return [
+                               $( '<div>' )
+                                       .addClass( 
'mw-revslider-pointer-container-newer' )
+                                       .click( function ( event ) {
+                                               self.sliderLineClickHandler( 
event, $( this ) );
+                                       } )
+                                       .append(
+                                               $( '<div>' ).addClass( 
'mw-revslider-slider-line' ),
+                                               
this.pointerNewer.getView().render()
+                                       ),
+                               $( '<div>' )
+                                       .addClass( 
'mw-revslider-pointer-container-older' )
+                                       .click( function ( event ) {
+                                               self.sliderLineClickHandler( 
event, $( this ) );
+                                       } )
+                                       .append(
+                                               $( '<div>' ).addClass( 
'mw-revslider-slider-line' ),
+                                               
this.pointerOlder.getView().render()
+                                       )
+                       ];
                },
 
                /**
@@ -186,6 +220,8 @@
                 */
                initPointers: function ( $revisions ) {
                        var $pointers,
+                               $pointerOlder = 
this.pointerOlder.getView().getElement(),
+                               $pointerNewer = 
this.pointerNewer.getView().getElement(),
                                self = this;
 
                        $pointers = this.$element.find( '.mw-revslider-pointer' 
);
@@ -197,11 +233,77 @@
                                }
                        } );
 
-                       $pointers.draggable( this.buildDraggableOptions( 
$revisions, '.mw-revslider-pointer-container' ) );
-                       $pointers.on(
-                               'touchstart touchmove touchend',
-                               mw.libs.revisionSlider.touchEventConverter
-                       );
+                       $pointerOlder.draggable( this.buildDraggableOptions(
+                               $revisions,
+                               '.mw-revslider-pointer-container-older'
+                       ) );
+                       $pointerNewer.draggable( this.buildDraggableOptions(
+                               $revisions,
+                               '.mw-revslider-pointer-container-newer'
+                       ) );
+
+                       $pointerNewer
+                               .on(
+                                       'touchstart touchmove touchend 
touchcancel touchleave',
+                                       
mw.libs.revisionSlider.touchEventConverter
+                               )
+                               .addClass( 'mw-revslider-pointer-newid 
mw-revslider-pointer-upper' );
+                       $pointerOlder
+                               .on(
+                                       'touchstart touchmove touchend 
touchcancel touchleave',
+                                       
mw.libs.revisionSlider.touchEventConverter
+                               )
+                               .addClass( 'mw-revslider-pointer-oldid 
mw-revslider-pointer-lower' );
+               },
+
+               showTooltipsOnMouseMoveHandler: function ( event, 
lastValidPosition ) {
+                       var pos = this.getRevisionPositionFromLeftOffset( 
event.pageX ),
+                               $hoveredRevisionWrapper;
+
+                       if ( pos === lastValidPosition ) {
+                               return pos;
+                       }
+
+                       $hoveredRevisionWrapper = this.getRevElementAtPosition( 
this.getRevisionsElement(), pos ).parent();
+                       this.slider.getRevisions().getView().showTooltip( 
$hoveredRevisionWrapper );
+
+                       return pos;
+               },
+
+               sliderLineClickHandler: function ( event, $line ) {
+                       var pos = this.getRevisionPositionFromLeftOffset( 
event.pageX ),
+                               $clickedRev, pointerMoved, pointerOther, 
$revisions;
+
+                       if ( $line.hasClass( 
'mw-revslider-pointer-container-newer' ) ) {
+                               pointerMoved = this.pointerNewer;
+                               pointerOther = this.pointerOlder;
+                       } else {
+                               pointerMoved = this.pointerOlder;
+                               pointerOther = this.pointerNewer;
+                       }
+
+                       if ( pos === pointerOther.getPosition() ) {
+                               return;
+                       }
+
+                       $revisions = this.getRevisionsElement();
+                       $clickedRev = this.getRevElementAtPosition( $revisions, 
pos );
+
+                       pointerMoved.setPosition( pos );
+                       this.updatePointerPositionAttributes();
+                       if ( $line.hasClass( 
'mw-revslider-pointer-container-newer' ) ) {
+                               this.refreshRevisions(
+                                       $clickedRev.attr( 'data-revid' ),
+                                       this.getRevElementAtPosition( 
$revisions, pointerOther.getPosition() ).attr( 'data-revid' )
+                               );
+                       } else {
+                               this.refreshRevisions(
+                                       this.getRevElementAtPosition( 
$revisions, pointerOther.getPosition() ).attr( 'data-revid' ),
+                                       $clickedRev.attr( 'data-revid' )
+                               );
+                       }
+                       this.resetRevisionStylesBasedOnPointerPosition( 
$revisions );
+                       this.alignPointers();
                },
 
                /**
diff --git a/modules/ext.RevisionSlider.SliderViewTwo.js 
b/modules/ext.RevisionSlider.SliderViewTwo.js
index 604a90d..5817f22 100644
--- a/modules/ext.RevisionSlider.SliderViewTwo.js
+++ b/modules/ext.RevisionSlider.SliderViewTwo.js
@@ -13,109 +13,6 @@
        OO.inheritClass( SliderViewTwo, mw.libs.revisionSlider.SliderView );
 
        $.extend( SliderViewTwo.prototype, {
-               /**
-                * Renders the pointer container and adds the pointers to it
-                *
-                * @param {number} containerWidth
-                * @return {jQuery} the pointer container
-                */
-               renderPointerContainer: function ( containerWidth ) {
-                       var pointerContainerPosition = 53,
-                               pointerContainerWidth = containerWidth + 
this.revisionWidth - 1,
-                               pointerContainerStyle, lastMouseMoveRevisionPos,
-                               self = this;
-
-                       pointerContainerStyle = { left: 
pointerContainerPosition + 'px', width: pointerContainerWidth + 'px' };
-                       if ( this.dir === 'rtl' ) {
-                               // Due to properly limit dragging a pointer on 
the right side of the screen,
-                               // there must some extra space added to the 
right of the revision bar container
-                               // For this reason right position of the 
pointer container in the RTL mode is
-                               // a bit moved off right compared to its left 
position in the LTR mode
-                               pointerContainerPosition = 
pointerContainerPosition - this.revisionWidth + 1;
-                               pointerContainerStyle = { right: 
pointerContainerPosition + 'px', width: pointerContainerWidth + 'px' };
-                       }
-
-                       return $( '<div>' )
-                               .addClass( 'mw-revslider-pointer-container' )
-                               .css( pointerContainerStyle )
-                               .append( this.renderPointerContainers() )
-                               .mousemove( function ( event ) {
-                                       if ( !self.isDragged ) {
-                                               lastMouseMoveRevisionPos = 
self.showTooltipsOnMouseMoveHandler(
-                                                       event,
-                                                       lastMouseMoveRevisionPos
-                                               );
-                                       }
-                               } );
-               },
-
-               renderPointerContainers: function () {
-                       var self = this;
-
-                       return [
-                               $( '<div>' )
-                                       .addClass( 
'mw-revslider-pointer-container-newer' )
-                                       .click( function ( event ) {
-                                               self.sliderLineClickHandler( 
event, $( this ) );
-                                       } )
-                                       .append(
-                                               $( '<div>' ).addClass( 
'mw-revslider-slider-line' ),
-                                               
this.pointerNewer.getView().render()
-                                       ),
-                               $( '<div>' )
-                                       .addClass( 
'mw-revslider-pointer-container-older' )
-                                       .click( function ( event ) {
-                                               self.sliderLineClickHandler( 
event, $( this ) );
-                                       } )
-                                       .append(
-                                               $( '<div>' ).addClass( 
'mw-revslider-slider-line' ),
-                                               
this.pointerOlder.getView().render()
-                                       )
-                       ];
-               },
-
-               /**
-                * Initializes the pointer dragging logic
-                *
-                * @param {jQuery} $revisions
-                */
-               initPointers: function ( $revisions ) {
-                       var $pointers,
-                               $pointerOlder = 
this.pointerOlder.getView().getElement(),
-                               $pointerNewer = 
this.pointerNewer.getView().getElement(),
-                               self = this;
-
-                       $pointers = this.$element.find( '.mw-revslider-pointer' 
);
-
-                       $( 'body' ).keydown( function ( e ) {
-                               if ( e.which === 27 ) {
-                                       self.escapePressed = true;
-                                       $pointers.trigger( 'mouseup' );
-                               }
-                       } );
-
-                       $pointerOlder.draggable( this.buildDraggableOptions(
-                               $revisions,
-                               '.mw-revslider-pointer-container-older'
-                       ) );
-                       $pointerNewer.draggable( this.buildDraggableOptions(
-                               $revisions,
-                               '.mw-revslider-pointer-container-newer'
-                       ) );
-
-                       $pointerNewer
-                               .on(
-                                       'touchstart touchmove touchend 
touchcancel touchleave',
-                                       
mw.libs.revisionSlider.touchEventConverter
-                               )
-                               .addClass( 'mw-revslider-pointer-newid 
mw-revslider-pointer-upper' );
-                       $pointerOlder
-                               .on(
-                                       'touchstart touchmove touchend 
touchcancel touchleave',
-                                       
mw.libs.revisionSlider.touchEventConverter
-                               )
-                               .addClass( 'mw-revslider-pointer-oldid 
mw-revslider-pointer-lower' );
-               },
 
                setPointerDragCursor: function () {
                        $( '.mw-revslider-pointer, ' +
@@ -135,56 +32,6 @@
                                '.mw-revslider-pointer-line, ' +
                                '.mw-revslider-revision-wrapper' )
                                .removeClass( 'mw-revslider-pointer-grabbing' );
-               },
-
-               showTooltipsOnMouseMoveHandler: function ( event, 
lastValidPosition ) {
-                       var pos = this.getRevisionPositionFromLeftOffset( 
event.pageX ),
-                               $hoveredRevisionWrapper;
-
-                       if ( pos === lastValidPosition ) {
-                               return pos;
-                       }
-
-                       $hoveredRevisionWrapper = this.getRevElementAtPosition( 
this.getRevisionsElement(), pos ).parent();
-                       this.slider.getRevisions().getView().showTooltip( 
$hoveredRevisionWrapper );
-
-                       return pos;
-               },
-
-               sliderLineClickHandler: function ( event, $line ) {
-                       var pos = this.getRevisionPositionFromLeftOffset( 
event.pageX ),
-                               $clickedRev, pointerMoved, pointerOther, 
$revisions;
-
-                       if ( $line.hasClass( 
'mw-revslider-pointer-container-newer' ) ) {
-                               pointerMoved = this.pointerNewer;
-                               pointerOther = this.pointerOlder;
-                       } else {
-                               pointerMoved = this.pointerOlder;
-                               pointerOther = this.pointerNewer;
-                       }
-
-                       if ( pos === pointerOther.getPosition() ) {
-                               return;
-                       }
-
-                       $revisions = this.getRevisionsElement();
-                       $clickedRev = this.getRevElementAtPosition( $revisions, 
pos );
-
-                       pointerMoved.setPosition( pos );
-                       this.updatePointerPositionAttributes();
-                       if ( $line.hasClass( 
'mw-revslider-pointer-container-newer' ) ) {
-                               this.refreshRevisions(
-                                       $clickedRev.attr( 'data-revid' ),
-                                       this.getRevElementAtPosition( 
$revisions, pointerOther.getPosition() ).attr( 'data-revid' )
-                               );
-                       } else {
-                               this.refreshRevisions(
-                                       this.getRevElementAtPosition( 
$revisions, pointerOther.getPosition() ).attr( 'data-revid' ),
-                                       $clickedRev.attr( 'data-revid' )
-                               );
-                       }
-                       this.resetRevisionStylesBasedOnPointerPosition( 
$revisions );
-                       this.alignPointers();
                },
 
                resetPointerColorsBasedOnValues: function () {

-- 
To view, visit https://gerrit.wikimedia.org/r/363159
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6c933b0702910aca4c38b2e4a5098f11fdc28ad5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/RevisionSlider
Gerrit-Branch: master
Gerrit-Owner: WMDE-Fisch <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to