Merge "Show badges in ULS language list"

This commit is contained in:
Santhosh
2016-06-09 12:01:04 +00:00
committed by Gerrit Code Review
3 changed files with 36 additions and 22 deletions

View File

@@ -9,7 +9,10 @@
/* Language list */
.uls-language-list {
height: 20em;
overflow: auto;
/* Work around Chrome bug where it places scrollbar on the left in
* in RTL mode but actually reserves the place on the right side */
overflow-x: hidden;
overflow-y: auto;
width: auto;
background: #FCFCFC;
}
@@ -18,20 +21,19 @@
margin: 0 0 1.5em;
}
.uls-language-list ul li {
cursor: pointer;
font-weight: normal;
overflow: hidden;
white-space: nowrap;
.uls-language-list ul {
/*
* Some languages have long names for various reasons and we still want
* them to appear on one line.
* To make it work correctly, the directionality must be set correctly
* on the item level.
* We don't want any visible bullets in this list. Not by default anyway.
* Using very unspecific selector here to allow other classes to override.
* Bug because overflow: hidden is incompatible with bullets, also render
* the bullets inside the list in case there should be any.
*/
text-overflow: ellipsis;
list-style-image: none;
list-style-type: none;
}
.uls-language-list li {
cursor: pointer;
/*
* The directionality (ltr/rtl) for each list item is set dynamically
* as HTML attributes in JavaScript. Setting directionality also applies
@@ -42,14 +44,9 @@
* is readable.
*/
text-align: left;
/*
* We don't want any visible bullets in this list.
*/
list-style-image: none;
list-style-type: none;
}
/* TODO: looks unused */
.uls-language-list strong {
text-decoration: underline;
}
@@ -60,6 +57,18 @@
color: #3366bb;
font-size: 14px;
line-height: 1.6em;
display: inline-block;
width: 100%;
overflow: hidden;
/*
* Some languages have long names for various reasons and we still want
* them to appear on one line.
* To make it work correctly, the directionality must be set correctly
* on the item level.
*/
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
}
.uls-language-block {

View File

@@ -273,13 +273,14 @@
// Not using jQuery as this is performance hotspot
li = document.createElement( 'li' );
li.title = name;
li.lang = code;
li.dir = $.uls.data.getDir( code );
li.setAttribute( 'data-code', code );
a = document.createElement( 'a' );
a.appendChild( document.createTextNode( autonym ) );
a.className = 'autonym';
a.lang = code;
a.dir = $.uls.data.getDir( code );
li.appendChild( a );
if ( this.options.languageDecorator ) {

View File

@@ -156,13 +156,17 @@
$trigger.addClass( 'selector-open' );
},
languageDecorator: function ( $languageLink, language ) {
var data = self.interlanguageList[ language ];
// set href and text exactly same as what was in
// interlanguage link. The ULS autonym might be different in some
// cases like sr. In ULS it is "српски", while in interlanguage links
// it is "српски / srpski"
$languageLink
.prop( 'href', self.interlanguageList[ language ].href )
.text( self.interlanguageList[ language ].autonym );
.prop( 'href', data.href )
.text( data.autonym );
// This code is to support badges used in Wikimedia
$languageLink.parent().addClass( data.element.parentNode.className );
},
onCancel: function () {
$trigger.removeClass( 'selector-open' );