Jhernandez has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/327722 )

Change subject: Remove jshint/jscs, add eslint and stylelint
......................................................................

Remove jshint/jscs, add eslint and stylelint

...with the wikimedia presets.

For automatically fixing most of the JS lint problems run

      grunt eslint:fix

Some rules of stylelint were disabled given they cause problems with
existing popups code (like no id selectors for example).

Change-Id: I2153047c3ddbea50572dd329989088bb20787515
---
A .eslintrc.json
D .jscsrc
D .jshintignore
D .jshintrc
A .stylelintrc
M Gruntfile.js
M package.json
M resources/ext.popups.desktop/ext.popups.animation.less
M resources/ext.popups/actions.js
M resources/ext.popups/boot.js
M resources/ext.popups/changeListeners/syncUserSettings.js
M resources/ext.popups/gateway.js
M resources/ext.popups/reducers/index.js
M resources/ext.popups/renderer.js
M resources/ext.popups/settingsDialog.js
M resources/ext.popups/styles/ext.popups.core.less
M resources/ext.popups/styles/ext.popups.settings.less
17 files changed, 125 insertions(+), 167 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Popups 
refs/changes/22/327722/1

diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..da8a6ee
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,19 @@
+{
+       "extends": "wikimedia",
+       "env": {
+               "browser": true,
+               "jquery": true,
+               "qunit": true
+       },
+       "globals": {
+               "mediaWiki": false,
+               "OO": false,
+               "moment": false,
+               "Redux": false,
+               "ReduxThunk": false
+       },
+       "rules": {
+               "dot-notation": [ "error", { "allowKeywords": true } ],
+               "no-use-before-define": 0
+       }
+}
diff --git a/.jscsrc b/.jscsrc
deleted file mode 100644
index 7c4ced2..0000000
--- a/.jscsrc
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "preset": "wikimedia",
-
-  "requireObjectKeysOnNewLine": true,
-  "requireSpacesInsideBrackets": null,
-  "disallowImplicitTypeConversion": ["numeric", "boolean", "binary", "string"],
-  "excludeFiles": [
-    "vendor/**",
-    "node_modules/**"
-  ],
-  "disallowDanglingUnderscores": {
-    "allExcept": ["__REDUX_DEVTOOLS_EXTENSION_COMPOSE__"]
-  },
-  "jsDoc": {
-    "checkParamExistence": true,
-    "checkParamNames": true,
-    "checkRedundantParams": true,
-    "enforceExistence": true,
-    "checkReturnTypes": true,
-    "checkRedundantReturns": true,
-    "requireReturnTypes": true,
-    "checkTypes": "capitalizedNativeCase",
-    "@fixme": "https://github.com/jscs-dev/jscs-jsdoc/pull/138";
-  }
-}
diff --git a/.jshintignore b/.jshintignore
deleted file mode 100644
index bb5aadf..0000000
--- a/.jshintignore
+++ /dev/null
@@ -1,3 +0,0 @@
-// Ignore legacy code (for now)
-resources/ext.popups.*
-node_modules
diff --git a/.jshintrc b/.jshintrc
deleted file mode 100644
index 34d665f..0000000
--- a/.jshintrc
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-       "globals": {
-               "console": true,
-               "jQuery": true,
-               "mediaWiki": true,
-               "module": false,
-               "moment": true, // FIXME: Remove this once moment is removed 
from codebase
-               "require": false,
-               "OO": true,
-               "QUnit": true,
-               "Redux": true,
-               "ReduxThunk": true
-       },
-
-       "browser": true,
-       "curly": true,
-       "eqeqeq": true,
-       "forin": false,
-       "onevar": true,
-       "supernew": true,
-       "trailing": true,
-       "undef" : true,
-       "unused": true
-}
diff --git a/.stylelintrc b/.stylelintrc
new file mode 100644
index 0000000..7d5901f
--- /dev/null
+++ b/.stylelintrc
@@ -0,0 +1,8 @@
+{
+       "extends": "stylelint-config-wikimedia",
+       "rules": {
+    "selector-no-id": null,
+    "length-zero-no-unit": null,
+    "no-descending-specificity": null
+       }
+}
diff --git a/Gruntfile.js b/Gruntfile.js
index 7c18615..b4b9393 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1,13 +1,12 @@
-// jscs:disable jsDoc
-/*jshint node:true */
+/* eslint-evn node */
+
 module.exports = function ( grunt ) {
        var QUNIT_URL_BASE = 
'http://localhost:8080/wiki/Special:JavaScriptTest/qunit/plain';
 
        grunt.loadNpmTasks( 'grunt-banana-checker' );
-       grunt.loadNpmTasks( 'grunt-contrib-jshint' );
        grunt.loadNpmTasks( 'grunt-contrib-qunit' );
        grunt.loadNpmTasks( 'grunt-contrib-watch' );
-       grunt.loadNpmTasks( 'grunt-jscs' );
+       grunt.loadNpmTasks( 'grunt-eslint' );
        grunt.loadNpmTasks( 'grunt-jsonlint' );
        grunt.loadNpmTasks( 'grunt-stylelint' );
 
@@ -15,53 +14,27 @@
                banana: {
                        all: 'i18n/'
                },
-               jscs: {
-                       options: {
-                               config: '.jscsrc'
-                       },
-                       main: '<%= jshint.all %>',
-                       test: {
+               eslint: {
+                       fix: {
                                options: {
-                                       config: 'tests/.jscsrc.js'
+                                       fix: true
                                },
-                               files: {
-                                       src: [
-                                               'tests/qunit/**/*.js',
-                                               
'!tests/qunit/ext.popups.core.test.js'
-                                       ]
-                               }
-                       }
-               },
-               jshint: {
-                       options: {
-                               jshintrc: true
+                               src: [
+                                       '<%= eslint.all %>'
+                               ]
                        },
                        all: [
-                               '*.js',
-                               '**/*.js',
-                               '!node_modules/**',
-                               '!resources/ext.popups.lib/**',
-                               // FIXME: Remove ignores for legacy code upon 
removal/refactor
-                               '!resources/ext.popups.core/**',
-                               '!resources/ext.popups.desktop/**',
-                               '!resources/ext.popups.images/**',
-                               
'!resources/ext.popups.renderer.desktopRenderer/**',
-                               '!resources/ext.popups.schemaPopups/**',
-                               '!resources/ext.popups.schemaPopups.utils/**',
-                               
'!resources/ext.popups.targets.desktopTarget/**',
-                               // End legacy code
-                               '!tests/qunit/**'
-                       ],
-                       test: {
-                               files: {
-                                       src: 'tests/qunit/**/*.js'
-                               }
-                       }
+                               'resources/ext.popups/*.js',
+                               'resources/ext.popups/**/*.js',
+                               '!docs/**',
+                               '!node_modules/**'
+                       ]
                },
                jsonlint: {
                        all: [
                                '*.json',
                                '**/*.json',
+                               '!docs/**',
                                '!node_modules/**'
                        ]
                },
@@ -83,7 +56,7 @@
                                syntax: 'less'
                        },
                        all: [
-                               'resources/**/*.less'
+                               'resources/ext.popups/**/*.less'
                        ]
                },
                watch: {
@@ -92,7 +65,7 @@
                                debounceDelay: 1000
                        },
                        lint: {
-                               files: [ 'resources/**/*.js', 
'tests/qunit/**/*.js' ],
+                               files: [ 'resources/ext.popups/**/*.less', 
'resources/**/*.js', 'tests/qunit/**/*.js' ],
                                tasks: [ 'lint' ]
                        },
                        scripts: {
@@ -108,7 +81,7 @@
                }
        } );
 
-       grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana' ] 
);
+       grunt.registerTask( 'lint', [ 'eslint:all', 'stylelint', 'jsonlint', 
'banana' ] );
        grunt.registerTask( 'test', [ 'qunit' ] );
-       grunt.registerTask( 'default', [ 'test', 'lint' ] );
+       grunt.registerTask( 'default', [ 'lint', 'test' ] );
 };
diff --git a/package.json b/package.json
index 341572d..bb5e6f1 100644
--- a/package.json
+++ b/package.json
@@ -5,14 +5,15 @@
     "doc": "jsduck"
   },
   "devDependencies": {
-    "grunt": "0.4.5",
-    "grunt-banana-checker": "0.4.0",
-    "grunt-cli": "0.1.13",
-    "grunt-contrib-jshint": "0.11.3",
+    "eslint-config-wikimedia": "0.3.0",
+    "grunt": "1.0.1",
+    "grunt-banana-checker": "0.5.0",
+    "grunt-cli": "^1.2.0",
     "grunt-contrib-qunit": "^1.2.0",
     "grunt-contrib-watch": "^1.0.0",
-    "grunt-jscs": "2.1.0",
-    "grunt-jsonlint": "1.0.7",
-    "grunt-stylelint": "^0.6.0"
+    "grunt-eslint": "19.0.0",
+    "grunt-jsonlint": "1.1.0",
+    "grunt-stylelint": "^0.6.0",
+    "stylelint-config-wikimedia": "0.3.0"
   }
 }
diff --git a/resources/ext.popups.desktop/ext.popups.animation.less 
b/resources/ext.popups.desktop/ext.popups.animation.less
index 9f6a9c8..3a7273e 100644
--- a/resources/ext.popups.desktop/ext.popups.animation.less
+++ b/resources/ext.popups.desktop/ext.popups.animation.less
@@ -1,11 +1,11 @@
 @import "mediawiki.mixins.animation";
 
-.mwe-popups-translate(@x, @y) {
-       -webkit-transform: translate(@x, @y);
-       -moz-transform: translate(@x, @y);
-       -ms-transform: translate(@x, @y);
-       -o-transform: translate(@x, @y);
-       transform: translate(@x, @y);
+.mwe-popups-translate( @x, @y ) {
+       -webkit-transform: translate( @x, @y );
+       -moz-transform: translate( @x, @y );
+       -ms-transform: translate( @x, @y );
+       -o-transform: translate( @x, @y );
+       transform: translate( @x, @y );
 }
 
 /* FIXME: Use Phuedx's approach to make this cleaner
@@ -77,63 +77,63 @@
 .mwe-popups-fade-in-up-frames() {
        0% {
                opacity: 0;
-               .mwe-popups-translate(0, 20px);
+               .mwe-popups-translate( 0, 20px );
        }
 
        100% {
                opacity: 1;
-               .mwe-popups-translate(0, 0);
+               .mwe-popups-translate( 0, 0 );
        }
 }
 
 .mwe-popups-fade-in-down-frames() {
        0% {
                opacity: 0;
-               .mwe-popups-translate(0, -20px);
+               .mwe-popups-translate( 0, -20px );
        }
 
        100% {
                opacity: 1;
-               .mwe-popups-translate(0, 0);
+               .mwe-popups-translate( 0, 0 );
        }
 }
 
 .mwe-popups-fade-out-down-frames() {
        0% {
                opacity: 1;
-               .mwe-popups-translate(0, 0);
+               .mwe-popups-translate( 0, 0 );
        }
 
        100% {
                opacity: 0;
-               .mwe-popups-translate(0, 20px);
+               .mwe-popups-translate( 0, 20px );
        }
 }
 
 .mwe-popups-fade-out-up-frames() {
        0% {
                opacity: 1;
-               .mwe-popups-translate(0, 0);
+               .mwe-popups-translate( 0, 0 );
        }
 
        100% {
                opacity: 0;
-               .mwe-popups-translate(0, -20px);
+               .mwe-popups-translate( 0, -20px );
        }
 }
 
 .mwe-popups-fade-in-up {
-       .animation(mwe-popups-fade-in-up, 0.2s, ease, forwards);
+       .animation( mwe-popups-fade-in-up, 0.2s, ease, forwards );
 }
 
 .mwe-popups-fade-in-down {
-       .animation(mwe-popups-fade-in-down, 0.2s, ease, forwards);
+       .animation( mwe-popups-fade-in-down, 0.2s, ease, forwards );
 }
 
 .mwe-popups-fade-out-down {
-       .animation(mwe-popups-fade-out-down, 0.2s, ease, forwards);
+       .animation( mwe-popups-fade-out-down, 0.2s, ease, forwards );
 }
 
 .mwe-popups-fade-out-up {
-       .animation(mwe-popups-fade-out-up, 0.2s, ease, forwards);
+       .animation( mwe-popups-fade-out-up, 0.2s, ease, forwards );
 }
diff --git a/resources/ext.popups/actions.js b/resources/ext.popups/actions.js
index 98dd922..ce0ca71 100644
--- a/resources/ext.popups/actions.js
+++ b/resources/ext.popups/actions.js
@@ -58,6 +58,7 @@
         * @param {Function} generateToken
         * @param {mw.Map} config The config of the MediaWiki client-side 
application,
         *  i.e. `mw.config`
+        * @returns {Object}
         */
        actions.boot = function (
                isUserInCondition,
@@ -273,6 +274,7 @@
         * See doc/adr/0003-keep-enabled-state-only-in-preview-reducer.md for 
more
         * details.
         *
+        * @param {Boolean} enabled if previews are enabled or not
         * @return {Redux.Thunk}
         */
        actions.saveSettings = function ( enabled ) {
diff --git a/resources/ext.popups/boot.js b/resources/ext.popups/boot.js
index 89ea2f9..00304ca 100644
--- a/resources/ext.popups/boot.js
+++ b/resources/ext.popups/boot.js
@@ -97,6 +97,7 @@
 
                // If debug mode is enabled, then enable Redux DevTools.
                if ( mw.config.get( 'debug' ) === true ) {
+                       // eslint-disable-next-line no-underscore-dangle
                        compose = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 
|| compose;
                }
 
diff --git a/resources/ext.popups/changeListeners/syncUserSettings.js 
b/resources/ext.popups/changeListeners/syncUserSettings.js
index 6393f87..173f36f 100644
--- a/resources/ext.popups/changeListeners/syncUserSettings.js
+++ b/resources/ext.popups/changeListeners/syncUserSettings.js
@@ -13,6 +13,7 @@
         *   a preview is shown, then their preview count will be incremented 
(see
         *   `mw.popups.reducers.eventLogging`, and is persisted to local 
storage.
         *
+        * @param {ext.popups.UserSettings} userSettings
         * @return {ext.popups.ChangeListener}
         */
        mw.popups.changeListeners.syncUserSettings = function ( userSettings ) {
@@ -40,7 +41,7 @@
         * @return {*}
         */
        function get( state, reducer, prop ) {
-               return state[reducer] && state[reducer][prop];
+               return state[ reducer ] && state[ reducer ][ prop ];
        }
 
        /**
diff --git a/resources/ext.popups/gateway.js b/resources/ext.popups/gateway.js
index a0e3ff0..3c5eac2 100644
--- a/resources/ext.popups/gateway.js
+++ b/resources/ext.popups/gateway.js
@@ -46,11 +46,11 @@
                                maxage: CACHE_LIFETIME,
                                uselang: 'content'
                        },
-                       {
-                               headers: {
-                                       'X-Analytics': 'preview=1'
-                               }
-                       } )
+                               {
+                                       headers: {
+                                               'X-Analytics': 'preview=1'
+                                       }
+                               } )
                                .then( function ( data ) {
                                        // If the response is empty, i.e. 
data.query.pages is empty or isn't
                                        // set, then reject rather than resolve.
@@ -59,7 +59,7 @@
                                                data.query.pages &&
                                                data.query.pages.length
                                        ) {
-                                               return data.query.pages[0];
+                                               return data.query.pages[ 0 ];
                                        }
 
                                        return $.Deferred().reject();
@@ -73,7 +73,7 @@
         * additional data requested above).
         *
         * @param {Object} page
-        * @result {Object}
+        * @returns {Object}
         */
        function processPage( page ) {
                var lastModified,
@@ -88,7 +88,7 @@
                };
 
                if ( page.revisions && page.revisions.length ) {
-                       lastModified = new Date( page.revisions[0].timestamp );
+                       lastModified = new Date( page.revisions[ 0 ].timestamp 
);
 
                        result.lastModified = lastModified;
                        result.isRecent = new Date() - lastModified < ONE_DAY;
@@ -98,7 +98,7 @@
                        result.thumbnail = page.thumbnail;
 
                        result.thumbnail.url = result.thumbnail.source;
-                       delete( result.thumbnail.source );
+                       delete ( result.thumbnail.source );
                }
 
                return result;
@@ -160,7 +160,7 @@
                for ( i; i < extract.length; i++ ) {
                        ch = extract.charAt( i );
 
-                       if ( ch === ')' && level === 0  ) {
+                       if ( ch === ')' && level === 0 ) {
                                return extract;
                        }
                        if ( ch === '(' ) {
diff --git a/resources/ext.popups/reducers/index.js 
b/resources/ext.popups/reducers/index.js
index 82f814e..6694dfe 100644
--- a/resources/ext.popups/reducers/index.js
+++ b/resources/ext.popups/reducers/index.js
@@ -28,13 +28,13 @@
 
                for ( key in state ) {
                        if ( state.hasOwnProperty( key ) && 
!updates.hasOwnProperty( key ) ) {
-                               result[key] = state[key];
+                               result[ key ] = state[ key ];
                        }
                }
 
                for ( key in updates ) {
                        if ( updates.hasOwnProperty( key ) ) {
-                               result[key] = updates[key];
+                               result[ key ] = updates[ key ];
                        }
                }
 
diff --git a/resources/ext.popups/renderer.js b/resources/ext.popups/renderer.js
index c4f2493..04eb6ac 100644
--- a/resources/ext.popups/renderer.js
+++ b/resources/ext.popups/renderer.js
@@ -277,7 +277,7 @@
        /**
         * Extracted from `mw.popups.render.closePopup`.
         *
-        * @preview {ext.popups.Preview} preview
+        * @param {ext.popups.Preview} preview
         * @return {jQuery.Promise} A promise that resolves when the preview 
has faded
         *  out
         */
diff --git a/resources/ext.popups/settingsDialog.js 
b/resources/ext.popups/settingsDialog.js
index ed81c51..4dce26e 100644
--- a/resources/ext.popups/settingsDialog.js
+++ b/resources/ext.popups/settingsDialog.js
@@ -3,6 +3,7 @@
        /**
         * Creates a render function that will create the settings dialog and 
return
         * a set of methods to operate on it
+        * @returns {Function} render function
         */
        mw.popups.createSettingsDialogRenderer = function () {
 
@@ -21,6 +22,8 @@
 
                /**
                 * Renders the relevant form and labels in the settings dialog
+                * @param {Object} boundActions
+                * @returns {Object} object with methods to affect the rendered 
UI
                 */
                return function ( boundActions ) {
 
@@ -78,6 +81,7 @@
 
                                /**
                                 * Toggle the help dialog on or off
+                                * @param {Boolean} visible if you want to show 
or hide the help dialog
                                 */
                                toggleHelp: function ( visible ) {
                                        toggleHelp( $dialog, visible );
@@ -159,6 +163,7 @@
         * Get the selected value on the radio button
         *
         * @param {jQuery.Object} $el the element to extract the setting from
+        * @return {String} Which should be (simple|advanced|off)
         */
        function getSelectedSetting( $el ) {
                return $el.find(
@@ -190,8 +195,8 @@
         * @returns {Boolean} if navpops was found to be enabled
         */
        function isNavPopupsEnabled() {
-               /*global pg: false*/
+               /* global pg: false*/
                return typeof pg !== 'undefined' && pg.fn.disablePopups !== 
undefined;
        }
 
-} )( mediaWiki, jQuery );
+}( mediaWiki, jQuery ) );
diff --git a/resources/ext.popups/styles/ext.popups.core.less 
b/resources/ext.popups/styles/ext.popups.core.less
index 46ccdec..2c9872f 100644
--- a/resources/ext.popups/styles/ext.popups.core.less
+++ b/resources/ext.popups/styles/ext.popups.core.less
@@ -1,5 +1,5 @@
-@import "mediawiki.mixins.less";
-@import "mediawiki.ui/variables";
+@import 'mediawiki.mixins.less';
+@import 'mediawiki.ui/variables';
 
 /* Code adapted from Yair Rand's NavPopupsRestyled.js
  * https://en.wikipedia.org/wiki/User:Yair_rand/NavPopupsRestyled.js
@@ -10,7 +10,7 @@
        top: -1000px;
 }
 
-.mwe-popups-border-triangle-top(@size, @left, @color, @extra) {
+.mwe-popups-border-triangle-top( @size, @left, @color, @extra ) {
        content: '';
        position: absolute;
        border: ( @size + @extra ) solid transparent;
@@ -21,7 +21,7 @@
        left: @left;
 }
 
-.mwe-popups-border-triangle-bottom(@size, @left, @color, @extra) {
+.mwe-popups-border-triangle-bottom( @size, @left, @color, @extra ) {
        content: '';
        position: absolute;
        border: ( @size + @extra ) solid transparent;
@@ -57,7 +57,7 @@
 .mwe-popups-settings-icon {
 
        // N.B. filenames are relative to the LESS file.
-       .background-image-svg( "../images/cog.svg", "../images/cog.png" );
+       .background-image-svg( '../images/cog.svg', '../images/cog.png' );
 }
 
 .mwe-popups-sade-face-icon {
@@ -67,7 +67,7 @@
        margin: 16px 16px 0;
        background-position: center center;
        background-repeat: no-repeat;
-       .background-image-svg( "../images/sad-face.svg", 
"../images/sad-face.png" );
+       .background-image-svg( '../images/sad-face.svg', 
'../images/sad-face.png' );
 }
 
 .mwe-popups {
@@ -77,8 +77,8 @@
 
        // FIXME: The .box-shadow mixin provided by mediawiki.mixins doesn't 
support
        // multiple values.
-       -webkit-box-shadow: 0 30px 90px -20px rgba(0,0,0,0.3), 0px 0px 1px 
rgba(0,0,0,0.5);
-               box-shadow: 0 30px 90px -20px rgba(0,0,0,0.3), 0px 0px 1px 
rgba(0,0,0,0.5);
+       -webkit-box-shadow: 0 30px 90px -20px rgba( 0, 0, 0, 0.3 ), 0px 0px 1px 
rgba( 0, 0, 0, 0.5 );
+       box-shadow: 0 30px 90px -20px rgba( 0, 0, 0, 0.3 ), 0px 0px 1px rgba( 
0, 0, 0, 0.5 );
        padding: 0;
        display: none;
        font-size: 14px;
@@ -124,17 +124,17 @@
                }
 
                &:after {
-                       content: " ";
+                       content: ' ';
                        position: absolute;
                        right: 0;
                        bottom: 0;
                        width: 25%;
                        height: 24px;
                        background-color: transparent;
-                       background-image: -webkit-linear-gradient(to right, 
rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%);
-                          background-image: -moz-linear-gradient(to right, 
rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%);
-                            background-image: -o-linear-gradient(to right, 
rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%);
-                               background-image: linear-gradient(to right, 
rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%);
+                       background-image: -webkit-linear-gradient( to right, 
rgba( 255, 255, 255, 0 ), rgba( 255, 255, 255, 1 ) 50% );
+                       background-image: -moz-linear-gradient( to right, rgba( 
255, 255, 255, 0 ), rgba( 255, 255, 255, 1 ) 50% );
+                       background-image: -o-linear-gradient( to right, rgba( 
255, 255, 255, 0 ), rgba( 255, 255, 255, 1 ) 50% );
+                       background-image: linear-gradient( to right, rgba( 255, 
255, 255, 0 ), rgba( 255, 255, 255, 1 ) 50% );
                }
        }
 
@@ -194,11 +194,11 @@
        /* Triangles/Pokeys */
        &.mwe-popups-no-image-tri {
                &:after {
-                       .mwe-popups-border-triangle-top( 7px, 7px, #fff, 4px);
+                       .mwe-popups-border-triangle-top( 7px, 7px, #fff, 4px );
                }
 
                &:before {
-                       .mwe-popups-border-triangle-top( 8px, 10px, #bbb, 0px);
+                       .mwe-popups-border-triangle-top( 8px, 10px, #bbb, 0px );
                }
        }
 
@@ -221,22 +221,22 @@
        &.mwe-popups-image-tri {
                &:before {
                        z-index: 111;
-                       .mwe-popups-border-triangle-top(9px, 9px, #bbb, 0px);
+                       .mwe-popups-border-triangle-top( 9px, 9px, #bbb, 0px );
                }
 
                &:after {
-                       .mwe-popups-border-triangle-top(8px, 6px, #fff, 4px);
+                       .mwe-popups-border-triangle-top( 8px, 6px, #fff, 4px );
                        z-index: 112;
                }
 
                &.flipped_x {
                        &:before {
                                z-index: 111;
-                               .mwe-popups-border-triangle-top(9px, 273px, 
#bbb, 0px);
+                               .mwe-popups-border-triangle-top( 9px, 273px, 
#bbb, 0px );
                        }
 
                        &:after {
-                               .mwe-popups-border-triangle-top(8px, 269px, 
#fff, 4px);
+                               .mwe-popups-border-triangle-top( 8px, 269px, 
#fff, 4px );
                                z-index: 112;
                        }
                }
@@ -260,7 +260,7 @@
 
                &:before {
                        z-index: 111;
-                       .mwe-popups-border-triangle-top(9px, 420px, #bbb, 0px);
+                       .mwe-popups-border-triangle-top( 9px, 420px, #bbb, 0px 
);
                }
 
                > div > a > svg {
@@ -277,11 +277,11 @@
        &.flipped_x_y {
                &:before {
                        z-index: 111;
-                       .mwe-popups-border-triangle-bottom(9px, 272px, #bbb, 
0px);
+                       .mwe-popups-border-triangle-bottom( 9px, 272px, #bbb, 
0px );
                }
 
                &:after {
-                       .mwe-popups-border-triangle-bottom(8px, 269px, #fff, 
4px);
+                       .mwe-popups-border-triangle-bottom( 8px, 269px, #fff, 
4px );
                        z-index: 112;
                }
 
@@ -290,12 +290,12 @@
 
                        &:after {
                                z-index: 112;
-                               .mwe-popups-border-triangle-bottom(8px, 417px, 
#fff, 4px);
+                               .mwe-popups-border-triangle-bottom( 8px, 417px, 
#fff, 4px );
                        }
 
                        &:before {
                                z-index: 111;
-                               .mwe-popups-border-triangle-bottom(9px, 420px, 
#bbb, 0px);
+                               .mwe-popups-border-triangle-bottom( 9px, 420px, 
#bbb, 0px );
                        }
 
                        > div > a > svg {
diff --git a/resources/ext.popups/styles/ext.popups.settings.less 
b/resources/ext.popups/styles/ext.popups.settings.less
index a3bca1f..5c00927 100644
--- a/resources/ext.popups/styles/ext.popups.settings.less
+++ b/resources/ext.popups/styles/ext.popups.settings.less
@@ -1,4 +1,4 @@
-@import "mediawiki.mixins.less";
+@import 'mediawiki.mixins.less';
 
 @dialog-margin: 50px;
 
@@ -8,7 +8,7 @@
        background: #fff;
        width: 450px;
        border: 1px solid #ccc;
-       box-shadow: 0px 1px 1px rgba(0,0,0,0.1);
+       box-shadow: 0px 1px 1px rgba( 0, 0, 0, 0.1 );
        border-radius: 2px;
 
        header {
@@ -101,14 +101,14 @@
                background: #eee;
                height: 65px;
                width: 450px;
-               .background-image-svg( "../images/footer-ltr.svg", 
"../images/footer-ltr.png" );
+               .background-image-svg( '../images/footer-ltr.svg', 
'../images/footer-ltr.png' );
                background-position: center;
                background-repeat: no-repeat;
        }
 }
 
 .rtl #mwe-popups-settings-help div.mwe-popups-settings-help-image {
-       .background-image-svg( "../images/footer-rtl.svg", 
"../images/footer-rtl.png" );
+       .background-image-svg( '../images/footer-rtl.svg', 
'../images/footer-rtl.png' );
 }
 
 .mwe-popups-overlay {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2153047c3ddbea50572dd329989088bb20787515
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Popups
Gerrit-Branch: mpga
Gerrit-Owner: Jhernandez <jhernan...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to