]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - resources/src/mediawiki/mediawiki.userSuggest.js
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / resources / src / mediawiki / mediawiki.userSuggest.js
diff --git a/resources/src/mediawiki/mediawiki.userSuggest.js b/resources/src/mediawiki/mediawiki.userSuggest.js
new file mode 100644 (file)
index 0000000..99e9dbe
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+ * Add autocomplete suggestions for names of registered users.
+ */
+( function ( mw, $ ) {
+       var api, config;
+
+       config = {
+               fetch: function ( userInput, response, maxRows ) {
+                       var node = this[ 0 ];
+
+                       api = api || new mw.Api();
+
+                       $.data( node, 'request', api.get( {
+                               formatversion: 2,
+                               action: 'query',
+                               list: 'allusers',
+                               // Prefix of list=allusers is case sensitive. Normalise first
+                               // character to uppercase so that "fo" may yield "Foo".
+                               auprefix: userInput[ 0 ].toUpperCase() + userInput.slice( 1 ),
+                               aulimit: maxRows
+                       } ).done( function ( data ) {
+                               var users = $.map( data.query.allusers, function ( userObj ) {
+                                       return userObj.name;
+                               } );
+                               response( 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 ) );