Alex Monk has uploaded a new change for review. https://gerrit.wikimedia.org/r/315455
Change subject: TitleWidget: Take 'known' status into account when deciding page existence ...................................................................... TitleWidget: Take 'known' status into account when deciding page existence Bug: T72123 Change-Id: Id00215946a9a1927967e8af7f321862e89261c51 --- M resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js 1 file changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/55/315455/1 diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js index b25b2d4..936d321 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js @@ -146,7 +146,17 @@ } req = new mw.Api().get( params ); promiseAbortObject.abort = req.abort.bind( req ); // TODO ew - return req; + return req.then( function ( ret ) { + if ( ret.query === undefined ) { + ret = new mw.Api().get( { + action: 'query', + titles: query, + continue: '' + } ); + promiseAbortObject.abort = ret.abort.bind( ret ); + } + return ret; + } ); } } ).promise( promiseAbortObject ); } else { @@ -186,6 +196,7 @@ continue; } pageData[ suggestionPage.title ] = { + known: suggestionPage.known !== undefined, missing: suggestionPage.missing !== undefined, redirect: suggestionPage.redirect !== undefined, disambiguation: OO.getProp( suggestionPage, 'pageprops', 'disambiguation' ) !== undefined, @@ -205,6 +216,7 @@ for ( i = 0, len = redirects.length; i < len; i++ ) { pageData[ redirects[ i ] ] = { missing: false, + known: true, redirect: true, disambiguation: false, description: mw.msg( 'mw-widgets-titleinput-description-redirect', suggestionPage.title ), @@ -222,14 +234,21 @@ // If not found, run value through mw.Title to avoid treating a match as a // mismatch where normalisation would make them matching (bug 48476) - pageExistsExact = titles.indexOf( this.getQueryValue() ) !== -1; + pageExistsExact = ( + Object.prototype.hasOwnProperty.call( pageData, this.getQueryValue() ) && + pageData[ this.getQueryValue() ].missing && + pageData[ this.getQueryValue() ].known + ); pageExists = pageExistsExact || ( - titleObj && titles.indexOf( titleObj.getPrefixedText() ) !== -1 + titleObj && + Object.prototype.hasOwnProperty.call( pageData, titleObj.getPrefixedText() ) && + pageData[ titleObj.getPrefixedText() ].missing && + pageData[ titleObj.getPrefixedText() ].known ); if ( !pageExists ) { pageData[ this.getQueryValue() ] = { - missing: true, redirect: false, disambiguation: false, + missing: true, known: false, redirect: false, disambiguation: false, description: mw.msg( 'mw-widgets-titleinput-description-new-page' ) }; } -- To view, visit https://gerrit.wikimedia.org/r/315455 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id00215946a9a1927967e8af7f321862e89261c51 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Alex Monk <a...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits