/** * API for search * @extends Api * @class SearchApi */ ( function ( M, $ ) { var WikibaseSearchApi, Page = M.require( 'Page' ), SearchApi = M.require( 'modules/search/SearchApi' ); /** * @class WikibaseSearchApi * @extends SearchApi */ WikibaseSearchApi = SearchApi.extend( { /** * Get the data used to do the search query api call. * @method * @param {String} query to search for * @return {Object} */ getApiData: function ( query ) { return { action: 'wbsearchentities', language: mw.config.get( 'wgUserLanguage' ), //FIXME search: query, format: 'json', type: 'item' //FIXME }; }, /** * Process the data returned by the api call. * @param {String} query to search for * @param {Object} data from api * @return {Array} * @private */ _processData: function( query, data ) { var self = this, results = []; if ( data.search ) { $.each( data.search, function ( i, entity ) { // data used for creating {Page} objects results.push( { id: entity.pageid, //FIXME title: entity.title, //FIXME displayTitle: self._highlightSearchTerm( entity.label, query ), url: entity.url, thumbnail: entity.thumbnail //FIXME } ); } ); } return results; } } ); M.define( 'modules/search/WikibaseSearchApi', WikibaseSearchApi ); }( mw.mobileFrontend, jQuery ) );