Merge "More jshint fixes"
This commit is contained in:
@@ -18,28 +18,30 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
( function ( $ ) {
|
( function ( $ ) {
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
var closeRow = '<div class="row">' +
|
var closeRow, settingsMenu, settingsPanel, windowTemplate, panelsRow;
|
||||||
|
|
||||||
|
closeRow = '<div class="row">' +
|
||||||
'<span id="languagesettings-close" class="icon-close"></span>' +
|
'<span id="languagesettings-close" class="icon-close"></span>' +
|
||||||
'</div>';
|
'</div>';
|
||||||
var settingsMenu = '<div class="four columns languagesettings-menu">' +
|
settingsMenu = '<div class="four columns languagesettings-menu">' +
|
||||||
'<h1 data-i18n="ext-uls-language-settings-title"></h1>' +
|
'<h1 data-i18n="ext-uls-language-settings-title"></h1>' +
|
||||||
'<div class="settings-menu-items">' +
|
'<div class="settings-menu-items">' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'</div>';
|
'</div>';
|
||||||
var settingsPanel = '<div id="languagesettings-settings-panel" class="eight columns">' +
|
settingsPanel = '<div id="languagesettings-settings-panel" class="eight columns">' +
|
||||||
'</div>';
|
'</div>';
|
||||||
var panelsRow = '<div class="row" id="languagesettings-panels">' +
|
panelsRow = '<div class="row" id="languagesettings-panels">' +
|
||||||
settingsMenu +
|
settingsMenu +
|
||||||
settingsPanel +
|
settingsPanel +
|
||||||
'</div>';
|
'</div>';
|
||||||
var windowTemplate = '<div style="display: block;" id="language-settings-dialog" class="uls-menu">'
|
windowTemplate = '<div style="display: block;" id="language-settings-dialog" class="uls-menu">'
|
||||||
+ closeRow
|
+ closeRow
|
||||||
+ panelsRow
|
+ panelsRow
|
||||||
+ '</div>';
|
+ '</div>';
|
||||||
|
|
||||||
var LanguageSettings = function ( element, options ) {
|
function LanguageSettings( element, options ) {
|
||||||
this.$element = $( element );
|
this.$element = $( element );
|
||||||
this.options = $.extend( {}, $.fn.languagesettings.defaults, options );
|
this.options = $.extend( {}, $.fn.languagesettings.defaults, options );
|
||||||
this.$window = $( this.options.template );
|
this.$window = $( this.options.template );
|
||||||
@@ -47,32 +49,34 @@
|
|||||||
this.initialized = false;
|
this.initialized = false;
|
||||||
this.left = this.options.left;
|
this.left = this.options.left;
|
||||||
this.top = this.options.top;
|
this.top = this.options.top;
|
||||||
this.$settingsPanel = this.$window.find( "#languagesettings-settings-panel" );
|
this.$settingsPanel = this.$window.find( '#languagesettings-settings-panel' );
|
||||||
this.init();
|
this.init();
|
||||||
this.listen();
|
this.listen();
|
||||||
};
|
}
|
||||||
|
|
||||||
LanguageSettings.prototype = {
|
LanguageSettings.prototype = {
|
||||||
constructor: LanguageSettings,
|
constructor: LanguageSettings,
|
||||||
|
|
||||||
init: function () {
|
init: function () {
|
||||||
$( "body" ).append( this.$window );
|
$( 'body' ).append( this.$window );
|
||||||
this.hide();
|
this.hide();
|
||||||
},
|
},
|
||||||
|
|
||||||
listen: function () {
|
listen: function () {
|
||||||
var that = this;
|
var that = this;
|
||||||
// Register all event listeners to the ULS language settings here.
|
// Register all event listeners to the ULS language settings here.
|
||||||
that.$element.on( "click", $.proxy( that.show, that ) );
|
that.$element.on( 'click', $.proxy( that.show, that ) );
|
||||||
that.$window.find( '#languagesettings-close' )
|
that.$window.find( '#languagesettings-close' )
|
||||||
.on( "click", $.proxy( that.hide, that ) );
|
.on( 'click', $.proxy( that.hide, that ) );
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function () {
|
render: function () {
|
||||||
|
var modules, defaultModule, moduleName;
|
||||||
|
|
||||||
// Get the name of all registered modules and list them in left side menu.
|
// Get the name of all registered modules and list them in left side menu.
|
||||||
var modules = $.fn.languagesettings.modules;
|
modules = $.fn.languagesettings.modules;
|
||||||
var defaultModule = this.options.defaultModule;
|
defaultModule = this.options.defaultModule;
|
||||||
for ( var moduleName in modules ) {
|
for ( moduleName in modules ) {
|
||||||
if ( modules.hasOwnProperty( moduleName ) ) {
|
if ( modules.hasOwnProperty( moduleName ) ) {
|
||||||
if ( !defaultModule ) {
|
if ( !defaultModule ) {
|
||||||
defaultModule = moduleName;
|
defaultModule = moduleName;
|
||||||
@@ -89,25 +93,27 @@
|
|||||||
* @param active boolean Make this module active and show by default
|
* @param active boolean Make this module active and show by default
|
||||||
*/
|
*/
|
||||||
renderModule: function ( moduleName, active ) {
|
renderModule: function ( moduleName, active ) {
|
||||||
var $settingsMenuItems = this.$window.find( ".settings-menu-items" );
|
var $settingsMenuItems, module, $settingsText, $settingsTitle, $settingsLink;
|
||||||
var module = new $.fn.languagesettings.modules[moduleName]( this );
|
|
||||||
var $settingsTitle = $( "<div>" )
|
$settingsMenuItems = this.$window.find( '.settings-menu-items' );
|
||||||
.addClass( "settings-title" )
|
module = new $.fn.languagesettings.modules[moduleName]( this );
|
||||||
|
$settingsTitle = $( '<div>' )
|
||||||
|
.addClass( 'settings-title' )
|
||||||
.text( module.name );
|
.text( module.name );
|
||||||
var $settingsText = $( "<span>" )
|
$settingsText = $( '<span>' )
|
||||||
.addClass( "settings-text" )
|
.addClass( 'settings-text' )
|
||||||
.text( module.description );
|
.text( module.description );
|
||||||
var $settingsLink = $( "<div>" )
|
$settingsLink = $( '<div>' )
|
||||||
.addClass( moduleName + "-settings-block menu-section" )
|
.addClass( moduleName + '-settings-block menu-section' )
|
||||||
.prop( "id", moduleName + "-settings-block" )
|
.prop( 'id', moduleName + '-settings-block' )
|
||||||
.data( "module", module )
|
.data( 'module', module )
|
||||||
.append( $settingsTitle )
|
.append( $settingsTitle )
|
||||||
.append( $settingsText );
|
.append( $settingsText );
|
||||||
|
|
||||||
$settingsMenuItems.append( $settingsLink );
|
$settingsMenuItems.append( $settingsLink );
|
||||||
|
|
||||||
$settingsLink.on( "click", function () {
|
$settingsLink.on( 'click', function () {
|
||||||
var module = $( this ).data( "module" );
|
var module = $( this ).data( 'module' );
|
||||||
module.render();
|
module.render();
|
||||||
$( this ).addClass( 'active' );
|
$( this ).addClass( 'active' );
|
||||||
} );
|
} );
|
||||||
@@ -120,13 +126,15 @@
|
|||||||
|
|
||||||
show: function () {
|
show: function () {
|
||||||
if ( !this.initialized ) {
|
if ( !this.initialized ) {
|
||||||
|
var top, pos, left;
|
||||||
|
|
||||||
this.render();
|
this.render();
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
var pos = $.extend( {}, this.$element.offset(), {
|
pos = $.extend( {}, this.$element.offset(), {
|
||||||
height: this.$element[0].offsetHeight
|
height: this.$element[0].offsetHeight
|
||||||
} );
|
} );
|
||||||
var top = this.top || pos.top + pos.height;
|
top = this.top || pos.top + pos.height;
|
||||||
var left = this.left || '25%';
|
left = this.left || '25%';
|
||||||
// FIXME this is not exactly correct. position may not
|
// FIXME this is not exactly correct. position may not
|
||||||
// be relative to the trigger.
|
// be relative to the trigger.
|
||||||
this.$window.css( {
|
this.$window.css( {
|
||||||
@@ -161,7 +169,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
click: function ( e ) {
|
click: function () {
|
||||||
if ( !this.shown ) {
|
if ( !this.shown ) {
|
||||||
this.show();
|
this.show();
|
||||||
}
|
}
|
||||||
@@ -171,13 +179,13 @@
|
|||||||
$.fn.languagesettings = function ( option ) {
|
$.fn.languagesettings = function ( option ) {
|
||||||
return this.each( function () {
|
return this.each( function () {
|
||||||
var $this = $( this ),
|
var $this = $( this ),
|
||||||
data = $this.data( "languagesettings" ),
|
data = $this.data( 'languagesettings' ),
|
||||||
options = typeof option === "object" && option;
|
options = typeof option === 'object' && option;
|
||||||
|
|
||||||
if ( !data ) {
|
if ( !data ) {
|
||||||
$this.data( "languagesettings", ( data = new LanguageSettings( this, options ) ) );
|
$this.data( 'languagesettings', ( data = new LanguageSettings( this, options ) ) );
|
||||||
}
|
}
|
||||||
if ( typeof option === "string" ) {
|
if ( typeof option === 'string' ) {
|
||||||
data[option]();
|
data[option]();
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
( function ( $, mw, undefined ) {
|
( function ( $, mw, undefined ) {
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
var ULSPreferences = function ( group ) {
|
var ULSPreferences = function ( group ) {
|
||||||
this.preferenceName = 'uls-preferences';
|
this.preferenceName = 'uls-preferences';
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
* @param callback
|
* @param callback
|
||||||
*/
|
*/
|
||||||
save: function ( callback ) {
|
save: function ( callback ) {
|
||||||
var that = this;
|
var that = this, api;
|
||||||
callback = callback || $.noop();
|
callback = callback || $.noop();
|
||||||
if ( this.isAnon ) {
|
if ( this.isAnon ) {
|
||||||
// Anonymous user- Save preferences in local storage
|
// Anonymous user- Save preferences in local storage
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
callback.call( this, true );
|
callback.call( this, true );
|
||||||
} else {
|
} else {
|
||||||
// Logged in user. Use MW apis to change preferences
|
// Logged in user. Use MW apis to change preferences
|
||||||
var api = new mw.Api();
|
api = new mw.Api();
|
||||||
api.post( {
|
api.post( {
|
||||||
action: 'tokens',
|
action: 'tokens',
|
||||||
type: 'options'
|
type: 'options'
|
||||||
@@ -93,12 +93,12 @@
|
|||||||
optionname: that.preferenceName,
|
optionname: that.preferenceName,
|
||||||
optionvalue: $.toJSON( that.preferences ),
|
optionvalue: $.toJSON( that.preferences ),
|
||||||
token: token
|
token: token
|
||||||
} ).done( function ( result ) {
|
} ).done( function () {
|
||||||
callback.call( this, true );
|
callback.call( this, true );
|
||||||
} ).fail( function () {
|
} ).fail( function () {
|
||||||
callback.call( this, false );
|
callback.call( this, false );
|
||||||
} );
|
} );
|
||||||
} ).fail( function ( xhr, textStatus, exception ) {
|
} ).fail( function () {
|
||||||
callback.call( this, false );
|
callback.call( this, false );
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
@@ -107,12 +107,12 @@
|
|||||||
|
|
||||||
mw.uls = mw.uls || {};
|
mw.uls = mw.uls || {};
|
||||||
mw.uls.preferences = function ( group ) {
|
mw.uls.preferences = function ( group ) {
|
||||||
var data = $( 'body' ).data( "preferences" );
|
var data = $( 'body' ).data( 'preferences' );
|
||||||
|
|
||||||
if ( !data ) {
|
if ( !data ) {
|
||||||
$( 'body' ).data( "preferences", ( data = new ULSPreferences( group ) ) );
|
$( 'body' ).data( 'preferences', ( data = new ULSPreferences( group ) ) );
|
||||||
}
|
}
|
||||||
if ( typeof group === "string" ) {
|
if ( typeof group === 'string' ) {
|
||||||
data.get( group );
|
data.get( group );
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
|
|||||||
Reference in New Issue
Block a user