Update linting tools, config, and fix subsequent failures

Change-Id: I41e080915441367b3a2ab2de7d7a096872a2f2e8
This commit is contained in:
Ed Sanders
2016-04-13 17:13:06 +01:00
parent 4c5263e3f0
commit 3cfb0d67e5
7 changed files with 151 additions and 132 deletions

19
.jscsrc
View File

@@ -1,4 +1,21 @@
{ {
"preset": "wikimedia", "preset": "wikimedia",
"requireCamelCaseOrUpperCaseIdentifiers": null
"jsDoc": {
"checkAnnotations": {
"preset": "jsduck5",
"extra": {
"this": true,
"source": true,
"see": true
}
},
"checkTypes": "strictNativeCase",
"checkParamNames": true,
"checkRedundantAccess": true,
"checkRedundantReturns": true,
"requireNewlineAfterDescription": true,
"requireParamTypes": true,
"requireReturnTypes": true
}
} }

View File

@@ -1,32 +1,25 @@
{ {
// Enforcing
"camelcase": false, "bitwise": true,
"curly": true,
"eqeqeq": true, "eqeqeq": true,
"immed": true, "freeze": true,
"latedef": true, "latedef": "nofunc",
"newcap": true, "futurehostile": true,
"noarg": true, "noarg": true,
"noempty": true,
"nonew": true, "nonew": true,
"quotmark": "single",
"trailing": true,
"undef": true, "undef": true,
"unused": true, "unused": true,
"bitwise": true, "strict": false,
"forin": false,
"regexp": false,
"strict": true,
"laxbreak": true,
"smarttabs": true,
"multistr": true,
"browser": true,
"onevar": true,
"predef": [ // Relaxing
"mediaWiki",
"jQuery", // Environment
"QUnit" "browser": true,
] "jquery": true,
"globals": {
"mediaWiki": false,
"QUnit": false
}
} }

View File

@@ -5,10 +5,10 @@
}, },
"devDependencies": { "devDependencies": {
"grunt": "0.4.5", "grunt": "0.4.5",
"grunt-banana-checker": "0.4.0",
"grunt-cli": "0.1.13", "grunt-cli": "0.1.13",
"grunt-contrib-jshint": "0.11.3", "grunt-contrib-jshint": "1.0.0",
"grunt-jscs": "2.5.0", "grunt-jscs": "2.8.0",
"grunt-jsonlint": "1.0.7", "grunt-jsonlint": "1.0.7"
"grunt-banana-checker": "0.4.0"
} }
} }

View File

@@ -20,80 +20,86 @@
( function ( $, mw ) { ( function ( $, mw ) {
'use strict'; 'use strict';
var template = '<div class="uls-display-settings">' var template = '<div class="uls-display-settings">' +
+ '<div class="row">' // Tab switcher buttons // Tab switcher buttons
+ '<div class="twelve columns uls-display-settings-tab-switcher">' '<div class="row">' +
+ '<div class="uls-button-group mw-ui-button-group">' '<div class="twelve columns uls-display-settings-tab-switcher">' +
+ '<button id="uls-display-settings-language-tab" class="mw-ui-button mw-ui-pressed" ' '<div class="uls-button-group mw-ui-button-group">' +
+ 'data-i18n="ext-uls-display-settings-language-tab"></button>' '<button id="uls-display-settings-language-tab" class="mw-ui-button mw-ui-pressed" ' +
+ '<button id="uls-display-settings-fonts-tab" class="mw-ui-button" data-i18n="ext-uls-display-settings-fonts-tab"></button>' 'data-i18n="ext-uls-display-settings-language-tab"></button>' +
+ '</div>' '<button id="uls-display-settings-fonts-tab" class="mw-ui-button" data-i18n="ext-uls-display-settings-fonts-tab"></button>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
'</div>' +
+ '<div class="ext-uls-sub-panel uls-display-settings-language-tab">' // Begin display language sub-panel // Begin display language sub-panel
'<div class="ext-uls-sub-panel uls-display-settings-language-tab">' +
// "Display language", title above the buttons row // "Display language", title above the buttons row
+ '<div class="row">' '<div class="row">' +
+ '<div class="eleven columns">' '<div class="eleven columns">' +
+ '<h4 data-i18n="ext-uls-display-settings-ui-language"></h4>' '<h4 data-i18n="ext-uls-display-settings-ui-language"></h4>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
// UI languages buttons row // UI languages buttons row
+ '<div class="row">' '<div class="row">' +
+ '<div class="uls-ui-languages eleven columns">' '<div class="uls-ui-languages eleven columns">' +
+ '<p data-i18n="ext-uls-language-buttons-help"></p>' '<p data-i18n="ext-uls-language-buttons-help"></p>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
+ '</div>' // End display language section // End display language section
'</div>' +
+ '<div class="ext-uls-sub-panel uls-display-settings-fonts-tab hide">' // Begin font settings section, hidden by default // Begin font settings section, hidden by default
'<div class="ext-uls-sub-panel uls-display-settings-fonts-tab hide">' +
// "Font settings" title // "Font settings" title
+ '<div class="row">' '<div class="row">' +
+ '<div class="twelve columns">' '<div class="twelve columns">' +
+ '<h4 data-i18n="ext-uls-display-settings-font-settings"></h4>' '<h4 data-i18n="ext-uls-display-settings-font-settings"></h4>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
+ '<div id="uls-display-settings-font-selectors" class="uls-display-settings-font-selectors">' '<div id="uls-display-settings-font-selectors" class="uls-display-settings-font-selectors">' +
// Menus font selection dropdown with label // Menus font selection dropdown with label
+ '<div class="row uls-font-item uls-content-fonts">' '<div class="row uls-font-item uls-content-fonts">' +
+ '<div class="six columns">' '<div class="six columns">' +
+ '<label class="uls-font-label" id="content-font-selector-label"></label>' '<label class="uls-font-label" id="content-font-selector-label"></label>' +
+ '</div>' '</div>' +
+ '<select id="content-font-selector" class="four columns end uls-font-select"></select>' '<select id="content-font-selector" class="four columns end uls-font-select"></select>' +
+ '</div>' '</div>' +
// Content font selection dropdown with label // Content font selection dropdown with label
+ '<div class="row uls-font-item uls-ui-fonts">' '<div class="row uls-font-item uls-ui-fonts">' +
+ '<div class="six columns">' '<div class="six columns">' +
+ '<label class="uls-font-label" id="ui-font-selector-label"></label>' '<label class="uls-font-label" id="ui-font-selector-label"></label>' +
+ '</div>' '</div>' +
+ '<select id="ui-font-selector" class="four columns end uls-font-select"></select>' '<select id="ui-font-selector" class="four columns end uls-font-select"></select>' +
+ '</div>' '</div>' +
+ '</div>' // End font selectors // End font selectors
'</div>' +
// Webfonts enabling checkbox with label // Webfonts enabling checkbox with label
+ '<div class="row">' '<div class="row">' +
+ '<div class="eleven columns">' '<div class="eleven columns">' +
+ '<div class="mw-ui-checkbox">' '<div class="mw-ui-checkbox">' +
+ '<input type="checkbox" id="webfonts-enable-checkbox" />' '<input type="checkbox" id="webfonts-enable-checkbox" />' +
+ '<label class="checkbox" for="webfonts-enable-checkbox" >' '<label class="checkbox" for="webfonts-enable-checkbox" >' +
+ '<strong data-i18n="ext-uls-webfonts-settings-title"></strong> ' '<strong data-i18n="ext-uls-webfonts-settings-title"></strong> ' +
+ '<span data-i18n="ext-uls-webfonts-settings-info"></span> ' '<span data-i18n="ext-uls-webfonts-settings-info"></span> ' +
+ '<a target="_blank" href="https://www.mediawiki.org/wiki/Universal_Language_Selector/WebFonts" data-i18n="ext-uls-webfonts-settings-info-link"></a>' '<a target="_blank" href="https://www.mediawiki.org/wiki/Universal_Language_Selector/WebFonts" data-i18n="ext-uls-webfonts-settings-info-link"></a>' +
+ '</label>' '</label>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
+ '</div>'; // End font settings section // End font settings section
'</div>';
function DisplaySettings( $parent ) { function DisplaySettings( $parent ) {
this.nameI18n = 'ext-uls-display-settings-title-short'; this.nameI18n = 'ext-uls-display-settings-title-short';

View File

@@ -106,6 +106,30 @@
} }
}; };
function imeNotification() {
var notificationMsg = ( mw.config.get( 'wgULSPosition' ) === 'personal' ) ?
'ext-uls-input-disable-notification-info-personal' :
'ext-uls-input-disable-notification-info-interlanguage',
$notification = $( '<div>' )
.addClass( 'uls-ime-notification-bubble' )
.append(
$( '<div>' )
.attr( 'data-i18n', 'ext-uls-input-disable-notification' ),
$( '<div>' )
.addClass( 'link' )
.attr( 'data-i18n', 'ext-uls-input-disable-notification-undo' )
.on( 'click', function () {
$.ime.preferences.enable();
$.ime.preferences.save( function () {
mw.ime.setup();
} );
} ),
$( '<div>' ).attr( 'data-i18n', notificationMsg )
);
mw.notify( $notification.i18n() );
}
// Add a 'more settings' link that takes to input settings of ULS // Add a 'more settings' link that takes to input settings of ULS
customHelpLink = function () { customHelpLink = function () {
var $disableInputToolsLink, $moreSettingsLink, var $disableInputToolsLink, $moreSettingsLink,
@@ -297,28 +321,4 @@
} ); } );
} }
}; };
function imeNotification() {
var notificationMsg = ( mw.config.get( 'wgULSPosition' ) === 'personal' ) ?
'ext-uls-input-disable-notification-info-personal' :
'ext-uls-input-disable-notification-info-interlanguage',
$notification = $( '<div>' )
.addClass( 'uls-ime-notification-bubble' )
.append(
$( '<div>' )
.attr( 'data-i18n', 'ext-uls-input-disable-notification' ),
$( '<div>' )
.addClass( 'link' )
.attr( 'data-i18n', 'ext-uls-input-disable-notification-undo' )
.on( 'click', function () {
$.ime.preferences.enable();
$.ime.preferences.save( function () {
mw.ime.setup();
} );
} ),
$( '<div>' ).attr( 'data-i18n', notificationMsg )
);
mw.notify( $notification.i18n() );
}
}( jQuery, mediaWiki ) ); }( jQuery, mediaWiki ) );

View File

@@ -107,7 +107,9 @@
}; };
mw.uls.getCountryCode = function () { mw.uls.getCountryCode = function () {
// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
return window.Geo && ( window.Geo.country || window.Geo.country_code ); return window.Geo && ( window.Geo.country || window.Geo.country_code );
// jscs:enable requireCamelCaseOrUpperCaseIdentifiers
}; };
mw.uls.getAcceptLanguageList = function () { mw.uls.getAcceptLanguageList = function () {

View File

@@ -20,40 +20,41 @@
( function ( $, mw ) { ( function ( $, mw ) {
'use strict'; 'use strict';
var template = '<div class="uls-input-settings">' var template = '<div class="uls-input-settings">' +
+ '<div class="row">' // Top "Display settings" title // Top "Display settings" title
+ '<div class="twelve columns">' '<div class="row">' +
+ '<h3 data-i18n="ext-uls-input-settings-title"></h3>' '<div class="twelve columns">' +
+ '</div>' '<h3 data-i18n="ext-uls-input-settings-title"></h3>' +
+ '</div>' '</div>' +
'</div>' +
// "Language for ime", title above the buttons row // "Language for ime", title above the buttons row
+ '<div class="row enabled-only uls-input-settings-languages-title">' '<div class="row enabled-only uls-input-settings-languages-title">' +
+ '<div class="eleven columns">' '<div class="eleven columns">' +
+ '<h4 data-i18n="ext-uls-input-settings-ui-language"></h4>' '<h4 data-i18n="ext-uls-input-settings-ui-language"></h4>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
// UI languages buttons row // UI languages buttons row
+ '<div class="row enabled-only">' '<div class="row enabled-only">' +
+ '<div class="uls-ui-languages eleven columns"></div>' '<div class="uls-ui-languages eleven columns"></div>' +
+ '</div>' '</div>' +
// Web IMEs enabling chechbox with label // Web IMEs enabling chechbox with label
+ '<div class="row enabled-only">' '<div class="row enabled-only">' +
+ '<div class="eleven columns uls-input-settings-inputmethods-list">' '<div class="eleven columns uls-input-settings-inputmethods-list">' +
// "Input settings for language xyz" title // "Input settings for language xyz" title
+ '<h4 class="ext-uls-input-settings-imes-title"></h4>' '<h4 class="ext-uls-input-settings-imes-title"></h4>' +
+ '</div>' '</div>' +
+ '</div>' '</div>' +
// Disable IME system button // Disable IME system button
+ '<div class="row">' '<div class="row">' +
+ '<div class="eleven columns uls-input-settings-disable-info"></div>' '<div class="eleven columns uls-input-settings-disable-info"></div>' +
+ '<div class="ten columns uls-input-settings-toggle">' '<div class="ten columns uls-input-settings-toggle">' +
+ '<button class="active mw-ui-constructive mw-ui-button uls-input-toggle-button"></button>' '<button class="active mw-ui-constructive mw-ui-button uls-input-toggle-button"></button>' +
+ '</div>' '</div>' +
+ '</div>'; '</div>';
function InputSettings( $parent ) { function InputSettings( $parent ) {
this.nameI18n = 'ext-uls-input-settings-title-short'; this.nameI18n = 'ext-uls-input-settings-title-short';