jenkins-bot has submitted this change and it was merged.

Change subject: Fix jenkins test failing for js
......................................................................


Fix jenkins test failing for js

Add npm and composer test support.
Adjust .gitignore

The i18n banana checker is not included since the repository lacks some
messages.

Bug: T63596
Change-Id: I6846cb7df24fbf2dff4116131361eee3c3c01413
---
M .gitignore
A .jshintignore
A .jshintrc
M Configure.js
A Gruntfile.js
A composer.json
A package.json
7 files changed, 107 insertions(+), 21 deletions(-)

Approvals:
  Hashar: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/.gitignore b/.gitignore
index 98b092a..63a643a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
-.svn
 *~
 *.kate-swp
 .*.swp
+/node_modules/
+/vendor/
+/composer.lock
diff --git a/.jshintignore b/.jshintignore
new file mode 100644
index 0000000..022b988
--- /dev/null
+++ b/.jshintignore
@@ -0,0 +1,2 @@
+node_modules
+vendor
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..8a2a10c
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,23 @@
+{
+       // Enforcing
+       "bitwise": true,
+       "eqeqeq": true,
+       "freeze": true,
+       "latedef": true,
+       "noarg": true,
+       "nonew": true,
+       "undef": true,
+       "unused": true,
+       "strict": false,
+
+       // Relaxing
+       "es5": false,
+
+       // Environment
+       "browser": true,
+       "jquery": true,
+
+       "globals": {
+               "mediaWiki": false
+       }
+}
diff --git a/Configure.js b/Configure.js
index 913303f..91ce060 100644
--- a/Configure.js
+++ b/Configure.js
@@ -3,7 +3,10 @@
  * create JavaScript buttons to allow to modify the form to have more
  * flexibility
  */
-jQuery( document ).ready( function ( $ ) {
+
+/*jshint -W083 */
+
+jQuery( document ).ready( function ( $, mw ) {
        "use strict";
        // Tabs and TOC
        // ------------
@@ -89,12 +92,12 @@
                                item.prepend( $( '<a></a>' )
                                        .text( '[+]' )
                                        .addClass( 'toggle' )
-                                       .attr( 'href', 'javascript:' )
+                                       .attr( 'href', '#' )
                                        .mousedown( function( e ) {
                                                e.preventDefault();
                                                return false;
                                        } )
-                                       .click( function( e ) {
+                                       .click( function() {
                                                if ( sub.css( 'display' ) === 
'none' ) {
                                                        sub.show();
                                                        $(this).text( '[−]' );
@@ -108,10 +111,11 @@
                        $( '#configtoc' ).append( item );
                } );
 
+       var stylepath;
        $( '.config-col-toc' ).prepend(
                $( '<a></a>' )
                        .css( 'align', 'right' )
-                       .attr( 'href', 'javascript:;' )
+                       .attr( 'href', '#' )
                        .append( $( '<img />' )
                                .attr( {'src': stylepath + 
'/common/images/Arr_l.png', 'title': 'hide TOC' } )
                        )
@@ -159,6 +163,7 @@
 
        $( '#configure table.assoc' ).each( function() {
                var table = $( this );
+               var fixAssocTable;
 
                if ( table.hasClass( 'disabled' ) ) {
                        return;
@@ -283,6 +288,7 @@
                                .attr( 'type', 'button' )
                                .attr( 'value', mediaWiki.msg( 
'configure-js-add' ) )
                                .click( function() {
+                                       var prompt;
                                        var groupname = prompt( mediaWiki.msg( 
'configure-js-prompt-group' ) );
                                        if( groupname === null ) {
                                                return;
@@ -302,6 +308,7 @@
                                                function( obj ) {
                                                        if ( obj.configure.ajax 
) {
                                                                var resp = 
obj.configure.ajax;
+                                                               var error;
                                                                error = false;
                                                                table.append(
                                                                        $( 
'<tr></tr>' )
@@ -314,7 +321,7 @@
                                                                                
                .append(
                                                                                
                        $( '<input></input>' )
                                                                                
                                .attr( 'type', 'button' )
-                                                                               
                                .attr( 'value', mediaWiki.msg( 
'configure-js-remove-row' ) )
+                                                                               
                                .attr( 'value', mw.msg( 
'configure-js-remove-row' ) )
                                                                                
                                .click( function() {
                                                                                
                                        $( this ).parent().parent().remove();
                                                                                
                                } )
@@ -322,7 +329,7 @@
                                                                                
)
                                                                );
                                                        } else {
-                                                               alert( 
mediaWiki.msg( 'configure-js-group-exists' ) );
+                                                               window.alert( 
mw.msg( 'configure-js-group-exists' ) );
                                                        }
                                                }
                                        );
@@ -430,25 +437,26 @@
                }
        };
 
-       $( '.configure-biglist' ).each( function( l ) {
+       $( '.configure-biglist' ).each( function() {
                var list = $( this );
+               var summariseSetting;
                var summary = $( '<div></div>' )
                        .addClass( 'configure-biglist-summary' )
                        .html( summariseSetting( list ) );
-               var header = $( '<span></span>' ).text( mediaWiki.msg( 
'configure-js-biglist-hidden' ) );
+               var header = $( '<span></span>' ).text( mw.msg( 
'configure-js-biglist-hidden' ) );
                var toogle = $( '<a></a>' )
                        .addClass( 'configure-biglist-toggle-link' )
-                       .attr( 'href', 'javascript:' )
-                       .text( mediaWiki.msg( 'configure-js-biglist-show' ) )
+                       .attr( 'href', '#' )
+                       .text( mw.msg( 'configure-js-biglist-show' ) )
                        .click( function() {
                                if ( list.css( 'display' ) === 'none' ) {
-                                       toogle.text( mediaWiki.msg( 
'configure-js-biglist-hide' ) );
-                                       header.text( mediaWiki.msg( 
'configure-js-biglist-shown' ) );
+                                       toogle.text( mw.msg( 
'configure-js-biglist-hide' ) );
+                                       header.text( mw.msg( 
'configure-js-biglist-shown' ) );
                                        list.show();
                                        summary.hide();
                                } else {
-                                       toogle.text( mediaWiki.msg( 
'configure-js-biglist-show' ) );
-                                       header.text( mediaWiki.msg( 
'configure-js-biglist-hidden' ) );
+                                       toogle.text( mw.msg( 
'configure-js-biglist-show' ) );
+                                       header.text( mw.msg( 
'configure-js-biglist-hidden' ) );
                                        list.hide();
                                        summary.html( summariseSetting( list ) 
).show();
                                }
@@ -472,6 +480,7 @@
        window.allSettings = undefined;
 
        ( function() {
+               var allSettings;
                allSettings = [];
 
                // For each section...
@@ -480,7 +489,8 @@
                for( var fid=0; fid<fieldsets.length; ++fid ) {
                        // For each subsection...
                        var fieldset = fieldsets[fid];
-                       var fieldset_title = window.getInnerText( 
fieldset.getElementsByTagName( 'legend' )[0] );
+                       // var fieldset_title = window.getInnerText( 
fieldset.getElementsByTagName( 'legend' )[0] );
+                       var getElementsByClassName;
                        var subsections = getElementsByClassName( fieldset, 
'table', 'configure-table' );
                        for( var sid=0; sid<subsections.length; ++sid ) {
                                var subsection;
@@ -489,15 +499,16 @@
                                } else {
                                        subsection = subsections[sid];
                                }
-                               var heading = document.getElementById( 
subsection.parentNode.id.replace( 'config-table', 'config-head' ) );
+                               // var heading = document.getElementById( 
subsection.parentNode.id.replace( 'config-table', 'config-head' ) );
 
                                // For each setting...
                                for( var i=0; 
i<subsection.childNodes.length;++i ) {
                                        var row = subsection.childNodes[i];
-                                       if( typeof row.ELEMENT_NODE === 
"undefined" ){
-                                               var wantedType = 1; // 
ELEMENT_NODE
+                                       var wantedType;
+                                       if ( typeof row.ELEMENT_NODE === 
"undefined" ) {
+                                               wantedType = 1; // ELEMENT_NODE
                                        } else {
-                                               var wantedType = 
row.ELEMENT_NODE;
+                                               wantedType = row.ELEMENT_NODE;
                                        }
                                        if ( row.nodeType !== wantedType || ( 
row.tagName !== 'tr' && row.tagName !== 'TR' ) ) {
                                                continue;
@@ -533,6 +544,7 @@
                }
 
                var isMatch = function( element ) { return 
element.description.indexOf( query ) !== -1; };
+               var allSettings;
                for( var i=0; i<allSettings.length; ++i ) {
                        var data = allSettings[i];
                        if ( isMatch( data ) ) {
@@ -552,4 +564,4 @@
                        }
                }
        } );
-} );
+}( jQuery, mediaWiki ) );
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..f294c83
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,26 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+       grunt.loadNpmTasks( 'grunt-jsonlint' );
+
+       grunt.initConfig( {
+               jshint: {
+                       options: {
+                               jshintrc: true
+                       },
+                       all: [
+                               '**/*.js',
+                               '!node_modules/**'
+                       ]
+               },
+               jsonlint: {
+                       all: [
+                               '**/*.json',
+                               '!node_modules/**'
+                       ]
+               }
+       } );
+
+       grunt.registerTask( 'test', [ 'jshint', 'jsonlint' ] );
+       grunt.registerTask( 'default', 'test' );
+};
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..3d55a97
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,10 @@
+{
+       "require-dev": {
+               "jakub-onderka/php-parallel-lint": "0.9.*"
+       },
+       "scripts": {
+               "test": [
+                       "parallel-lint . --exclude vendor"
+               ]
+       }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..8c4ea18
--- /dev/null
+++ b/package.json
@@ -0,0 +1,11 @@
+{
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
+    "grunt-contrib-jshint": "0.11.3",
+    "grunt-jsonlint": "1.0.7"
+  }
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6846cb7df24fbf2dff4116131361eee3c3c01413
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Configure
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>
Gerrit-Reviewer: Florianschmidtwelzow <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Paladox <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: Umherirrender <[email protected]>
Gerrit-Reviewer: Waldir <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to