Unicornisaurous has uploaded a new change for review.
https://gerrit.wikimedia.org/r/260217
Change subject: Support fragments in mw.util.getUrl()
......................................................................
Support fragments in mw.util.getUrl()
Bug: T103553
Change-Id: I25c5ce2fde468202ce7ba5aa1c8cf0e3576c6057
---
M resources/src/mediawiki/mediawiki.util.js
M tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
2 files changed, 21 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/17/260217/1
diff --git a/resources/src/mediawiki/mediawiki.util.js
b/resources/src/mediawiki/mediawiki.util.js
index 4cec813..94b325d 100644
--- a/resources/src/mediawiki/mediawiki.util.js
+++ b/resources/src/mediawiki/mediawiki.util.js
@@ -100,10 +100,26 @@
util.wikiUrlencode( typeof str === 'string' ?
str : mw.config.get( 'wgPageName' ) )
);
+ // Find any fragment should one exist
+ var fragment = '';
+ if ( typeof str === 'string' ) {
+ var fragmentStart = url.indexOf( '%23' );
+ if ( fragmentStart !== -1 ) {
+ fragment = url.slice( fragmentStart + 3
);
+ url = url.slice( 0, fragmentStart );
+ }
+ }
+
+ // Add query string if necessary
if ( params && !$.isEmptyObject( params ) ) {
url += ( url.indexOf( '?' ) !== -1 ? '&' : '?'
) + $.param( params );
}
+ // Insert the already URL-encoded fragment should it
exist
+ if ( fragment.length > 0 ) {
+ url += '#' + fragment;
+ }
+
return url;
},
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
b/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
index d40c00a..dd7d3e0 100644
--- a/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
+++ b/tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
@@ -111,7 +111,7 @@
} );
} );
- QUnit.test( 'getUrl', 5, function ( assert ) {
+ QUnit.test( 'getUrl', 6, function ( assert ) {
// Not part of startUp module
mw.config.set( 'wgArticlePath', '/wiki/$1' );
mw.config.set( 'wgPageName', 'Foobar' );
@@ -130,6 +130,10 @@
href = mw.util.getUrl( 'Sandbox', { action: 'edit' } );
assert.equal( href, '/wiki/Sandbox?action=edit', 'simple title
with query string' );
+
+ // Test fragments
+ href = mw.util.getUrl( 'Foo:Sandbox#Fragment', { action: 'edit'
} );
+ assert.equal( href, '/wiki/Foo:Sandbox?action=edit#Fragment',
'advanced title with query string and fragment' );
} );
QUnit.test( 'wikiScript', 4, function ( assert ) {
--
To view, visit https://gerrit.wikimedia.org/r/260217
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I25c5ce2fde468202ce7ba5aa1c8cf0e3576c6057
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Unicornisaurous <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits