[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Extract subdomain when pasting full URL into siteselector
jenkins-bot has submitted this change and it was merged. Change subject: Extract subdomain when pasting full URL into siteselector .. Extract subdomain when pasting full URL into siteselector This is a trivial first step towards the idea to allow pasting full Wikipedia URLs into the sitelinks editor. This patch does have a single effect: Before, nothing was found when a user tried to paste a URL. Now, it finds the site (but not the page). Bug: T144310 Change-Id: I62578bdfac821ec1030dde4bfca4fbf25c488da8 --- M .jscsrc M lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js M lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js 3 files changed, 45 insertions(+), 2 deletions(-) Approvals: Jonas Kress (WMDE): Looks good to me, approved jenkins-bot: Verified diff --git a/.jscsrc b/.jscsrc index 179fec4..d61f00d 100644 --- a/.jscsrc +++ b/.jscsrc @@ -1,5 +1,5 @@ { - // https://github.com/jscs-dev/node-jscs/blob/master/presets/wikimedia.json + // https://github.com/wikimedia/jscs-preset-wikimedia/blob/master/presets/wikimedia.json "preset": "wikimedia", // diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js index 6325663..aa096f4 100644 --- a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js +++ b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js @@ -215,6 +215,19 @@ return self._considerSuggestion( site ); } ); + if ( suggestedSites.length === 0 ) { + var subDomain = this._grepSubDomainFromTerm(); + + if ( subDomain ) { + suggestedSites = $.grep( source, function( site ) { + var url = site.getUrlTo( '' ), + index = url.indexOf( '//' ) + 2; + + return url.indexOf( subDomain, index ) === index; + } ); + } + } + return deferred.resolve( suggestedSites, term ).promise(); }, @@ -242,6 +255,18 @@ }, /** +* @return {string|null} +* @private +*/ + _grepSubDomainFromTerm: function() { + // Extract either a subdomain (the word after "//") or simply the first word. + var matches = /\/\/(\w[\w-]+)/.exec( this._term ) + || /(\w[\w-]+)/.exec( this._term ); + + return matches ? matches[1].toLowerCase().replace( /[\W_]+/g, '-' ) : null; + }, + + /** * @see jQuery.ui.suggester._createMenuItemFromSuggestion */ _createMenuItemFromSuggestion: function( suggestion, requestTerm ) { diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js index 828e634..b377af1 100644 --- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js +++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js @@ -45,6 +45,15 @@ languageCode: 'frr', id: 'frrwiki', group: 'foo' + }, + { + apiUrl: 'http://zh-min-nan.wikipedia.org/w/api.php', + name: 'Chinese', + pageUrl: 'http://zh-min-nan.wikipedia.org/wiki/$1', + shortName: 'Chinese', + languageCode: 'zh-min-nan', + id: 'zh_min_nan', + group: 'dummy' } ]; @@ -110,7 +119,16 @@ [ 'deutsch', 'dewiki' ], [ 'no', 'nowiki' ], // Prefer language code. [ 'enwiki', 'enwiki' ], - [ 'nord', 'frrwiki' ] + [ 'nord', 'frrwiki' ], + [ 'https://zh-min-nan.wikipedia.org/wiki/Dummy', 'zh_min_nan' ], + [ 'https://de.wikipedia.org/wiki/', 'dewiki' ], + [ 'https://zh-min-nan.wikipedia.org', 'zh_min_nan' ], + [ '//de.wikipedia.org/wiki/Dummy', 'dewiki' ], + [ '//zh-min-nan.wikipedia.org', 'zh_min_nan' ], + [ '(de)', 'dewiki' ], + [ 'zh-min-nan.wikipedia.org/wiki/Dummy', 'zh_min_nan' ], + [ 'de.wikipedia.org', 'dewiki' ], + [ 'zh-min-nan/de',
[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Extract subdomain when pasting full URL into siteselector
Hoo man has uploaded a new change for review. https://gerrit.wikimedia.org/r/311324 Change subject: Extract subdomain when pasting full URL into siteselector .. Extract subdomain when pasting full URL into siteselector (Alternative to I62578bdfac821ec1030dde4bfca4fbf25c488da8, see below) This is a trivial first step towards the idea to allow pasting full Wikipedia URLs into the sitelinks editor. This patch does have a single effect: Before, nothing was found when a user tried to paste a URL. Now, it finds the site (but not the page). This has been adopted from I62578bdfac821ec1030dde4bfca4fbf25c488da8 by Marius Hoch, so that it matches the pasted URL with the site URL, instead of trying to match the pasted URL with the site id. Bug: T144310 Change-Id: Ifb5b3b2f2cbef186f7349c5c65964ee430fe626d --- M .jscsrc M .jshintrc M lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js M lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js 4 files changed, 29 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/24/311324/1 diff --git a/.jscsrc b/.jscsrc index 179fec4..4a6edcf 100644 --- a/.jscsrc +++ b/.jscsrc @@ -1,5 +1,5 @@ { - // https://github.com/jscs-dev/node-jscs/blob/master/presets/wikimedia.json + // https://github.com/wikimedia/jscs-preset-wikimedia/blob/master/presets/wikimedia.json "preset": "wikimedia", // @@ -10,6 +10,7 @@ "disallowDanglingUnderscores": null, "requireSpacesInsideBrackets": null, "requireVarDeclFirst": null, + "requireCamelCaseOrUpperCaseIdentifiers": { "allExcept": [ "zh_min_nan" ] }, "jsDoc": { // what we don't yet follow is commented out "checkAnnotations": { diff --git a/.jshintrc b/.jshintrc index 720300f..055265d 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,5 +1,5 @@ { - "camelcase": true, + "camelcase": false, // conflicts with JSCS' disallowQuotedKeysInObjects "curly": true, "eqeqeq": true, "immed": true, diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js index 6325663..55ee20a 100644 --- a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js +++ b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js @@ -215,6 +215,14 @@ return self._considerSuggestion( site ); } ); + if ( suggestedSites.length === 0 ) { + var removePrefix = /^(\w*:)?(\/\/)?/; + var siteId = this._term.replace( removePrefix, '' ).replace( /\..*/, '' ); + suggestedSites = $.grep( source, function( site ) { + return site.getApi().replace( removePrefix, '' ).indexOf( siteId ) === 0; + } ); + } + return deferred.resolve( suggestedSites, term ).promise(); }, diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js index 32248fa..c688127 100644 --- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js +++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.siteselector.tests.js @@ -45,6 +45,15 @@ languageCode: 'frr', id: 'frrwiki', group: 'foo' + }, + { + apiUrl: 'http://zh-min-nan.wikipedia.org/w/api.php', + name: 'Chinese', + pageUrl: 'http://zh-min-nan.wikipedia.org/wiki/$1', + shortName: 'Chinese', + languageCode: 'zh-min-nan', + id: 'zh_min_nan', + group: 'dummy' } ]; @@ -96,13 +105,13 @@ } } ) ); - QUnit.test( 'getSelectedSite()', 23, function( assert ) { + QUnit.test( 'getSelectedSite()', 36, function( assert ) { var $siteSelector = newTestSiteSelector(), siteSelector = $siteSelector.data( 'siteselector' ); /** * Key: Expected site id / Value: Input string. -* @type {Object} +* @type {Object[]} */ var testStrings = [ { enwiki: 'en' }, @@ -111,7 +120,13 @@ { dewiki: 'deutsch' }, { nowiki: 'no' }, // Prefer language code. { enwiki: 'enwiki' }, - { frrwiki: 'nord' } + { frrwiki: 'nord' }, +
[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Extract subdomain when pasting full URL into siteselector
Thiemo Mättig (WMDE) has uploaded a new change for review. https://gerrit.wikimedia.org/r/308546 Change subject: Extract subdomain when pasting full URL into siteselector .. Extract subdomain when pasting full URL into siteselector This is a trivial first step towards the idea to allow pasting full Wikipedia URLs into the sitelinks editor. This patch does have a single effect: Before, nothing was found when a user tried to paste a URL. Now, it finds the site (but not the page). Change-Id: I62578bdfac821ec1030dde4bfca4fbf25c488da8 --- M lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/46/308546/1 diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js index a600906..8404875 100644 --- a/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js +++ b/lib/resources/jquery.wikibase/jquery.wikibase.siteselector.js @@ -215,6 +215,16 @@ return self._considerSuggestion( site ); } ); + if ( suggestedSites.length === 0 ) { + // This finds "zh-min-nan" in "https://zh-min-nan.wikipedia.org;. + var matches = /\W(\w[\w-]+)/.exec( this._term.toLowerCase() ); + if ( matches ) { + suggestedSites = $.grep( source, function( site ) { + return site.getId().indexOf( matches[1] ) === 0; + } ); + } + } + return deferred.resolve( suggestedSites, term ).promise(); }, -- To view, visit https://gerrit.wikimedia.org/r/308546 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I62578bdfac821ec1030dde4bfca4fbf25c488da8 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE)___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits