Merge "resourceloader: Simplify StringSet fallback"
[lhc/web/wiklou.git] / resources / src / mediawiki.userSuggest.js
1 /*!
2 * Add autocomplete suggestions for names of registered users.
3 */
4 ( function () {
5 var api, config;
6
7 config = {
8 fetch: function ( userInput, response, maxRows ) {
9 var node = this[ 0 ];
10
11 api = api || new mw.Api();
12
13 $.data( node, 'request', api.get( {
14 formatversion: 2,
15 action: 'query',
16 list: 'allusers',
17 // Prefix of list=allusers is case sensitive. Normalise first
18 // character to uppercase so that "fo" may yield "Foo".
19 auprefix: userInput[ 0 ].toUpperCase() + userInput.slice( 1 ),
20 aulimit: maxRows
21 } ).done( function ( data ) {
22 var users = data.query.allusers.map( function ( userObj ) {
23 return userObj.name;
24 } );
25 response( users );
26 } ) );
27 },
28 cancel: function () {
29 var node = this[ 0 ],
30 request = $.data( node, 'request' );
31
32 if ( request ) {
33 request.abort();
34 $.removeData( node, 'request' );
35 }
36 }
37 };
38
39 $( function () {
40 $( '.mw-autocomplete-user' ).suggestions( config );
41 } );
42 }() );