jenkins-bot has submitted this change and it was merged.

Change subject: Correct the position the arrow of selector and add shadow
......................................................................


Correct the position the arrow of selector and add shadow

The pointer arrow of the ULS was not aligned with the 'x more' trigger
and it missed shadow. This commit fixes it.

Notably, we replace the old arrow with a box rotated 45 degree so that
we can apply the shadow very easily.

Bug: T130633
Change-Id: I4d36f3ee9fcfea932e10208518a03e7b246a7abe
---
M resources/css/ext.uls.compactlinks.css
M resources/js/ext.uls.compactlinks.js
2 files changed, 52 insertions(+), 31 deletions(-)

Approvals:
  Santhosh: Looks good to me, but someone else must approve
  Nikerabbit: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/css/ext.uls.compactlinks.css 
b/resources/css/ext.uls.compactlinks.css
index 6d2e5f1..b940a44 100644
--- a/resources/css/ext.uls.compactlinks.css
+++ b/resources/css/ext.uls.compactlinks.css
@@ -13,28 +13,39 @@
        background-image: url( ../images/compact-links-trigger.svg );
        background-size: 17px;
        background-repeat: no-repeat;
-       background-position: 9% 8%;
+       background-position: left 4px center;
        margin: 4px 0;
+       text-align: left;
 }
 
-.interlanguage-uls-menu:after,
 .interlanguage-uls-menu:before {
-       right: 100%;
-       content: " ";
+       background: none repeat scroll 0 0 #FCFCFC;
+       border-left: 1px solid rgba( 0, 0, 0, 0.2 );
+       border-top: 1px solid rgba( 0, 0, 0, 0.2 );
+       box-shadow: -2px -2px 2px rgba( 0, 0, 0, 0.1 );
+       content: "";
+       height: 24px;
+       width: 24px;
+       left: -13px;
        position: absolute;
-       border: 1px solid black;
+       /* The dialog middle is positioned 250px away from the center of the 
trigger. Substract 12 for
+        * half of the box height to center middle of the box rather than the 
top.  The remaining 2 are
+        * either for top-margin of the menu and border of this box, or because 
we use do not account
+        * for the margin of the trigger when we use $.fn.outerWidth without 
true as a parameter.
+        */
+       top: 236px;
+       transform: rotate( -45deg );
+       -webkit-transform: rotate( -45deg );
+       -moz-transform: rotate( -45deg );
+       -o-transform: rotate( -45deg );
+       -ms-transform: rotate( -45deg );
+       background-clip: padding-box;
 }
 
-.interlanguage-uls-menu:after {
-       border-color: transparent;
-       border-right-color: #FCFCFC;
-       border-width: 20px;
-       top: 250px;
-}
-
-.interlanguage-uls-menu:before {
-       border-color: transparent;
-       border-right-color: #555555;
-       border-width: 20px;
-       top: 250px;
+body.rtl .interlanguage-uls-menu:before {
+       transform: rotate( 45deg );
+       -webkit-transform: rotate( 45deg );
+       -moz-transform: rotate( 45deg );
+       -o-transform: rotate( 45deg );
+       -ms-transform: rotate( 45deg );
 }
diff --git a/resources/js/ext.uls.compactlinks.js 
b/resources/js/ext.uls.compactlinks.js
index 27c4491..e51d088 100644
--- a/resources/js/ext.uls.compactlinks.js
+++ b/resources/js/ext.uls.compactlinks.js
@@ -95,8 +95,6 @@
                        var languages,
                                compactLinks = this,
                                dir = $( 'html' ).prop( 'dir' ),
-                               interlanguageListLeft,
-                               interlanguageListWidth,
                                ulsLanguageList = {};
 
                        languages = $.map( compactLinks.interlanguageList, 
function ( language, languageCode ) {
@@ -105,9 +103,6 @@
                                return languageCode;
                        } );
 
-                       // Calculate the left and width values
-                       interlanguageListLeft = 
compactLinks.$interlanguageList.offset().left;
-                       interlanguageListWidth = 
compactLinks.$interlanguageList.width();
                        // Attach ULS to the trigger
                        compactLinks.$trigger.uls( {
                                onReady: function () {
@@ -127,14 +122,33 @@
                                        location.href = 
compactLinks.interlanguageList[ language ].href;
                                },
                                onVisible: function () {
-                                       // Calculate the positioning of the 
panel
-                                       // according to the position of the 
trigger icon
+                                       var offset, height, width, 
triangleWidth;
+                                       // The panel is positioned carefully so 
that our pointy triangle,
+                                       // which is implemented as a square box 
rotated 45 degrees with
+                                       // rotation origin in the middle. See 
the corresponding style file.
+
+                                       // These are for the trigger
+                                       offset = compactLinks.$trigger.offset();
+                                       width = 
compactLinks.$trigger.outerWidth();
+                                       height = 
compactLinks.$trigger.outerHeight();
+
+                                       // Triangle width is: Math.sqrt( 2 * 
Math.pow( 25, 2 ) ) / 2 =~ 17.7;
+                                       // Box width = 24 + 1 for border.
+                                       // The resulting value is rounded up 20 
to have a small space between.
+                                       triangleWidth = 20;
+
                                        if ( dir === 'rtl' ) {
-                                               this.left = 
interlanguageListLeft - this.$menu.width();
+                                               this.left = offset.left - 
this.$menu.outerWidth() - triangleWidth;
                                        } else {
-                                               this.left = 
interlanguageListLeft + interlanguageListWidth;
+                                               this.left = offset.left + width 
+ triangleWidth;
                                        }
-                                       this.$menu.css( 'left', this.left );
+                                       // Offset -250px from the middle of the 
trigger
+                                       this.top = offset.top + ( height / 2 ) 
- 250;
+
+                                       this.$menu.css( {
+                                               left: this.left,
+                                               top: this.top
+                                       } );
                                },
                                languageDecorator: function ( $languageLink, 
language ) {
                                        // set href according to language
@@ -142,10 +156,6 @@
                                },
                                // Use compact version of ULS
                                compact: true,
-                               // Top position of the language selector. Top 
it 250px above to take care of
-                               // caret pointing the trigger. See 
.interlanguage-uls-menu:after style definition
-                               top: compactLinks.$trigger.offset().top - 
compactLinks.$trigger.height() / 2 - 250,
-                               // List of languages to be shown
                                languages: ulsLanguageList,
                                // Show common languages
                                quickList: 
compactLinks.filterByCommonLanguages( languages )

-- 
To view, visit https://gerrit.wikimedia.org/r/281595
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I4d36f3ee9fcfea932e10208518a03e7b246a7abe
Gerrit-PatchSet: 11
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
Gerrit-Reviewer: Fomafix
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Santhosh <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to