jenkins-bot has submitted this change and it was merged. Change subject: Order template title results by provided index ......................................................................
Order template title results by provided index This only comes back in results from certain modules, so I'm not entirely sure whether we want to do this in here or mw.widgets.TitleInputWidget. Bug: T111598 Change-Id: If2916706db359d520c41c2dec7ded44e0d3a56a9 --- M modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js 1 file changed, 30 insertions(+), 6 deletions(-) Approvals: Jforrester: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js b/modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js index c8c20ab..ca78338 100644 --- a/modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js +++ b/modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js @@ -51,18 +51,42 @@ if ( this.showTemplateDescriptions ) { return promise - // Also get descriptions .then( function ( response ) { - var xhr, index, params, - pages = ( response.query && response.query.pages ) || {}, + var xhr, pageId, index, params, indexFound, redirIndex, + redirects = ( response.query && response.query.redirects ) || {}, + origPages = ( response.query && response.query.pages ) || {}, + newPages = [], titles = []; - for ( index in pages ) { - titles.push( pages[ index ].title ); + // Build a new array to replace response.query.pages, ensuring everything goes into + // the order defined by the page's index key, instead of whatever random order the + // browser would let you iterate over the old object in. + for ( pageId in origPages ) { + indexFound = false; + if ( 'index' in origPages[ pageId ] ) { + newPages[ origPages[ pageId ].index - 1 ] = origPages[ pageId ]; + indexFound = true; + } else { + // Watch out for cases where the index is specified on the redirect object + // rather than the page object. + for ( redirIndex in redirects ) { + if ( redirects[ redirIndex ].to === origPages[ pageId ].title ) { + newPages[ redirects[ redirIndex ].index - 1 ] = origPages[ pageId ]; + indexFound = true; + break; + } + } + } } - originalResponse = response; + for ( index in newPages ) { + titles.push( newPages[ index ].title ); + } + response.query.pages = newPages; + originalResponse = response; // lie! + + // Also get descriptions if ( titles.length > 0 ) { params = { action: 'templatedata', -- To view, visit https://gerrit.wikimedia.org/r/237410 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: If2916706db359d520c41c2dec7ded44e0d3a56a9 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Alex Monk <kren...@gmail.com> Gerrit-Reviewer: Jforrester <jforres...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits