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

Reply via email to