From: Alex Monk Date: Sat, 1 Feb 2014 20:49:12 +0000 (+0000) Subject: Implement autocompletion for Performer field on Special:Log X-Git-Tag: 1.31.0-rc.0~13753 X-Git-Url: http://git.heureux-cyclage.org/?a=commitdiff_plain;ds=sidebyside;h=91ba0535b26cd6d4b49832ea9affc940499babc3;p=lhc%2Fweb%2Fwiklou.git Implement autocompletion for Performer field on Special:Log Bug: 48241 Change-Id: I5e6af5aba56de613f10f862aaf064aaa32b5b176 --- diff --git a/includes/logging/LogEventsList.php b/includes/logging/LogEventsList.php index e1f58a4ac1..70f1f1adb9 100644 --- a/includes/logging/LogEventsList.php +++ b/includes/logging/LogEventsList.php @@ -223,7 +223,8 @@ class LogEventsList extends ContextSource { 'user', 'mw-log-user', 15, - $user + $user, + array( 'class' => 'mw-autocomplete-user' ) ); return '' . $label . ''; diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index dc33801d5b..d3aa6c48a7 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -47,6 +47,7 @@ class SpecialLog extends SpecialPage { public function execute( $par ) { $this->setHeaders(); $this->outputHeader(); + $this->getOutput()->addModules( 'mediawiki.userSuggest' ); $opts = new FormOptions; $opts->add( 'type', '' ); diff --git a/resources/Resources.php b/resources/Resources.php index a0ce040bb1..07db06f048 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -962,6 +962,13 @@ return array( ), 'targets' => array( 'desktop', 'mobile' ), ), + 'mediawiki.userSuggest' => array( + 'scripts' => 'resources/src/mediawiki/mediawiki.userSuggest.js', + 'dependencies' => array( + 'jquery.suggestions', + 'mediawiki.api' + ) + ), 'mediawiki.util' => array( 'scripts' => 'resources/src/mediawiki/mediawiki.util.js', 'dependencies' => array( diff --git a/resources/src/mediawiki/mediawiki.userSuggest.js b/resources/src/mediawiki/mediawiki.userSuggest.js new file mode 100644 index 0000000000..aed093caa8 --- /dev/null +++ b/resources/src/mediawiki/mediawiki.userSuggest.js @@ -0,0 +1,42 @@ +/*! + * Add autocomplete suggestions for names of registered users. + */ +( function ( mw, $ ) { + var api, config; + + config = { + fetch: function ( userInput ) { + var $textbox = this, + node = this[0]; + + api = api || new mw.Api(); + + $.data( node, 'request', api.get( { + action: 'query', + list: 'allusers', + // Prefix of list=allusers is case sensitive. Normalise first + // character to uppercase so that "fo" may yield "Foo". + auprefix: userInput.charAt( 0 ).toUpperCase() + userInput.slice( 1 ) + } ).done( function ( data ) { + var users = $.map( data.query.allusers, function ( userObj ) { + return userObj.name; + } ); + // Set the results as the autocomplete options + $textbox.suggestions( 'suggestions', users ); + } ) ); + }, + cancel: function () { + var node = this[0], + request = $.data( node, 'request' ); + + if ( request ) { + request.abort(); + $.removeData( node, 'request' ); + } + } + }; + + $( function () { + $( '.mw-autocomplete-user' ).suggestions( config ); + } ); +}( mediaWiki, jQuery ) );