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

Change subject: Alpha: Hijack Search result links
......................................................................


Alpha: Hijack Search result links

Hijack links in watch star so they lazy load (alpha)

Change-Id: I89c08ab828d53f951b9cd54d40322f2c1772f1d8
---
M includes/Resources.php
M javascripts/common/history-alpha.js
A javascripts/modules/lazyload.js
M templates/overlays/search/results.html
M tests/javascripts/common/test_history-alpha.js
5 files changed, 48 insertions(+), 29 deletions(-)

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



diff --git a/includes/Resources.php b/includes/Resources.php
index 39028b9..bab9a98 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -355,6 +355,7 @@
                        'javascripts/common/history-alpha.js',
                        'javascripts/modules/mf-tables.js',
                        'javascripts/modules/mf-translator.js',
+                       'javascripts/modules/lazyload.js',
                ),
        ),
 
diff --git a/javascripts/common/history-alpha.js 
b/javascripts/common/history-alpha.js
index 6b50434..da4bd8f 100644
--- a/javascripts/common/history-alpha.js
+++ b/javascripts/common/history-alpha.js
@@ -28,9 +28,6 @@
 
        // do not run more than once
        function init() {
-               // FIXME: use fuzzy link hijacking in the main namespace - core 
should be updated to make links more explicit
-               var useFuzzyLinkHijacking = mw.config.get( 'wgNamespaceNumber' 
) === mw.config.get( 'wgNamespaceIds' )[''];
-
                // initial history state does not contain title
                // run before binding to avoid nasty surprises
                History.replaceState( null, mw.config.get( 'wgTitle' ) );
@@ -86,31 +83,17 @@
                        } );
                }
 
-               hijackLinks( $( '#content_0' ), useFuzzyLinkHijacking );
-
-               // Bind events
-               M.on( 'section-rendered', function( $container ) {
-                       hijackLinks( $container, useFuzzyLinkHijacking );
-               } ).on( 'page-loaded', function( page ) {
-                       var title = M.prettyEncodeTitle( page.title );
-
-                       // Change UI to reflect new current page - Fix menu 
item returnto link
-                       // FIXME: give menu items with returnto=[article] 
generic class name
-                       $( '#mw-mf-menu-main' ).find( '.icon-settings, 
.icon-loginout' ).find( 'a' ).each( function() {
-                               var href = $( this ).attr( 'href' );
-                               $( this ).attr( 'href', 
updateQueryStringParameter( href, 'returnto', title ) );
-                       } );
-
-                       hijackLinks( $( '#content_0' ), useFuzzyLinkHijacking );
-               } );
+               return {
+                       hijackLinks: hijackLinks
+               };
        }
 
        if ( History.enabled ) {
-               init();
+               $.extend( M.history, init() );
        }
 
        $.extend( M.history, {
-               _updateQueryStringParameter: updateQueryStringParameter
+               updateQueryStringParameter: updateQueryStringParameter
        } );
 
 } ( mw.mobileFrontend, jQuery ) );
diff --git a/javascripts/modules/lazyload.js b/javascripts/modules/lazyload.js
new file mode 100644
index 0000000..9d88011
--- /dev/null
+++ b/javascripts/modules/lazyload.js
@@ -0,0 +1,35 @@
+( function( M, $ ) {
+
+       var searchOverlay = M.require( 'search' ).overlay,
+               history = M.history,
+               // FIXME: use fuzzy link hijacking in the main namespace - core 
should be updated to make links more explicit
+               useFuzzyLinkHijacking = mw.config.get( 'wgNamespaceNumber' ) 
=== mw.config.get( 'wgNamespaceIds' )[''];
+
+       if ( history.hijackLinks ) {
+               history.hijackLinks( $( '#content_0' ), useFuzzyLinkHijacking );
+
+               M.on( 'section-rendered', function( $container ) {
+                       history.hijackLinks( $container, useFuzzyLinkHijacking 
);
+               } ).on( 'page-loaded', function( page ) {
+                       var title = M.prettyEncodeTitle( page.title );
+
+                       // Change UI to reflect new current page - Fix menu 
item returnto link
+                       // FIXME: give menu items with returnto=[article] 
generic class name
+                       $( '#mw-mf-menu-main' ).find( '.icon-settings, 
.icon-loginout' ).find( 'a' ).each( function() {
+                               var href = $( this ).attr( 'href' );
+                               $( this ).attr( 'href', 
history.updateQueryStringParameter( href, 'returnto', title ) );
+                       } );
+
+                       history.hijackLinks( $( '#content_0' ), 
useFuzzyLinkHijacking );
+               } );
+
+               searchOverlay.on( 'write-results', function() {
+                       var $results = searchOverlay.$( 'ul' );
+                       history.hijackLinks( $results );
+                       $results.find( 'a' ).on( 'click', function() {
+                               searchOverlay.hide();
+                       } );
+               } );
+       }
+
+}( mw.mobileFrontend, jQuery ) );
diff --git a/templates/overlays/search/results.html 
b/templates/overlays/search/results.html
index ddef183..cb426b4 100644
--- a/templates/overlays/search/results.html
+++ b/templates/overlays/search/results.html
@@ -1,6 +1,6 @@
 <li class="no-results">{{noresults}}</li>
 {{#results}}
        <li title="{{title}}">
-               <a href="{{url}}" title="{{title}}">{{{label}}}</a>
+               <a href="{{url}}" data-title="{{title}}">{{{label}}}</a>
        </li>
 {{/results}}
diff --git a/tests/javascripts/common/test_history-alpha.js 
b/tests/javascripts/common/test_history-alpha.js
index 008d8b7..5f46bbc 100644
--- a/tests/javascripts/common/test_history-alpha.js
+++ b/tests/javascripts/common/test_history-alpha.js
@@ -3,32 +3,32 @@
 QUnit.module( 'MobileFrontend: history.js (alpha)' );
 
 QUnit.test( 'updateQueryStringParameter 1', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( '/w/Foo?x=4', 'x', 
'10' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo?x=4', 'x', 
'10' );
        strictEqual( val1, '/w/Foo?x=10' );
 } );
 
 QUnit.test( 'updateQueryStringParameter 2', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( '/w/Foo', 'x', '10' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo', 'x', '10' );
        strictEqual( val1, '/w/Foo?x=10' );
 } );
 
 QUnit.test( 'updateQueryStringParameter 3', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( 
'/w/Foo?y=4&x=4&z=10', 'x', '10' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo?y=4&x=4&z=10', 
'x', '10' );
        strictEqual( val1, '/w/Foo?y=4&x=10&z=10' );
 } );
 
 QUnit.test( 'updateQueryStringParameter 3', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( '/w/Foo?y=4', 'x', 
'10' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo?y=4', 'x', 
'10' );
        strictEqual( val1, '/w/Foo?y=4&x=10' );
 } );
 
 QUnit.test( 'updateQueryStringParameter 4', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( '/w/Foo?x=4', 'x', 
'y=10' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo?x=4', 'x', 
'y=10' );
        strictEqual( val1, '/w/Foo?x=y%3D10' );
 } );
 
 QUnit.test( 'updateQueryStringParameter 5', 1, function() {
-       var val1 = M.history._updateQueryStringParameter( '/w/Foo?x=4&z&y=2&m', 
'm', '1' );
+       var val1 = M.history.updateQueryStringParameter( '/w/Foo?x=4&z&y=2&m', 
'm', '1' );
        strictEqual( val1, '/w/Foo?x=4&z=&y=2&m=1' );
 } );
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I89c08ab828d53f951b9cd54d40322f2c1772f1d8
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>
Gerrit-Reviewer: JGonera <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to