Merge "Revert "Move CSS for patrol from mediawiki.legacy to new module mediawiki...
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 11 Aug 2016 23:05:06 +0000 (23:05 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 11 Aug 2016 23:05:06 +0000 (23:05 +0000)
1  2 
includes/diff/DifferenceEngine.php
resources/Resources.php
resources/src/mediawiki.legacy/shared.css

@@@ -238,14 -238,12 +238,14 @@@ class DifferenceEngine extends ContextS
        }
  
        public function showDiffPage( $diffOnly = false ) {
 -
                # Allow frames except in certain special cases
                $out = $this->getOutput();
                $out->allowClickjacking();
                $out->setRobotPolicy( 'noindex,nofollow' );
  
 +              // Allow extensions to add any extra output here
 +              Hooks::run( 'DifferenceEngineShowDiffPage', [ $out ] );
 +
                if ( !$this->loadRevisionData() ) {
                        $this->showMissingRevision();
  
                        $out->setPageTitle( $this->msg( 'difference-title', $this->mNewPage->getPrefixedText() ) );
                        $samePage = true;
                        $oldHeader = '';
 +                      // Allow extensions to change the $oldHeader variable
 +                      Hooks::run( 'DifferenceEngineOldHeaderNoOldRev', [ &$oldHeader ] );
                } else {
                        Hooks::run( 'DiffViewHeader', [ $this, $this->mOldRev, $this->mNewRev ] );
  
                                '<div id="mw-diff-otitle5">' . $oldChangeTags[0] . '</div>' .
                                '<div id="mw-diff-otitle4">' . $prevlink . '</div>';
  
 +                      // Allow extensions to change the $oldHeader variable
 +                      Hooks::run( 'DifferenceEngineOldHeader', [ $this, &$oldHeader, $prevlink, $oldminor,
 +                              $diffOnly, $ldel, $this->unhide ] );
 +
                        if ( $this->mOldRev->isDeleted( Revision::DELETED_TEXT ) ) {
                                $deleted = true; // old revisions text is hidden
                                if ( $this->mOldRev->isDeleted( Revision::DELETED_RESTRICTED ) ) {
                        '<div id="mw-diff-ntitle5">' . $newChangeTags[0] . '</div>' .
                        '<div id="mw-diff-ntitle4">' . $nextlink . $this->markPatrolledLink() . '</div>';
  
 +              // Allow extensions to change the $newHeader variable
 +              Hooks::run( 'DifferenceEngineNewHeader', [ $this, &$newHeader, $formattedRevisionTools,
 +                      $nextlink, $rollback, $newminor, $diffOnly, $rdel, $this->unhide ] );
 +
                if ( $this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
                        $deleted = true; // new revisions text is hidden
                        if ( $this->mNewRev->isDeleted( Revision::DELETED_RESTRICTED ) ) {
                                                        'token' => $linkInfo['token'],
                                                ]
                                        ) . ']</span>';
 +                              // Allow extensions to change the markpatrolled link
 +                              Hooks::run( 'DifferenceEngineMarkPatrolledLink', [ $this,
 +                                      &$this->mMarkPatrolledLink, $linkInfo['rcid'], $linkInfo['token'] ] );
                        }
                }
                return $this->mMarkPatrolledLink;
                                // If the user could patrol this it already would be patrolled
                                $rcid = 0;
                        }
 +
 +                      // Allow extensions to possibly change the rcid here
 +                      // For example the rcid might be set to zero due to the user
 +                      // being the same as the performer of the change but an extension
 +                      // might still want to show it under certain conditions
 +                      Hooks::run( 'DifferenceEngineMarkPatrolledRCID', [ &$rcid, $this, $change, $user ] );
 +
                        // Build the link
                        if ( $rcid ) {
                                $this->getOutput()->preventClickjacking();
-                               $this->getOutput()->addModuleStyles( 'mediawiki.page.patrol' );
                                if ( $wgEnableAPI && $wgEnableWriteAPI
                                        && $user->isAllowed( 'writeapi' )
                                ) {
  
                                # WikiPage::getParserOutput() should not return false, but just in case
                                if ( $parserOutput ) {
 -                                      $out->addParserOutput( $parserOutput );
 +                                      // Allow extensions to change parser output here
 +                                      if ( Hooks::run( 'DifferenceEngineRenderRevisionAddParserOutput', [ $this, $out, $parserOutput, $wikiPage ] ) ) {
 +                                              $out->addParserOutput( $parserOutput );
 +                                      }
                                }
                        }
                }
                # @codingStandardsIgnoreEnd
  
 -              # Add redundant patrol link on bottom...
 -              $out->addHTML( $this->markPatrolledLink() );
 -
 +              // Allow extensions to optionally not show the final patrolled link
 +              if ( Hooks::run( 'DifferenceEngineRenderRevisionShowFinalPatrolLink' ) ) {
 +                      # Add redundant patrol link on bottom...
 +                      $out->addHTML( $this->markPatrolledLink() );
 +              }
        }
  
        protected function getParserOutput( WikiPage $page, Revision $rev ) {
         * @return bool
         */
        public function showDiff( $otitle, $ntitle, $notice = '' ) {
 +              // Allow extensions to affect the output here
 +              Hooks::run( 'DifferenceEngineShowDiff', [ $this ] );
 +
                $diff = $this->getDiff( $otitle, $ntitle, $notice );
                if ( $diff === false ) {
                        $this->showMissingRevision();
                if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
                        && $this->mOldRev->getId() == $this->mNewRev->getId() )
                ) {
 -                      return '';
 +                      if ( Hooks::run( 'DifferenceEngineShowEmptyOldContent', [ $this ] ) ) {
 +                              return '';
 +                      }
                }
                // Cacheable?
                $key = false;
diff --combined resources/Resources.php
@@@ -923,7 -923,6 +923,7 @@@ return 
                        'mediawiki.api.edit',
                        'json',
                ],
 +              'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.user' => [
                'scripts' => 'resources/src/mediawiki/api/user.js',
                'position' => 'top',
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.page.patrol' => [
-               'position' => 'top',
-               'styles' => [
-                       'resources/src/mediawiki/page/mediawiki.page.patrol.css',
-                       'resources/src/mediawiki/page/mediawiki.page.patrol.print.css'
-                               => [ 'media' => 'print' ],
-               ]
-       ],
        'mediawiki.page.patrol.ajax' => [
                'scripts' => 'resources/src/mediawiki/page/patrol.ajax.js',
                'dependencies' => [
@@@ -98,6 -98,14 +98,6 @@@ span.comment 
        unicode-bidi: isolate;
  }
  
 -/**
 - * Add a bit of margin space between the preview and the toolbar.
 - * This replaces the ugly <p><br /></p> we used to insert into the page source
 - */
 -#wikiPreview.ontop {
 -      margin-bottom: 1em;
 -}
 -
  /* Stop floats from intruding into edit area in previews */
  #editform,
  #toolbar,
@@@ -115,6 -123,23 +115,23 @@@ span.history-deleted 
        font-style: italic;
  }
  
+ /**
+  * Patrol stuff
+  */
+ .not-patrolled {
+       background-color: #ffa;
+ }
+ .unpatrolled {
+       font-weight: bold;
+       color: #f00;
+ }
+ div.patrollink {
+       font-size: 75%;
+       text-align: right;
+ }
  /**
   * Forms
   */