X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.widgets%2Fmw.widgets.TitleInputWidget.js;h=d5a7abc68f0a594785a26dbefd1eafa9287d304b;hp=cf4d7886ed1bc1889eec195120265b6d82f110a6;hb=f8659ae6ea90d7bc8ce28bfc1caa56153878836f;hpb=b9af7e9e8c56b93744cbbf88ae783a9f8652cac7 diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js index cf4d7886ed..d5a7abc68f 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js @@ -29,7 +29,10 @@ var widget = this; // Config initialization - config = $.extend( { maxLength: 255 }, config ); + config = $.extend( { + maxLength: 255, + limit: 10 + }, config ); // Parent constructor mw.widgets.TitleInputWidget.parent.call( this, $.extend( {}, config, { autocomplete: false } ) ); @@ -38,7 +41,7 @@ OO.ui.mixin.LookupElement.call( this, config ); // Properties - this.limit = config.limit || 10; + this.limit = config.limit; this.maxLength = config.maxLength; this.namespace = config.namespace !== undefined ? config.namespace : null; this.relative = config.relative !== undefined ? config.relative : true; @@ -79,6 +82,26 @@ /* Methods */ + /** + * Get the namespace to prepend to titles in suggestions, if any. + * + * @return {number|null} Namespace number + */ + mw.widgets.TitleInputWidget.prototype.getNamespace = function () { + return this.namespace; + }; + + /** + * Set the namespace to prepend to titles in suggestions, if any. + * + * @param {number|null} namespace Namespace number + */ + mw.widgets.TitleInputWidget.prototype.setNamespace = function ( namespace ) { + this.namespace = namespace; + this.lookupCache = {}; + this.closeLookupMenu(); + }; + /** * @inheritdoc */ @@ -125,9 +148,9 @@ widget.interwikiPrefixes.indexOf( interwiki ) !== -1 ) { return $.Deferred().resolve( { query: { - pages: [{ + pages: [ { title: widget.value - }] + } ] } } ).promise( promiseAbortObject ); } else { params = { @@ -190,15 +213,15 @@ if ( data.redirects ) { for ( i = 0, len = data.redirects.length; i < len; i++ ) { - redirect = data.redirects[i]; - redirectsTo[redirect.to] = redirectsTo[redirect.to] || []; - redirectsTo[redirect.to].push( redirect.from ); + redirect = data.redirects[ i ]; + redirectsTo[ redirect.to ] = redirectsTo[ redirect.to ] || []; + redirectsTo[ redirect.to ].push( redirect.from ); } } for ( index in data.pages ) { - suggestionPage = data.pages[index]; - pageData[suggestionPage.title] = { + suggestionPage = data.pages[ index ]; + pageData[ suggestionPage.title ] = { missing: suggestionPage.missing !== undefined, redirect: suggestionPage.redirect !== undefined, disambiguation: OO.getProp( suggestionPage, 'pageprops', 'disambiguation' ) !== undefined, @@ -212,15 +235,15 @@ titles.push( suggestionPage.title ); } - redirects = redirectsTo[suggestionPage.title] || []; + redirects = redirectsTo[ suggestionPage.title ] || []; for ( i = 0, len = redirects.length; i < len; i++ ) { - pageData[redirects[i]] = { + pageData[ redirects[ i ] ] = { missing: false, redirect: true, disambiguation: false, description: mw.msg( 'mw-widgets-titleinput-description-redirect', suggestionPage.title ) }; - titles.push( redirects[i] ); + titles.push( redirects[ i ] ); } } @@ -233,7 +256,7 @@ ); if ( !pageExists ) { - pageData[this.value] = { + pageData[ this.value ] = { missing: true, redirect: false, disambiguation: false, description: mw.msg( 'mw-widgets-titleinput-description-new-page' ) }; @@ -252,8 +275,8 @@ titles.push( this.value ); } for ( i = 0, len = titles.length; i < len; i++ ) { - page = pageData[titles[i]] || {}; - items.push( new mw.widgets.TitleOptionWidget( this.getOptionWidgetData( titles[i], page ) ) ); + page = pageData[ titles[ i ] ] || {}; + items.push( new mw.widgets.TitleOptionWidget( this.getOptionWidgetData( titles[ i ], page ) ) ); } return items;