Daniel Kinzler has submitted this change and it was merged. Change subject: (Bug 43066) Replace search box with item selector ......................................................................
(Bug 43066) Replace search box with item selector - patch set 5: Improved removing native suggestion context, added some doc - patch set 6: Further improvement of suggestion context removal - patch set 7: rebase - patch set 8: Set correct file group Change-Id: Ic70e323c118ed066c7846de57651076865106b2d --- M repo/Wikibase.hooks.php M repo/Wikibase.php M repo/resources/Resources.php A repo/resources/wikibase.ui.entitysearch.js 4 files changed, 72 insertions(+), 0 deletions(-) Approvals: Daniel Kinzler: Verified; Looks good to me, approved diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php index 6ad7768..8b1c5e6 100644 --- a/repo/Wikibase.hooks.php +++ b/repo/Wikibase.hooks.php @@ -32,8 +32,20 @@ * @author Nikola Smolenski * @author Daniel Werner * @author Michał Łazowik + * @author Jens Ohlig */ final class RepoHooks { + /** + * Handler for the BeforePageDisplay hook, simply injects wikibase.ui.entitysearch module + * + * @since 0.4 + * + * @return boolean + */ + public static function onBeforePageDisplay( \OutputPage &$out, \Skin &$skin ) { + $out->addModules( 'wikibase.ui.entitysearch' ); + return true; + } /** * Handler for the SetupAfterCache hook, completing setup of diff --git a/repo/Wikibase.php b/repo/Wikibase.php index bd04822..d02b327 100644 --- a/repo/Wikibase.php +++ b/repo/Wikibase.php @@ -247,6 +247,7 @@ // Hooks +$wgHooks['BeforePageDisplay'][] = 'Wikibase\RepoHooks::onBeforePageDisplay'; $wgHooks['LoadExtensionSchemaUpdates'][] = 'Wikibase\RepoHooks::onSchemaUpdate'; $wgHooks['UnitTestsList'][] = 'Wikibase\RepoHooks::registerUnitTests'; $wgHooks['NamespaceIsMovable'][] = 'Wikibase\RepoHooks::onNamespaceIsMovable'; diff --git a/repo/resources/Resources.php b/repo/resources/Resources.php index b230b1f..147ed5f 100644 --- a/repo/resources/Resources.php +++ b/repo/resources/Resources.php @@ -56,6 +56,15 @@ ) ), + 'wikibase.ui.entitysearch' => $moduleTemplate + array( + 'scripts' => array( + 'wikibase.ui.entitysearch.js', + ), + 'dependencies' => array( + 'jquery.ui.entityselector', + ), + ), + /* Wikibase special pages */ 'wikibase.special' => $moduleTemplate + array( diff --git a/repo/resources/wikibase.ui.entitysearch.js b/repo/resources/wikibase.ui.entitysearch.js new file mode 100644 index 0000000..702f662 --- /dev/null +++ b/repo/resources/wikibase.ui.entitysearch.js @@ -0,0 +1,50 @@ +/** + * Replacing the native MediaWiki search suggestions with Wikibase's entity selector widget. + * + * @file + * @ingroup WikibaseRepo + * + * @license GNU GPL v2+ + * @author Jens Ohlig + * @author H. Snater < mediaw...@snater.com > + */ +( function( $, mw ) { + 'use strict'; + + $( document ).ready( function() { + + /** + * Removes the native search box suggestion list. + * + * @param {Object} input Search box node + */ + function removeSuggestionContext( input ) { + // Native fetch() updates/re-sets the data attribute with the suggestion context. + $.data( input, 'suggestionsContext' ).config.fetch = function() {}; + $.removeData( input, 'suggestionsContext' ); + } + + $( '#searchInput' ) + .one( 'focus', function( event ) { + if ( $.data( this, 'suggestionsContext' ) ) { + removeSuggestionContext( this ); + } else { + // Suggestion context might not be initialized when focusing the search box while + // the page is still rendered. + var $input = $( this ); + $input.on( 'keypress.entitysearch', function( event ) { + if ( $.data( this, 'suggestionsContext' ) ) { + removeSuggestionContext( this ); + $input.off( '.entitysearch' ); + } + } ); + } + } ) + .entityselector( { + url: mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/api.php', + language: mw.config.get( 'wgUserLanguage' ) + } ); + + } ); + +}( jQuery, mediaWiki ) ); -- To view, visit https://gerrit.wikimedia.org/r/49263 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic70e323c118ed066c7846de57651076865106b2d Gerrit-PatchSet: 8 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Jens Ohlig <jens.oh...@wikimedia.de> Gerrit-Reviewer: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Daniel Werner <daniel.wer...@wikimedia.de> Gerrit-Reviewer: Denny Vrandecic <denny.vrande...@wikimedia.de> Gerrit-Reviewer: Henning Snater <henning.sna...@wikimedia.de> Gerrit-Reviewer: Jens Ohlig <jens.oh...@wikimedia.de> Gerrit-Reviewer: John Erling Blad <john.b...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits