Yaron Koren has submitted this change and it was merged.

Change subject: Add npm and composer test support
......................................................................


Add npm and composer test support

Change-Id: I640b1bb2a2e5beb0c85741c672519df1c3218117
---
M .gitignore
A .jshintignore
A .jshintrc
A Gruntfile.js
A composer.json
M libs/SemanticDrilldown.js
A package.json
7 files changed, 97 insertions(+), 18 deletions(-)

Approvals:
  Hashar: Looks good to me, but someone else must approve
  Yaron Koren: Checked; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/.gitignore b/.gitignore
index 98b092a..dbcd3ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
-.svn
 *~
 *.kate-swp
 .*.swp
+/node_modules/
+/vendor/
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/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 0000000..36b6671
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,30 @@
+/*jshint node:true */
+module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+       grunt.loadNpmTasks( 'grunt-jsonlint' );
+       grunt.loadNpmTasks( 'grunt-banana-checker' );
+
+       grunt.initConfig( {
+               jshint: {
+                       options: {
+                               jshintrc: true
+                       },
+                       all: [
+                               '**/*.js',
+                               '!node_modules/**'
+                       ]
+               },
+               banana: {
+                       all: 'i18n/'
+               },
+               jsonlint: {
+                       all: [
+                               '**/*.json',
+                               '!node_modules/**'
+                       ]
+               }
+       } );
+
+       grunt.registerTask( 'test', [ 'jshint', 'jsonlint', 'banana' ] );
+       grunt.registerTask( 'default', 'test' );
+};
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..1c63f9e
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,10 @@
+{
+       "require-dev": {
+               "jakub-onderka/php-parallel-lint": "0.9.2"
+       },
+       "scripts": {
+               "test": [
+                       "parallel-lint . --exclude vendor"
+               ]
+       }
+}
diff --git a/libs/SemanticDrilldown.js b/libs/SemanticDrilldown.js
index c9a18cd..0a7913a 100644
--- a/libs/SemanticDrilldown.js
+++ b/libs/SemanticDrilldown.js
@@ -5,8 +5,8 @@
  *
  * @author Sanyam Goyal
  */
-(function(jQuery) {
-       jQuery.ui.autocomplete.prototype._renderItem = function( ul, item) {
+( function ( $ ) {
+       $.ui.autocomplete.prototype._renderItem = function( ul, item) {
                var re = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + 
this.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + 
")(?![^<>]*>)(?![^&;]+;)", "gi");
                var loc = item.label.search(re);
                var t;
@@ -15,25 +15,25 @@
                } else {
                        t = item.label;
                }
-               return jQuery( "<li></li>" )
+               return $( "<li></li>" )
                        .data( "item.autocomplete", item )
                        .append( " <a>" + t + "</a>" )
                        .appendTo( ul );
        };
 
-       jQuery.widget("ui.combobox", {
+       $.widget("ui.combobox", {
                _create: function() {
                        var self = this;
                        var select = this.element.hide();
                        var inp_id = select[0].options[0].value;
                        var curval = select[0].name;
-                       var input = jQuery("<input id = \""+inp_id+"\" 
type=\"text\" name=\""+inp_id+"\" value=\""+curval+"\">")
+                       var input = $("<input id = \""+inp_id+"\" type=\"text\" 
name=\""+inp_id+"\" value=\""+curval+"\">")
                                .insertAfter(select)
                                .autocomplete({
                                        source: function(request, response) {
                                                var matcher = new RegExp("\\b" 
+ request.term, "i" );
                                                
response(select.children("option").map(function() {
-                                                       var text = 
jQuery(this).text();
+                                                       var text = 
$(this).text();
                                                        if (this.value && 
(!request.term || matcher.test(text)))
                                                                return {
                                                                        id: 
this.value,
@@ -58,7 +58,7 @@
                                        minLength: 0
                                })
                                .addClass("ui-widget ui-widget-content 
ui-corner-left");
-                       jQuery("<button type=\"button\">&nbsp;</button>")
+                       $("<button type=\"button\">&nbsp;</button>")
                        .attr("tabIndex", -1)
                        .attr("title", "Show All Items")
                        .insertAfter(input)
@@ -87,23 +87,23 @@
                }
        });
 
-})(jQuery);
+}( jQuery ) );
 
 jQuery.fn.toggleValuesDisplay = function() {
-       $valuesDiv = jQuery(this).closest(".drilldown-filter")
+       jQuery.valuesDiv = jQuery(this).closest(".drilldown-filter")
                .find(".drilldown-filter-values");
-       if ($valuesDiv.css("display") == "none") {
-               $valuesDiv.css("display", "block");
-               var downArrowImage = mw.config.get( 'sdgDownArrowImage' );
+       if ( jQuery.valuesDiv.css("display") === "none" ) {
+               jQuery.valuesDiv.css("display", "block");
+               var downArrowImage = mediaWiki.config.get( 'sdgDownArrowImage' 
);
                this.find("img").attr( "src", downArrowImage );
-        } else {
-               $valuesDiv.css("display", "none");
-               var rightArrowImage = mw.config.get( 'sdgRightArrowImage' );
+       } else {
+               jQuery.valuesDiv.css("display", "none");
+               var rightArrowImage = mediaWiki.config.get( 
'sdgRightArrowImage' );
                this.find("img").attr( "src", rightArrowImage );
-        }
+       }
 };
 
 jQuery(document).ready(function() {
        jQuery(".semanticDrilldownCombobox").combobox();
-        jQuery(".drilldown-values-toggle").click( function() 
{jQuery(this).toggleValuesDisplay();} );
+       jQuery(".drilldown-values-toggle").click( function() 
{jQuery(this).toggleValuesDisplay();} );
 });
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..335401b
--- /dev/null
+++ b/package.json
@@ -0,0 +1,13 @@
+{
+  "private": true,
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
+    "grunt-banana-checker": "0.4.0",
+    "grunt-contrib-jshint": "0.11.3",
+    "grunt-jsonlint": "1.0.7"
+  }
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I640b1bb2a2e5beb0c85741c672519df1c3218117
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/SemanticDrilldown
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Paladox <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: Umherirrender <[email protected]>
Gerrit-Reviewer: Yaron Koren <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to