),
'jquery.highlightText' => array(
'scripts' => 'resources/src/jquery/jquery.highlightText.js',
- 'dependencies' => 'mediawiki.RegExp',
+ 'dependencies' => array(
+ 'mediawiki.RegExp',
+ 'dom-level2-shim',
+ ),
'targets' => array( 'desktop', 'mobile' ),
),
'jquery.hoverIntent' => array(
'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js',
),
+ 'jquery.i18n' => array(
+ 'scripts' => array(
+ 'resources/lib/jquery.i18n/src/jquery.i18n.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.messagestore.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.parser.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.emitter.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.emitter.bidi.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.language.js',
+ 'resources/lib/jquery.i18n/src/jquery.i18n.fallbacks.js',
+ ),
+ 'dependencies' => 'mediawiki.libs.pluralruleparser',
+ 'languageScripts' => array(
+ 'bs' => 'resources/lib/jquery.i18n/src/languages/bs.js',
+ 'dsb' => 'resources/lib/jquery.i18n/src/languages/dsb.js',
+ 'fi' => 'resources/lib/jquery.i18n/src/languages/fi.js',
+ 'ga' => 'resources/lib/jquery.i18n/src/languages/ga.js',
+ 'he' => 'resources/lib/jquery.i18n/src/languages/he.js',
+ 'hsb' => 'resources/lib/jquery.i18n/src/languages/hsb.js',
+ 'hu' => 'resources/lib/jquery.i18n/src/languages/hu.js',
+ 'hy' => 'resources/lib/jquery.i18n/src/languages/hy.js',
+ 'la' => 'resources/lib/jquery.i18n/src/languages/la.js',
+ 'ml' => 'resources/lib/jquery.i18n/src/languages/ml.js',
+ 'os' => 'resources/lib/jquery.i18n/src/languages/os.js',
+ 'ru' => 'resources/lib/jquery.i18n/src/languages/ru.js',
+ 'sl' => 'resources/lib/jquery.i18n/src/languages/sl.js',
+ 'uk' => 'resources/lib/jquery.i18n/src/languages/uk.js',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
'jquery.localize' => array(
'scripts' => 'resources/src/jquery/jquery.localize.js',
),
'styles' => 'resources/src/jquery/jquery.tablesorter.css',
'messages' => array( 'sort-descending', 'sort-ascending' ),
'dependencies' => array(
+ 'dom-level2-shim',
'mediawiki.RegExp',
'mediawiki.language.months',
),
'mediawiki.api.parse' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.parse.js',
'dependencies' => 'mediawiki.api',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.api.upload' => array(
+ 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.upload.js',
+ 'dependencies' => array(
+ 'dom-level2-shim',
+ 'mediawiki.api',
+ 'mediawiki.api.edit',
+ 'json',
+ ),
),
'mediawiki.api.watch' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.watch.js',
),
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.Upload' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.Upload.js',
+ 'dependencies' => array(
+ 'dom-level2-shim',
+ 'mediawiki.api.upload',
+ ),
+ ),
'mediawiki.toc' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
'dependencies' => 'mediawiki.cookie',
'position' => 'top',
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css',
- 'dependencies' => 'mediawiki.widgets',
'messages' => array(
'powersearch-togglelabel',
'powersearch-toggleall',
'mediawiki.widgets' => array(
'scripts' => array(
'resources/src/mediawiki.widgets/mw.widgets.js',
+ 'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.js',
'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
- 'resources/src/mediawiki.widgets/mw.widgets.infuse.js',
+ 'resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js',
),
'skinStyles' => array(
- 'default' => 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css',
+ 'default' => array(
+ 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css',
+ ),
),
'dependencies' => array(
+ 'mediawiki.widgets.styles',
'jquery.autoEllipsis',
'mediawiki.Title',
'mediawiki.api',
),
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.widgets.styles' => array(
+ 'skinStyles' => array(
+ 'default' => array(
+ 'resources/src/mediawiki.widgets/mw.widgets.NamespaceInputWidget.base.css',
+ ),
+ ),
+ 'position' => 'top',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
/* es5-shim */
'es5-shim' => array(
*/
( function ( mw, $ ) {
$( function () {
- var api, map, resultRenderCache, searchboxesSelectors,
+ var api, map, searchboxesSelectors,
// Region where the suggestions box will appear directly below
// (using the same width). Can be a container element or the input
// itself, depending on what suits best in the environment.
}
// Compute form data for search suggestions functionality.
- function computeResultRenderCache( context ) {
+ function getFormData( context ) {
var $form, baseHref, linkParams;
- // Compute common parameters for links' hrefs
- $form = context.config.$region.closest( 'form' );
+ if ( !context.formData ) {
+ // Compute common parameters for links' hrefs
+ $form = context.config.$region.closest( 'form' );
- baseHref = $form.attr( 'action' );
- baseHref += baseHref.indexOf( '?' ) > -1 ? '&' : '?';
+ baseHref = $form.attr( 'action' );
+ baseHref += baseHref.indexOf( '?' ) > -1 ? '&' : '?';
- linkParams = $form.serializeObject();
+ linkParams = $form.serializeObject();
- return {
- textParam: context.data.$textbox.attr( 'name' ),
- linkParams: linkParams,
- baseHref: baseHref
- };
+ context.formData = {
+ textParam: context.data.$textbox.attr( 'name' ),
+ linkParams: linkParams,
+ baseHref: baseHref
+ };
+ }
+
+ return context.formData;
}
/**
// The function used to render the suggestions.
function renderFunction( text, context ) {
- if ( !resultRenderCache ) {
- resultRenderCache = computeResultRenderCache( context );
- }
+ var formData = getFormData( context );
// linkParams object is modified and reused
- resultRenderCache.linkParams[ resultRenderCache.textParam ] = text;
+ formData.linkParams[ formData.textParam ] = text;
// this is the container <div>, jQueryfied
this.text( text )
.wrap(
$( '<a>' )
- .attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) )
+ .attr( 'href', formData.baseHref + $.param( formData.linkParams ) )
.attr( 'title', text )
.addClass( 'mw-searchSuggest-link' )
);
}
function specialRenderFunction( query, context ) {
- var $el = this;
-
- if ( !resultRenderCache ) {
- resultRenderCache = computeResultRenderCache( context );
- }
+ var $el = this,
+ formData = getFormData( context );
// linkParams object is modified and reused
- resultRenderCache.linkParams[ resultRenderCache.textParam ] = query;
+ formData.linkParams[ formData.textParam ] = query;
if ( $el.children().length === 0 ) {
$el
}
if ( $el.parent().hasClass( 'mw-searchSuggest-link' ) ) {
- $el.parent().attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) + '&fulltext=1' );
+ $el.parent().attr( 'href', formData.baseHref + $.param( formData.linkParams ) + '&fulltext=1' );
} else {
$el.wrap(
$( '<a>' )
- .attr( 'href', resultRenderCache.baseHref + $.param( resultRenderCache.linkParams ) + '&fulltext=1' )
+ .attr( 'href', formData.baseHref + $.param( formData.linkParams ) + '&fulltext=1' )
.addClass( 'mw-searchSuggest-link' )
);
}
searchboxesSelectors = [
// Primary searchbox on every page in standard skins
'#searchInput',
+ // Special:Search
+ '#powerSearchText',
+ '#searchText',
// Generic selector for skins with multiple searchboxes (used by CologneBlue)
// and for MediaWiki itself (special pages with page title inputs)
'.mw-searchInput'