Jdlrobson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/167971

Change subject: Hygiene: Refactor pageImage.js to be a method on PageList
......................................................................

Hygiene: Refactor pageImage.js to be a method on PageList

Change-Id: I750468cd1c06cd14c2f2fb90cee84fa01a341b93
---
M includes/Resources.php
M javascripts/modules/PageList.js
M javascripts/modules/search/SearchOverlay.js
D javascripts/modules/search/pageImages.js
4 files changed, 41 insertions(+), 45 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/71/167971/1

diff --git a/includes/Resources.php b/includes/Resources.php
index 516cad5..a74b1ee 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -448,7 +448,6 @@
                        'javascripts/modules/search/SearchApi.js',
                        'javascripts/modules/search/SearchOverlay.js',
                        'javascripts/modules/search/search.js',
-                       'javascripts/modules/search/pageImages.js',
                ),
                'templates' => array(
                        'modules/search/SearchOverlay.hogan',
diff --git a/javascripts/modules/PageList.js b/javascripts/modules/PageList.js
index 13fca6e..d863a0a 100644
--- a/javascripts/modules/PageList.js
+++ b/javascripts/modules/PageList.js
@@ -12,6 +12,44 @@
                        pages: [],
                        enhance: false
                },
+               /**
+                * Render page images for the existing page list. Assumes no 
page images have been loaded.
+                * Only load when wgImagesDisabled has not been activated via 
Special:MobileOptions.
+                */
+               renderPageImages: function() {
+                       var self = this,
+                               pages = {},
+                               $ul = this.$( '.page-list' ),
+                               delay = M.isWideScreen() ? 0 : 1000;
+
+                       if ( !mw.config.get( 'wgImagesDisabled' ) ) {
+                               window.setTimeout( function() {
+                                       $.each( self.options.pages, function( 
i, page ) {
+                                               var thumb;
+                                               if ( page.thumbnail ) {
+                                                       thumb = page.thumbnail;
+                                                       
page.listThumbStyleAttribute = 'background-image: url(' + thumb.source + ')';
+                                                       page.pageimageClass = 
thumb.width > thumb.height ? 'list-thumb-y' : 'list-thumb-x';
+                                               } else {
+                                                       page.pageimageClass = 
'list-thumb-none list-thumb-x';
+                                               }
+                                               pages[page.title] = page;
+                                       } );
+
+                                       // Render page images
+                                       $ul.find( 'li' ).each( function() {
+                                               var $li = $( this ),
+                                                       title = $li.attr( 
'title' ),
+                                                       page = pages[title];
+
+                                               if ( page ) {
+                                                       $li.find( '.list-thumb' 
).addClass( page.pageimageClass )
+                                                               .attr( 'style', 
page.listThumbStyleAttribute );
+                                               }
+                                       } );
+                               }, delay );
+                       }
+               },
                initialize: function( options ) {
                        // FIXME: Find more elegant standard way to allow 
enhancement of views already in DOM
                        if ( options.enhance ) {
diff --git a/javascripts/modules/search/SearchOverlay.js 
b/javascripts/modules/search/SearchOverlay.js
index cca085c..c370258 100644
--- a/javascripts/modules/search/SearchOverlay.js
+++ b/javascripts/modules/search/SearchOverlay.js
@@ -111,6 +111,7 @@
                performSearch: function() {
                        var
                                self = this,
+                               pageList,
                                query = this.$input.val(),
                                $results = this.$( '.results' );
 
@@ -137,7 +138,8 @@
                                                                        filter( 
data.results.length ? '.with-results' : '.without-results' ).
                                                                        show();
                                                                self.$( 
'.spinner' ).hide();
-                                                               new PageList( { 
pages: data.results, el: $results } );
+                                                               pageList = new 
PageList( { pages: data.results, el: $results } );
+                                                               
pageList.renderPageImages();
                                                                M.emit( 
'search-results', self, data.results );
                                                        }
                                                } );
diff --git a/javascripts/modules/search/pageImages.js 
b/javascripts/modules/search/pageImages.js
deleted file mode 100644
index d0878e5..0000000
--- a/javascripts/modules/search/pageImages.js
+++ /dev/null
@@ -1,43 +0,0 @@
-( function( M, $ ) {
-
-       var delay = M.isWideScreen() ? 0 : 1000;
-
-       function renderPageImages( overlay, results ) {
-               var pages = {},
-                       $ul = overlay.$( 'ul' );
-
-               $.each( results, function( i, page ) {
-                       var thumb;
-                       if ( page.thumbnail ) {
-                               thumb = page.thumbnail;
-                               page.listThumbStyleAttribute = 
'background-image: url(' + thumb.source + ')';
-                               page.pageimageClass = thumb.width > 
thumb.height ? 'list-thumb-y' : 'list-thumb-x';
-                       } else {
-                               page.pageimageClass = 'list-thumb-none 
list-thumb-x';
-                       }
-                       pages[page.title] = page;
-               } );
-
-               // Render page images
-               $ul.find( 'li' ).each( function() {
-                       var $li = $( this ),
-                               title = $li.attr( 'title' ),
-                               page = pages[title];
-
-                       if ( page ) {
-                               $li.find( '.list-thumb' ).addClass( 
page.pageimageClass )
-                                       .attr( 'style', 
page.listThumbStyleAttribute );
-                       }
-               } );
-       }
-
-       // Add event to retrieve page images when images not disabled
-       if ( !mw.config.get( 'wgImagesDisabled' ) ) {
-               M.on( 'search-results', function( overlay, results ) {
-                       window.setTimeout( function() {
-                               renderPageImages( overlay, results );
-                       }, delay );
-               } );
-       }
-
-}( mw.mobileFrontend, jQuery ) );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I750468cd1c06cd14c2f2fb90cee84fa01a341b93
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

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

Reply via email to