Add triggeringRevisionId to LinksUpdate JobSpec
authoraddshore <addshorewiki@gmail.com>
Thu, 5 Nov 2015 12:07:01 +0000 (12:07 +0000)
committeraddshore <addshorewiki@gmail.com>
Thu, 5 Nov 2015 12:07:01 +0000 (12:07 +0000)
Bug: T117860
Change-Id: I8c730a434b8bdda7664fd1e3bb3fbc8840804950

includes/changes/RecentChange.php
includes/deferred/LinksUpdate.php
includes/jobqueue/jobs/RefreshLinksJob.php

index 9025736..7c6fbb9 100644 (file)
@@ -800,7 +800,6 @@ class RecentChange {
                $ip = '',
                $deleted = 0
        ) {
-
                $rc = new RecentChange;
                $rc->mTitle = $categoryTitle;
                $rc->mPerformer = $user;
index 9a24b96..dbfdab0 100644 (file)
@@ -1011,6 +1011,13 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
                } else {
                        $userInfo = false;
                }
+
+               if ( $this->mRevision ) {
+                       $triggeringRevisionId = $this->mRevision->getId();
+               } else {
+                       $triggeringRevisionId = false;
+               }
+
                return array(
                        'wiki' => $this->mDb->getWikiID(),
                        'job'  => new JobSpecification(
@@ -1020,6 +1027,7 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
                                        'rootJobTimestamp' => $this->mParserOutput->getCacheTime(),
                                        'useRecursiveLinksUpdate' => $this->mRecursive,
                                        'triggeringUser' => $userInfo,
+                                       'triggeringRevisionId' => $triggeringRevisionId,
                                ),
                                array( 'removeDuplicates' => true ),
                                $this->getTitle()
index 26f4520..25c3ba4 100644 (file)
@@ -229,6 +229,16 @@ class RefreshLinksJob extends Job {
                                        }
                                        $update->setTriggeringUser( $user );
                                }
+                               if ( isset( $this->params['triggeringRevisionId'] ) && $this->params['triggeringRevisionId'] ) {
+                                       $revision = Revision::newFromId( $this->params['triggeringRevisionId'] );
+                                       if ( $revision === null ) {
+                                               $revision = Revision::newFromId(
+                                                       $this->params['triggeringRevisionId'],
+                                                       Revision::READ_LATEST
+                                               );
+                                       }
+                                       $update->setRevision( $revision );
+                               }
                        }
                }