Henning Snater has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/89172


Change subject: Factored getscrollbarwidth utility function out of suggester 
widget
......................................................................

Factored getscrollbarwidth utility function out of suggester widget

Change-Id: Ia30b621e3e9d88b5399d57d40a8b67a8e6a82f6e
---
M ValueView/ValueView.resources.mw.php
M ValueView/ValueView.tests.qunit.php
M ValueView/resources/jquery.ui/jquery.ui.suggester.js
M ValueView/tests/qunit/jquery.ui/jquery.ui.suggester.tests.js
4 files changed, 18 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DataValues 
refs/changes/72/89172/1

diff --git a/ValueView/ValueView.resources.mw.php 
b/ValueView/ValueView.resources.mw.php
index 9ebf54c..0f95d3c 100644
--- a/ValueView/ValueView.resources.mw.php
+++ b/ValueView/ValueView.resources.mw.php
@@ -101,6 +101,7 @@
                                'jquery.ui.autocomplete',
                                'jquery.ui.widget',
                                'jquery.util.adaptlettercase',
+                               'jquery.util.getscrollbarwidth',
                        )
                ),
 
@@ -175,6 +176,12 @@
                        ),
                ),
 
+               'jquery.util.getscrollbarwidth' => $moduleTemplate + array(
+                       'scripts' => array(
+                               'jquery.util/jquery.util.getscrollbarwidth.js',
+                       ),
+               ),
+
        );
 
        // return jQuery.valueview's native resources plus those required by 
the MW extension:
diff --git a/ValueView/ValueView.tests.qunit.php 
b/ValueView/ValueView.tests.qunit.php
index e0ccf3c..2f3abbf 100644
--- a/ValueView/ValueView.tests.qunit.php
+++ b/ValueView/ValueView.tests.qunit.php
@@ -219,6 +219,15 @@
                        ),
                ),
 
+               'jquery.util.getscrollbarwidth.tests' => array(
+                       'scripts' => array(
+                               
"$bp/jquery.util/jquery.util.getscrollbarwidth.tests.js",
+                       ),
+                       'dependencies' => array(
+                               'jquery.util.getscrollbarwidth',
+                       ),
+               ),
+
        );
 
 } );
diff --git a/ValueView/resources/jquery.ui/jquery.ui.suggester.js 
b/ValueView/resources/jquery.ui/jquery.ui.suggester.js
index 3d6d43e..d7b08d7 100644
--- a/ValueView/resources/jquery.ui/jquery.ui.suggester.js
+++ b/ValueView/resources/jquery.ui/jquery.ui.suggester.js
@@ -82,6 +82,7 @@
  * @dependency jquery.eachchange
  * @dependency jquery.ui.autocomplete
  * @dependency jquery.util.adaptlettercase
+ * @dependency jquery.util.getscrollbarwidth
  */
 ( function( $ ) {
        'use strict';
@@ -338,7 +339,7 @@
                                        for ( var i = 0; i < 
this.options.maxItems; i++ ) {
                                                fixedHeight += $( 
$menu.children()[i] ).height();
                                        }
-                                       $menu.width( $menu.width() + 
this._getScrollbarWidth() );
+                                       $menu.width( $menu.width() + 
$.util.getScrollbarWidth() );
                                        $menu.height( fixedHeight );
                                        $menu.css( 'overflowY', 'scroll' );
                                }
@@ -453,25 +454,6 @@
                                height += $( this ).height();
                        } );
                        return height;
-               },
-
-               /**
-                * Calculates the width of the browser's scrollbar.
-                *
-                * @returns {Number} scrollbar width
-                */
-               _getScrollbarWidth: function() {
-                       var $inner = $( '<p/>', { style: 
'width:100px;height:100px' } ),
-                               $outer = $( '<div/>', {
-                                       style: 
'position:absolute;top:-1000px;left:-1000px;visibility:hidden;'
-                                               + 
'width:50px;height:50px;overflow:hidden;'
-                               } ).append( $inner ).appendTo( $( 'body' ) ),
-                               majorWidth = $outer[0].clientWidth;
-
-                       $outer.css( 'overflow', 'scroll' );
-                       var minorWidth = $outer[0].clientWidth;
-                       $outer.remove();
-                       return ( majorWidth - minorWidth );
                },
 
                /**
diff --git a/ValueView/tests/qunit/jquery.ui/jquery.ui.suggester.tests.js 
b/ValueView/tests/qunit/jquery.ui/jquery.ui.suggester.tests.js
index b5e88a8..cfe6b82 100644
--- a/ValueView/tests/qunit/jquery.ui/jquery.ui.suggester.tests.js
+++ b/ValueView/tests/qunit/jquery.ui/jquery.ui.suggester.tests.js
@@ -98,11 +98,6 @@
                        'Suggestion menu gets resized.'
                );
 
-               assert.ok(
-                       suggester._getScrollbarWidth() > 0,
-                       'Detected scrollbar width.'
-               );
-
                suggester.destroy();
                $input.remove();
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia30b621e3e9d88b5399d57d40a8b67a8e6a82f6e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DataValues
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>

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

Reply via email to