Merge "RCFilters: Add marker between old and new changes in enhanced mode"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 17 Aug 2017 05:56:42 +0000 (05:56 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 17 Aug 2017 05:56:42 +0000 (05:56 +0000)
1  2 
includes/changes/EnhancedChangesList.php
includes/templates/EnhancedChangesListGroup.mustache

@@@ -91,7 -91,7 +91,7 @@@ class EnhancedChangesList extends Chang
        /**
         * Format a line for enhanced recentchange (aka with javascript and block of lines).
         *
 -       * @param RecentChange $rc
 +       * @param RecentChange &$rc
         * @param bool $watched
         * @param int $linenumber (default null)
         *
                $recentChangesFlags = $this->getConfig()->get( 'RecentChangesFlags' );
  
                # Add the namespace and title of the block as part of the class
 -              $tableClasses = [ 'mw-collapsible', 'mw-collapsed', 'mw-enhanced-rc' ];
 +              $tableClasses = [ 'mw-collapsible', 'mw-collapsed', 'mw-enhanced-rc', 'mw-changeslist-line' ];
                if ( $block[0]->mAttribs['rc_log_type'] ) {
                        # Log entry
 +                      $tableClasses[] = 'mw-changeslist-log';
                        $tableClasses[] = Sanitizer::escapeClass( 'mw-changeslist-log-'
                                . $block[0]->mAttribs['rc_log_type'] );
                } else {
 +                      $tableClasses[] = 'mw-changeslist-edit';
                        $tableClasses[] = Sanitizer::escapeClass( 'mw-changeslist-ns'
                                . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] );
                }
                        implode( $this->message['semicolon-separator'], $users )
                )->escaped();
  
 +              $prefix = '';
 +              if ( is_callable( $this->changeLinePrefixer ) ) {
 +                      $prefix = call_user_func( $this->changeLinePrefixer, $block[0], $this, true );
 +              }
 +
                $templateParams = [
                        'articleLink' => $articleLink,
                        'charDifference' => $charDifference,
                        'lines' => $lines,
                        'logText' => $logText,
                        'numberofWatchingusers' => $numberofWatchingusers,
 +                      'prefix' => $prefix,
                        'rev-deleted-event' => $revDeletedMsg,
                        'tableClasses' => $tableClasses,
                        'timestamp' => $block[0]->timestamp,
+                       'fullTimestamp' => $block[0]->getAttribute( 'rc_timestamp' ),
                        'users' => $usersList,
                ];
  
  
                $type = $rcObj->mAttribs['rc_type'];
                $data = [];
 -              $lineParams = [];
 +              $lineParams = [ 'targetTitle' => $rcObj->getTitle() ];
  
                $classes = [ 'mw-enhanced-rc' ];
                if ( $rcObj->watched
  
                if ( $logType ) {
                        # Log entry
 +                      $classes[] = 'mw-changeslist-log';
                        $classes[] = Sanitizer::escapeClass( 'mw-changeslist-log-' . $logType );
                } else {
 +                      $classes[] = 'mw-changeslist-edit';
                        $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns' .
                                $rcObj->mAttribs['rc_namespace'] . '-' . $rcObj->mAttribs['rc_title'] );
                }
                        return $key === 'class' || Sanitizer::isReservedDataAttribute( $key );
                } );
  
 +              $prefix = '';
 +              if ( is_callable( $this->changeLinePrefixer ) ) {
 +                      $prefix = call_user_func( $this->changeLinePrefixer, $rcObj, $this, false );
 +              }
 +
                $line = Html::openElement( 'table', $attribs ) . Html::openElement( 'tr' );
 -              $line .= '<td class="mw-enhanced-rc"><span class="mw-enhancedchanges-arrow-space"></span>';
 +              $line .= Html::rawElement( 'td', [], '<span class="mw-enhancedchanges-arrow-space"></span>' );
 +              $line .= Html::rawElement( 'td', [ 'class' => 'mw-changeslist-line-prefix' ], $prefix );
 +              $line .= '<td class="mw-enhanced-rc">';
  
                if ( isset( $data['recentChangesFlags'] ) ) {
                        $line .= $this->recentChangesFlags( $data['recentChangesFlags'] );
                        $line .= '&#160;' . $data['timestampLink'];
                        unset( $data['timestampLink'] );
                }
 -              $line .= '&#160;</td><td>';
 +              $line .= '&#160;</td>';
 +              $line .= Html::openElement( 'td', [
 +                      'class' => 'mw-changeslist-line-inner',
 +                      // Used for reliable determination of the affiliated page
 +                      'data-target-page' => $rcObj->getTitle(),
 +              ] );
  
                // everything else: makes it easier for extensions to add or remove data
                $line .= implode( '', $data );
@@@ -1,11 -1,10 +1,11 @@@
- <table class="{{# tableClasses }}{{ . }} {{/ tableClasses }}">
+ <table class="{{# tableClasses }}{{ . }} {{/ tableClasses }}" data-mw-ts="{{{ fullTimestamp }}}">
        <tr>
                <td>
                        <span class="mw-collapsible-toggle mw-collapsible-arrow mw-enhancedchanges-arrow mw-enhancedchanges-arrow-space"></span>
                </td>
 +              <td class="mw-changeslist-line-prefix">{{{ prefix }}}</td>
                <td class="mw-enhanced-rc">{{{ collectedRcFlags }}}&#160;{{ timestamp }}&#160;</td>
 -              <td>
 +              <td class="mw-changeslist-line-inner">
                        {{# rev-deleted-event }}<span class="history-deleted">{{{ . }}}</span>{{/ rev-deleted-event }}
                        {{{ articleLink }}}{{{ languageDirMark }}}{{{ logText }}}
                        <span class="mw-changeslist-separator">. .</span>
        </tr>
        {{# lines }}
        <tr class="{{# classes }}{{ . }} {{/ classes }}"{{{ attribs }}}>
 +              <td></td>
                <td></td>
                <td class="mw-enhanced-rc">{{{ recentChangesFlags }}}&#160;</td>
 -              <td class="mw-enhanced-rc-nested">
 +              <td class="mw-enhanced-rc-nested" data-target-page="{{ targetTitle }}">
                        {{# timestampLink }}
                        <span class="mw-enhanced-rc-time">{{{ . }}}</span>
                        {{/ timestampLink }}