Santhosh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/63840
Change subject: Simplify the language settings display
......................................................................
Simplify the language settings display
Directly show language settings instead of showing ULS language selector
and then simulating click on language settings
Change-Id: Iafb15ac9a7140fcce9e71ed933be6c55be81dc7e
---
M resources/css/ext.uls.css
M resources/js/ext.uls.interface.js
2 files changed, 23 insertions(+), 76 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector
refs/changes/40/63840/1
diff --git a/resources/css/ext.uls.css b/resources/css/ext.uls.css
index f41fb70..0449202 100644
--- a/resources/css/ext.uls.css
+++ b/resources/css/ext.uls.css
@@ -7,7 +7,7 @@
padding-left: 30px;
}
-#p-lang .uls-trigger {
+#p-lang .uls-settings-trigger {
/* @embed */
background: transparent url('../images/cog-sprite.png') right top
no-repeat;
background-image: -webkit-linear-gradient(transparent, transparent),
url('../images/cog-sprite.svg');
@@ -16,16 +16,17 @@
background-size: 14px auto;
border-radius: 0 0 5px 5px;
height: 14px;
+ width: 14px;
float: right;
cursor: pointer;
}
-.skin-vector #p-lang .uls-trigger {
+.skin-vector #p-lang .uls-settings-trigger {
/* Put it in the middle of the first row of the section title */
margin-top: 4px;
}
-#p-lang .uls-trigger:hover {
+#p-lang .uls-settings-trigger:hover {
background-position: right -18px;
}
diff --git a/resources/js/ext.uls.interface.js
b/resources/js/ext.uls.interface.js
index 3d09e5e..71b0516 100644
--- a/resources/js/ext.uls.interface.js
+++ b/resources/js/ext.uls.interface.js
@@ -21,7 +21,10 @@
'use strict';
$( document ).ready( function () {
- var $ulsTrigger, $pLang,
+ var $ulsTrigger,
+ $ulsSettingsTrigger,
+ ulsTriggerOffset,
+ $pLang,
ulsOptions,
previousLanguages, previousLang,
anonMode,
@@ -40,10 +43,10 @@
// The interlanguage links section
$pLang = $( '#p-lang' );
// Add an element near the interlanguage links header
- $pLang.prepend( $( '<span>' )
- .addClass( 'uls-trigger' )
- .attr( 'title', $.i18n(
'ext-uls-language-settings-title' ) )
- );
+ $ulsSettingsTrigger = $( '<span>' )
+ .addClass( 'uls-settings-trigger' )
+ .attr( 'title', $.i18n(
'ext-uls-language-settings-title' ) );
+ $pLang.prepend( $ulsSettingsTrigger );
// Remove the dummy link that was added to make sure
that the section appears
$pLang.find( '.uls-p-lang-dummy' ).remove();
@@ -159,80 +162,23 @@
};
if ( ulsPosition === 'interlanguage' ) {
- $ulsTrigger.attr( 'title', $.i18n(
'ext-uls-select-language-settings-icon-tooltip' ) );
-
- // This is a hook that runs in the ULS scope
- ulsOptions.onVisible = function () {
- var scrollPosition,
- $currentMenu,
- ulsHeight, ulsTop, ulsBottom,
- $languageSettingsTrigger =
this.$menu.find( '#display-settings-block' ),
- padding = 10,
- $window = $( window ),
- windowHeight = $window.height(),
- windowScrollTop = $window.scrollTop(),
- windowBottom = windowScrollTop +
windowHeight,
- ulsTriggerOffset =
this.$element.offset();
-
- // Reposition the element -
- // the sidebar elements may have changed
- this.top = ulsTriggerOffset.top - 45;
- this.left = rtlPage ?
- ulsTriggerOffset.left - 22 -
this.$menu.width() :
- ulsTriggerOffset.left + 50;
- this.$menu.css( this.position() );
-
- // Show the Display settings panel:
- // We are using the ULS trigger in the sidebar,
- // so we don't want to switch the language, but
- // to change the settings.
- $languageSettingsTrigger.click();
-
- $currentMenu = $( '.uls-menu:visible' );
- $currentMenu.css( this.position() );
- ulsHeight = $currentMenu.height();
- ulsTop = $currentMenu.offset().top;
- ulsBottom = ulsTop + ulsHeight;
-
- // If the ULS panel is out of the viewport,
- // scroll the window to show it
- if ( ( ulsTop < windowScrollTop ) || (
ulsBottom > windowBottom ) ) {
- if ( ulsHeight > windowHeight ) {
- // Scroll to show as much of
the upper
- // part of ULS as possible
- scrollPosition = ulsTop -
padding;
- } else {
- // Scroll just enough to show
the ULS panel
- scrollPosition = ulsBottom -
windowHeight + padding;
- }
-
- $( 'html, body' ).stop().animate( {
- scrollTop: scrollPosition
- }, 500 );
- }
-
- // Set the position of the caret according to
the height
- // of the top row of the menu
- $currentMenu.find( '.caret-before,
.caret-after' ).css( 'top',
- $currentMenu.find( '.row' ).height()
- );
-
- };
- } else if ( anonMode ) {
- ulsOptions.onVisible = function () {
- this.$menu.find( '#display-settings-block'
).click();
- };
- }
-
- $ulsTrigger.uls( ulsOptions );
-
- if ( ulsPosition === 'interlanguage' ) {
+ $ulsSettingsTrigger.attr( 'title', $.i18n(
'ext-uls-select-language-settings-icon-tooltip' ) );
+ ulsTriggerOffset = $ulsSettingsTrigger.offset();
+ $ulsSettingsTrigger.languagesettings( {
+ left: rtlPage ? ulsTriggerOffset.left - 22
+ :ulsTriggerOffset.left + 50,
+ top: ulsTriggerOffset.top - 50
+ } );
$( '.uls-menu' ).each( function () {
$( this ).prepend(
$( '<span>' ).addClass( 'caret-before'
),
$( '<span>' ).addClass( 'caret-after' )
);
} );
+ } else if ( anonMode ) {
+ $ulsTrigger.languagesettings();
+ } else {
+ $ulsTrigger.uls( ulsOptions );
}
if ( previousLang === currentLang ) {
--
To view, visit https://gerrit.wikimedia.org/r/63840
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iafb15ac9a7140fcce9e71ed933be6c55be81dc7e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits