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

Change subject: Make last row of new gallery not be huge.
......................................................................


Make last row of new gallery not be huge.

If we cannot make the last row fit the page width,
make the image zoom factor be the average zoom
factor (sans any shrinking) so that the last
row doesn't have images that are super huge.

Change-Id: I0caf8d1800808f14c9f53073f3b901eedec32bb7
---
M resources/mediawiki.page/mediawiki.page.gallery.js
1 file changed, 24 insertions(+), 2 deletions(-)

Approvals:
  MarkTraceur: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/mediawiki.page/mediawiki.page.gallery.js 
b/resources/mediawiki.page/mediawiki.page.gallery.js
index fd2af40..ddf63a8 100644
--- a/resources/mediawiki.page/mediawiki.page.gallery.js
+++ b/resources/mediawiki.page/mediawiki.page.gallery.js
@@ -94,7 +94,9 @@
                                        $caption,
                                        hookInfo,
                                        i,
-                                       j;
+                                       j,
+                                       avgZoom,
+                                       totalZoom = 0;
 
                                for ( i = 0; i < rows.length; i++ ) {
                                        maxWidth = $gallery.width();
@@ -135,7 +137,19 @@
                                                // code, would prevent 
accidentally expanding to
                                                // be 10 billion pixels wide.
                                                mw.log( 'mw.page.gallery: 
Cannot fit row, aspect is ' + preferredHeight/curRowHeight );
-                                               preferredHeight = 1.5 * 
curRowHeight;
+                                               if ( i === rows.length - 1 ) {
+                                                       // If its the last row, 
and we can't fit it,
+                                                       // don't make the 
entire row huge.
+                                                       avgZoom = ( totalZoom / 
( rows.length - 1 ) ) * curRowHeight;
+                                                       if ( isFinite( avgZoom 
) && avgZoom >= 1 && avgZoom <= 1.5 ) {
+                                                               preferredHeight 
= avgZoom;
+                                                       } else {
+                                                               // Probably a 
single row gallery
+                                                               preferredHeight 
= curRowHeight;
+                                                       }
+                                               } else {
+                                                       preferredHeight = 1.5 * 
curRowHeight;
+                                               }
                                        }
                                        if ( !isFinite( preferredHeight ) ) {
                                                // This *definitely* should not 
happen.
@@ -150,6 +164,14 @@
                                                // Skip this row.
                                                continue;
                                        }
+
+                                       if ( preferredHeight / curRowHeight > 1 
) {
+                                               totalZoom += preferredHeight / 
curRowHeight;
+                                       } else {
+                                               // If we shrink, still consider 
that a zoom of 1
+                                               totalZoom += 1;
+                                       }
+
                                        for ( j = 0; j < curRow.length; j++ ) {
                                                newWidth = preferredHeight * 
curRow[j].aspect;
                                                padding = curRow[j].width - 
curRow[j].imgWidth;

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I0caf8d1800808f14c9f53073f3b901eedec32bb7
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Brian Wolff <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: Matmarex <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to