Update jquery.uls from upstream
Like Iecec180ca01a40f0333e5b75914dcdb0c390f6b8
but includes also the unbreak fix by Hoo man
( https://github.com/wikimedia/jquery.uls/pull/238 ).
Updating to
d77da03dbf
Bug: T144871
Bug: T138235
Bug: T137870
Change-Id: I0bafd39385148fd09e7793805f698a43a237e204
This commit is contained in:
@@ -91,7 +91,7 @@
|
||||
this.initialized = false;
|
||||
|
||||
this.$languageFilter = this.$menu.find( '#uls-languagefilter' );
|
||||
this.$resultsView = this.$menu.find( 'div.uls-language-list' );
|
||||
this.$resultsView = this.$menu.find( '.uls-language-list' );
|
||||
|
||||
this.render();
|
||||
this.listen();
|
||||
@@ -134,15 +134,25 @@
|
||||
* @returns {Object}
|
||||
*/
|
||||
position: function () {
|
||||
var pos;
|
||||
var pos,
|
||||
top = this.top,
|
||||
left = this.left;
|
||||
|
||||
if ( top === undefined ) {
|
||||
pos = $.extend( {}, this.$element.offset(), {
|
||||
height: this.$element[ 0 ].offsetHeight
|
||||
} );
|
||||
top = pos.top + pos.height;
|
||||
}
|
||||
|
||||
if ( left === undefined ) {
|
||||
left = $( window ).width() / 2 - this.$menu.outerWidth() / 2;
|
||||
}
|
||||
|
||||
pos = $.extend( {}, this.$element.offset(), {
|
||||
height: this.$element[ 0 ].offsetHeight
|
||||
} );
|
||||
|
||||
return {
|
||||
top: this.top !== undefined ? this.top : pos.top + pos.height,
|
||||
left: this.left !== undefined ? this.left : '25%'
|
||||
top: top,
|
||||
left: left
|
||||
};
|
||||
},
|
||||
|
||||
@@ -157,7 +167,6 @@
|
||||
};
|
||||
|
||||
this.$menu.addClass( widthClasses[this.getMenuWidth()] );
|
||||
this.$menu.css( this.position() );
|
||||
|
||||
if ( !this.initialized ) {
|
||||
$( 'body' ).prepend( this.$menu );
|
||||
@@ -165,6 +174,7 @@
|
||||
this.initialized = true;
|
||||
}
|
||||
|
||||
this.$menu.css( this.position() );
|
||||
this.$menu.show();
|
||||
this.$menu.scrollIntoView();
|
||||
this.shown = true;
|
||||
@@ -250,7 +260,7 @@
|
||||
languages: this.languages,
|
||||
columns: columnsOptions[ this.getMenuWidth() ],
|
||||
|
||||
quickList: languagesCount > 12 ? this.options.quickList : false,
|
||||
quickList: languagesCount > 12 ? this.options.quickList : [],
|
||||
clickhandler: $.proxy( this.select, this ),
|
||||
source: this.$languageFilter,
|
||||
showRegions: this.options.showRegions,
|
||||
@@ -348,7 +358,7 @@
|
||||
|
||||
languagesCount = objectLength( this.options.languages );
|
||||
|
||||
if ( languagesCount < 12 ) {
|
||||
if ( languagesCount < 25 ) {
|
||||
return 'narrow';
|
||||
}
|
||||
|
||||
@@ -387,7 +397,7 @@
|
||||
onSelect: null, // Callback function to be called when a language is selected
|
||||
searchAPI: null, // Language search API
|
||||
languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages
|
||||
quickList: null, // Array of language codes or function that returns such
|
||||
quickList: [], // Array of language codes or function that returns such
|
||||
// The options are wide (4 columns), medium (2 columns), and narrow (1 column).
|
||||
// If not specified, it will be set automatically.
|
||||
menuWidth: null,
|
||||
|
||||
@@ -24,18 +24,18 @@
|
||||
|
||||
var noResultsTemplate, LanguageCategoryDisplay;
|
||||
|
||||
noResultsTemplate = $( '<div>' ).addClass( 'twelve columns uls-no-results-view hide' );
|
||||
noResultsTemplate = $( '<div>' ).addClass( 'uls-no-results-view hide' );
|
||||
noResultsTemplate.append(
|
||||
$( '<h2>' )
|
||||
.attr( 'data-i18n', 'uls-no-results-found' )
|
||||
.addClass( 'eleven columns offset-by-one uls-no-results-found-title' )
|
||||
.addClass( 'uls-no-results-found-title' )
|
||||
.text( 'No results found' ),
|
||||
$( '<div>' )
|
||||
.attr( 'id', 'uls-no-found-more' )
|
||||
.addClass( 'uls-no-found-more' )
|
||||
.append(
|
||||
$( '<div>' )
|
||||
.addClass( 'ten columns offset-by-one' )
|
||||
.addClass( '' )
|
||||
.append(
|
||||
$( '<p>' ).append(
|
||||
$( '<span>' ).text( 'You can search by language name, script name, ISO code of language or you can browse by region.' )
|
||||
@@ -47,7 +47,7 @@
|
||||
LanguageCategoryDisplay = function ( element, options ) {
|
||||
this.$element = $( element );
|
||||
this.options = $.extend( {}, $.fn.lcd.defaults, options );
|
||||
this.$element.addClass( 'lcd' );
|
||||
this.$element.addClass( 'uls-lcd' );
|
||||
this.regionLanguages = {};
|
||||
this.renderTimeout = null;
|
||||
this.cachedQuicklist = null;
|
||||
@@ -109,8 +109,9 @@
|
||||
},
|
||||
|
||||
render: function () {
|
||||
var $section,
|
||||
var $section, $quicklist,
|
||||
lcd = this,
|
||||
narrowMode = this.options.columns === 1,
|
||||
regions = [],
|
||||
regionNames = {
|
||||
// These are fallback text when i18n library not present
|
||||
@@ -124,7 +125,16 @@
|
||||
PA: 'Pacific'
|
||||
};
|
||||
|
||||
regions.push( this.buildQuicklist() );
|
||||
$quicklist = this.buildQuicklist();
|
||||
regions.push( $quicklist );
|
||||
|
||||
if ( narrowMode && $quicklist.length ) {
|
||||
regions.push( $( '<h3>' )
|
||||
.attr( 'data-i18n', 'uls-region-all' )
|
||||
.addClass( 'uls-lcd-region-title' )
|
||||
.text( 'All languages' )
|
||||
);
|
||||
}
|
||||
|
||||
$.each( $.uls.data.regiongroups, function ( regionCode ) {
|
||||
lcd.regionLanguages[ regionCode ] = [];
|
||||
@@ -135,14 +145,14 @@
|
||||
}
|
||||
|
||||
$section = $( '<div>' )
|
||||
.addClass( 'eleven columns offset-by-one uls-lcd-region-section hide' )
|
||||
.addClass( 'uls-lcd-region-section hide' )
|
||||
.attr( 'id', regionCode );
|
||||
|
||||
// Show a region heading, unless we are using a narrow ULS
|
||||
if ( lcd.options.columns !== 1 ) {
|
||||
if ( !narrowMode ) {
|
||||
$section.append( $( '<h3>' )
|
||||
.attr( 'data-i18n', 'uls-region-' + regionCode )
|
||||
.addClass( 'eleven columns uls-lcd-region-title' )
|
||||
.addClass( 'uls-lcd-region-title' )
|
||||
.text( regionNames[ regionCode ] )
|
||||
);
|
||||
}
|
||||
@@ -306,7 +316,7 @@
|
||||
this.options.quickList = this.options.quickList();
|
||||
}
|
||||
|
||||
if ( !this.options.quickList ) {
|
||||
if ( !this.options.quickList.length ) {
|
||||
this.cachedQuicklist = $( [] );
|
||||
return this.cachedQuicklist;
|
||||
}
|
||||
@@ -317,13 +327,13 @@
|
||||
quickList.sort( $.uls.data.sortByAutonym );
|
||||
|
||||
$quickListSection = $( '<div>' )
|
||||
.addClass( 'eleven columns offset-by-one uls-lcd-region-section' )
|
||||
.addClass( 'uls-lcd-region-section' )
|
||||
.attr( 'id', 'uls-lcd-quicklist' );
|
||||
|
||||
$quickListSectionTitle = $( '<h3>' )
|
||||
.attr( 'data-i18n', 'uls-common-languages' )
|
||||
.addClass( 'eleven columns uls-lcd-region-title' )
|
||||
.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present
|
||||
.addClass( 'uls-lcd-region-title' )
|
||||
.text( 'Suggested languages' ); // This is placeholder text if jquery.i18n not present
|
||||
$quickListSection.append( $quickListSectionTitle );
|
||||
|
||||
this.renderRegion(
|
||||
@@ -401,7 +411,8 @@
|
||||
// Other supported values are 1 and 2.
|
||||
// Other values will have rendering issues.
|
||||
columns: 4,
|
||||
languageDecorator: null
|
||||
languageDecorator: null,
|
||||
quickList: []
|
||||
};
|
||||
|
||||
$.fn.lcd.Constructor = LanguageCategoryDisplay;
|
||||
|
||||
Reference in New Issue
Block a user