Grid-compatible adjustable columns
This commit is contained in:
@@ -26,12 +26,30 @@
|
|||||||
background-clip: padding-box;
|
background-clip: padding-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
.uls-wide {
|
.uls-wide {
|
||||||
min-width: 715px;
|
min-width: 715px;
|
||||||
width: 45%;
|
width: 45%;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
.uls-medium {
|
||||||
|
min-width: 360px;
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Override the grid */
|
||||||
|
.uls-medium.grid .row {
|
||||||
|
min-width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uls-narrow {
|
||||||
|
min-width: 180px;
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Override the grid */
|
||||||
|
.uls-narrow.grid .row {
|
||||||
|
min-width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
.uls-title-region a {
|
.uls-title-region a {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
$( '.uls-trigger' ).click( function () {
|
$( '.uls-trigger' ).click( function () {
|
||||||
//Hacks I need to make afterwards. ULS API should be probably modified to allow optional classes and not force position:
|
//Hacks I need to make afterwards. ULS API should be probably modified to allow optional classes and not force position:
|
||||||
$( '.uls-menu' )
|
$( '.uls-menu' )
|
||||||
.removeClass( 'uls-wide' )
|
|
||||||
.addClass( 'uls-mobile' )
|
.addClass( 'uls-mobile' )
|
||||||
.css( 'left', '2.5%' );
|
.css( 'left', '2.5%' );
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
// Region numbers in id attributes also appear in the langdb.
|
// Region numbers in id attributes also appear in the langdb.
|
||||||
/*jshint multistr:true */
|
/*jshint multistr:true */
|
||||||
template = '<div class="grid uls-menu uls-wide"> \
|
template = '<div class="grid uls-menu"> \
|
||||||
<div class="row"> \
|
<div class="row"> \
|
||||||
<span id="uls-close" class="uls-icon-close"></span> \
|
<span id="uls-close" class="uls-icon-close"></span> \
|
||||||
</div> \
|
</div> \
|
||||||
@@ -144,20 +144,15 @@
|
|||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
*/
|
*/
|
||||||
position: function () {
|
position: function () {
|
||||||
var width, minWidth, pos;
|
var pos;
|
||||||
|
|
||||||
width = 11 * this.options.columns;
|
|
||||||
minWidth = 179 * this.options.columns;
|
|
||||||
|
|
||||||
pos = $.extend( {}, this.$element.offset(), {
|
pos = $.extend( {}, this.$element.offset(), {
|
||||||
height: this.$element[0].offsetHeight
|
height: this.$element[0].offsetHeight
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'width': width + '%',
|
top: this.top !== undefined ? this.top : pos.top + pos.height,
|
||||||
'min-width': minWidth,
|
left: this.left !== undefined ? this.left : '25%'
|
||||||
'top': this.top !== undefined ? this.top : pos.top + pos.height,
|
|
||||||
'left': this.left !== undefined ? this.left : '25%'
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -165,6 +160,13 @@
|
|||||||
* Show the ULS window
|
* Show the ULS window
|
||||||
*/
|
*/
|
||||||
show: function () {
|
show: function () {
|
||||||
|
var widthClasses = {
|
||||||
|
wide: 'uls-wide',
|
||||||
|
medium: 'uls-medium',
|
||||||
|
narrow: 'uls-narrow'
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$menu.addClass( widthClasses[this.options.menuWidth] );
|
||||||
this.$menu.css( this.position() );
|
this.$menu.css( this.position() );
|
||||||
|
|
||||||
if ( this.options.compact ) {
|
if ( this.options.compact ) {
|
||||||
@@ -245,9 +247,15 @@
|
|||||||
* Bind the UI elements with their event listeners
|
* Bind the UI elements with their event listeners
|
||||||
*/
|
*/
|
||||||
listen: function () {
|
listen: function () {
|
||||||
var lcd,
|
var lcd, columnsOptions,
|
||||||
uls = this;
|
uls = this;
|
||||||
|
|
||||||
|
columnsOptions = {
|
||||||
|
wide: 4,
|
||||||
|
medium: 2,
|
||||||
|
narrow: 1
|
||||||
|
};
|
||||||
|
|
||||||
// Register all event listeners to the ULS here.
|
// Register all event listeners to the ULS here.
|
||||||
this.$element.on( 'click', $.proxy( this.click, this ) );
|
this.$element.on( 'click', $.proxy( this.click, this ) );
|
||||||
|
|
||||||
@@ -272,7 +280,7 @@
|
|||||||
|
|
||||||
lcd = this.$resultsView.lcd( {
|
lcd = this.$resultsView.lcd( {
|
||||||
languages: this.languages,
|
languages: this.languages,
|
||||||
columns: this.options.columns,
|
columns: columnsOptions[this.options.menuWidth],
|
||||||
quickList: this.options.quickList,
|
quickList: this.options.quickList,
|
||||||
clickhandler: $.proxy( this.select, this ),
|
clickhandler: $.proxy( this.select, this ),
|
||||||
source: this.$languageFilter,
|
source: this.$languageFilter,
|
||||||
@@ -410,7 +418,7 @@
|
|||||||
languages: $.uls.data.getAutonyms(), // Languages to be used for ULS, default is all languages
|
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: null, // Array of language codes or function that returns such
|
||||||
compact: false, // Show ULS in compact mode
|
compact: false, // Show ULS in compact mode
|
||||||
columns: 2, // How many columns of languages to show
|
menuWidth: 'wide', // The options are wide (4 columns), medium (2 columns), and narrow (1 column)
|
||||||
showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],
|
showRegions: [ 'WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA' ],
|
||||||
languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.
|
languageDecorator: null // Callback function to be called when a language link is prepared - for custom decoration.
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -152,8 +152,8 @@
|
|||||||
* Renders a region and displays it if it has content.
|
* Renders a region and displays it if it has content.
|
||||||
*/
|
*/
|
||||||
renderRegions: function () {
|
renderRegions: function () {
|
||||||
var lcd = this, languages,
|
var languages,
|
||||||
items = lcd.options.itemsPerColumn;
|
lcd = this;
|
||||||
|
|
||||||
this.$noResults.addClass( 'hide' );
|
this.$noResults.addClass( 'hide' );
|
||||||
this.$element.find( '.uls-lcd-region-section' ).each( function () {
|
this.$element.find( '.uls-lcd-region-section' ).each( function () {
|
||||||
@@ -172,7 +172,12 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
lcd.renderRegion( $region, languages, items, lcd.options.columns );
|
lcd.renderRegion(
|
||||||
|
$region,
|
||||||
|
languages,
|
||||||
|
lcd.options.itemsPerColumn,
|
||||||
|
lcd.options.columns
|
||||||
|
);
|
||||||
$region.removeClass( 'hide' );
|
$region.removeClass( 'hide' );
|
||||||
|
|
||||||
lcd.regionLanguages[regionCode] = [];
|
lcd.regionLanguages[regionCode] = [];
|
||||||
@@ -293,7 +298,12 @@
|
|||||||
.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present
|
.text( 'Common languages' ); // This is placeholder text if jquery.i18n not present
|
||||||
$quickListSection.append( $quickListSectionTitle );
|
$quickListSection.append( $quickListSectionTitle );
|
||||||
|
|
||||||
this.renderRegion( $quickListSection, quickList, 4, 4 );
|
this.renderRegion(
|
||||||
|
$quickListSection,
|
||||||
|
quickList,
|
||||||
|
this.options.itemsPerColumn,
|
||||||
|
this.options.columns
|
||||||
|
);
|
||||||
|
|
||||||
$quickListSectionTitle.i18n();
|
$quickListSectionTitle.i18n();
|
||||||
|
|
||||||
@@ -385,10 +395,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
$.fn.lcd.defaults = {
|
$.fn.lcd.defaults = {
|
||||||
columns: 4,
|
|
||||||
languages: null,
|
languages: null,
|
||||||
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],
|
showRegions: ['WW', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'],
|
||||||
itemsPerColumn: 8,
|
itemsPerColumn: 8,
|
||||||
|
columns: 4,
|
||||||
languageDecorator: null
|
languageDecorator: null
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user