jenkins-bot has submitted this change and it was merged. Change subject: Batchload all data required to fix Special:EditWatchlist titles ......................................................................
Batchload all data required to fix Special:EditWatchlist titles This will batchload all the data needed for fetch the topic titles' text when changing how Flow topics are linked to in Special:EditWatchlist. All data being requested in that particular hook will already be in memory because we've already fetched it here. This depends on a core change: I30b3bbb2c5ef131f069a5aabfad8b88bc2cf09df While this won't break when the core change isn't yet merged, we should probably just hold off until it is. Change-Id: Iec21012d15db53e23013aa6c36fed0e24e0ce6fe --- M Flow.php M Hooks.php 2 files changed, 35 insertions(+), 0 deletions(-) Approvals: Jdlrobson: Looks good to me, but someone else must approve EBernhardson: Looks good to me, approved jenkins-bot: Verified diff --git a/Flow.php b/Flow.php index 26bab26..5210258 100755 --- a/Flow.php +++ b/Flow.php @@ -343,6 +343,7 @@ $wgHooks['AbortMove'][] = 'FlowHooks::onAbortMove'; $wgHooks['TitleSquidURLs'][] = 'FlowHooks::onTitleSquidURLs'; $wgHooks['WatchlistEditorBuildRemoveLine'][] = 'FlowHooks::onWatchlistEditorBuildRemoveLine'; +$wgHooks['WatchlistEditorBeforeFormRender'][] = 'FlowHooks::onWatchlistEditorBeforeFormRender'; // Extension initialization $wgExtensionFunctions[] = 'FlowHooks::initFlowExtension'; diff --git a/Hooks.php b/Hooks.php index 2212f47..78d9a18 100644 --- a/Hooks.php +++ b/Hooks.php @@ -927,4 +927,38 @@ return true; } + + /** + * @param array $watchlistInfo Watchlisted pages + * @return bool + */ + public static function onWatchlistEditorBeforeFormRender( &$watchlistInfo ) { + if ( !isset( $watchlistInfo[NS_TOPIC] ) ) { + // No topics watchlisted + return true; + } + + $ids = array_keys( $watchlistInfo[NS_TOPIC] ); + + // build array of queries to be executed all at once + $queries = array(); + foreach( $ids as $id ) { + $uuid = UUID::create( strtolower( $id ) ); + $queries[] = array( 'rev_type_id' => $uuid ); + } + + /* + * Now, finally find all requested topics - this will be stored in + * local cache so subsequent calls (in onWatchlistEditorBuildRemoveLine) + * will just find these in memory, instead of doing a bunch of network + * requests. + */ + Container::get( 'storage' )->findMulti( + 'PostRevision', + $queries, + array( 'sort' => 'rev_id', 'order' => 'DESC', 'limit' => 1 ) + ); + + return true; + } } -- To view, visit https://gerrit.wikimedia.org/r/156122 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iec21012d15db53e23013aa6c36fed0e24e0ce6fe Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/Flow Gerrit-Branch: master Gerrit-Owner: Matthias Mullie <mmul...@wikimedia.org> Gerrit-Reviewer: Bsitu <bs...@wikimedia.org> Gerrit-Reviewer: EBernhardson <ebernhard...@wikimedia.org> Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Matthias Mullie <mmul...@wikimedia.org> Gerrit-Reviewer: SG <shah...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits