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