%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/resources/src/ |
Current File : /www/varak.net/wiki.varak.net/resources/src/mediawiki.special.search.commonsInterwikiWidget.js |
( function () { var api = new mw.Api(), pageUrl = new mw.Uri(), imagesText = new mw.Message( mw.messages, 'searchprofile-images' ), moreResultsText = new mw.Message( mw.messages, 'search-interwiki-more-results' ); function itemTemplate( results ) { var resultOutput = '', i, result, imageCaption, imageThumbnailSrc; for ( i = 0; i < results.length; i++ ) { result = results[ i ]; imageCaption = mw.html.element( 'span', { 'class': 'iw-result__mini-gallery__caption' }, result.title ); imageThumbnailSrc = ( result.thumbnail ) ? result.thumbnail.source : ''; resultOutput += '<div class="iw-result__mini-gallery">' + /* escaping response content */ mw.html.element( 'a', { href: '/wiki/' + result.title, 'class': 'iw-result__mini-gallery__image', style: 'background-image: url(' + imageThumbnailSrc + ');' }, new mw.html.Raw( imageCaption ) ) + '</div>'; } return resultOutput; } function itemWrapperTemplate( pageQuery, itemTemplateOutput ) { return '<li class="iw-resultset iw-resultset--image" data-iw-resultset-pos="0">' + '<div class="iw-result__header">' + '<strong>' + imagesText.escaped() + '</strong>' + '</div>' + '<div class="iw-result__content">' + /* template output has been sanitized by mw.html.element */ itemTemplateOutput + '</div>' + '<div class="iw-result__footer">' + '<a href="/w/index.php?title=Special:Search&search=' + encodeURIComponent( pageQuery ) + '&fulltext=1&profile=images">' + moreResultsText.escaped() + '</a>' + '</div>' + '</li>'; } api.get( { action: 'query', generator: 'search', gsrsearch: pageUrl.query.search, gsrnamespace: mw.config.get( 'wgNamespaceIds' ).file, gsrlimit: 3, prop: 'pageimages', pilimit: 3, piprop: 'thumbnail', pithumbsize: 300, formatversion: 2 } ).done( function ( resp ) { var results = ( resp.query && resp.query.pages ) ? resp.query.pages : false, multimediaWidgetTemplate; if ( !results ) { return; } results.sort( function ( a, b ) { return a.index - b.index; } ); multimediaWidgetTemplate = itemWrapperTemplate( pageUrl.query.search, itemTemplate( results ) ); /* we really only need to wait for document ready for DOM manipulation */ $( function () { $( '.iw-results' ).append( multimediaWidgetTemplate ); } ); } ); }() );