Merge "Fix display of action table cells on Special:Tags"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 15 Aug 2016 20:46:54 +0000 (20:46 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 15 Aug 2016 20:46:54 +0000 (20:46 +0000)
1  2 
includes/specials/SpecialTags.php

@@@ -128,7 -128,8 +128,7 @@@ class SpecialTags extends SpecialPage 
                        ChangeTags::listExtensionDefinedTags(), true );
  
                // List all defined tags, even if they were never applied
 -              $definedTags = array_keys( array_merge(
 -                      $this->explicitlyDefinedTags, $this->extensionDefinedTags ) );
 +              $definedTags = array_keys( $this->explicitlyDefinedTags + $this->extensionDefinedTags );
  
                // Show header only if there exists atleast one tag
                if ( !$tagStats && !$definedTags ) {
                        Xml::tags( 'th', null, $this->msg( 'tags-source-header' )->parse() ) .
                        Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
                        Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() ) .
-                       ( $userCanManage ?
+                       ( ( $userCanManage || $userCanDelete ) ?
                                Xml::tags( 'th', [ 'class' => 'unsortable' ],
                                        $this->msg( 'tags-actions-header' )->parse() ) :
                                '' )
                $newRow = '';
                $newRow .= Xml::tags( 'td', null, Xml::element( 'code', null, $tag ) );
  
 +              $linkRenderer = $this->getLinkRenderer();
                $disp = ChangeTags::tagDescription( $tag );
                if ( $showEditLinks ) {
                        $disp .= ' ';
 -                      $editLink = Linker::link(
 +                      $editLink = $linkRenderer->makeLink(
                                $this->msg( "tag-$tag" )->inContentLanguage()->getTitle(),
 -                              $this->msg( 'tags-edit' )->escaped()
 +                              $this->msg( 'tags-edit' )->text()
                        );
                        $disp .= $this->msg( 'parentheses' )->rawParams( $editLink )->escaped();
                }
                $desc = !$msg->exists() ? '' : $msg->parse();
                if ( $showEditLinks ) {
                        $desc .= ' ';
 -                      $editDescLink = Linker::link(
 +                      $editDescLink = $linkRenderer->makeLink(
                                $this->msg( "tag-$tag-description" )->inContentLanguage()->getTitle(),
 -                              $this->msg( 'tags-edit' )->escaped()
 +                              $this->msg( 'tags-edit' )->text()
                        );
                        $desc .= $this->msg( 'parentheses' )->rawParams( $editDescLink )->escaped();
                }
                $activeMsg = ( $isActive ? 'tags-active-yes' : 'tags-active-no' );
                $newRow .= Xml::tags( 'td', null, $this->msg( $activeMsg )->escaped() );
  
 -              $hitcountLabel = $this->msg( 'tags-hitcount' )->numParams( $hitcount )->escaped();
 +              $hitcountLabelMsg = $this->msg( 'tags-hitcount' )->numParams( $hitcount );
                if ( $this->getConfig()->get( 'UseTagFilter' ) ) {
 -                      $hitcountLabel = Linker::link(
 +                      $hitcountLabel = $linkRenderer->makeLink(
                                SpecialPage::getTitleFor( 'Recentchanges' ),
 -                              $hitcountLabel,
 +                              $hitcountLabelMsg->text(),
                                [],
                                [ 'tagfilter' => $tag ]
                        );
 +              } else {
 +                      $hitcountLabel = $hitcountLabelMsg->escaped();
                }
  
                // add raw $hitcount for sorting, because tags-hitcount contains numbers and letters
  
                // delete
                if ( $showDeleteActions && ChangeTags::canDeleteTag( $tag )->isOK() ) {
 -                      $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'delete' ),
 -                              $this->msg( 'tags-delete' )->escaped(),
 +                      $actionLinks[] = $linkRenderer->makeKnownLink(
 +                              $this->getPageTitle( 'delete' ),
 +                              $this->msg( 'tags-delete' )->text(),
                                [],
                                [ 'tag' => $tag ] );
                }
  
                        // activate
                        if ( ChangeTags::canActivateTag( $tag )->isOK() ) {
 -                              $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'activate' ),
 -                                      $this->msg( 'tags-activate' )->escaped(),
 +                              $actionLinks[] = $linkRenderer->makeKnownLink(
 +                                      $this->getPageTitle( 'activate' ),
 +                                      $this->msg( 'tags-activate' )->text(),
                                        [],
                                        [ 'tag' => $tag ] );
                        }
  
                        // deactivate
                        if ( ChangeTags::canDeactivateTag( $tag )->isOK() ) {
 -                              $actionLinks[] = Linker::linkKnown( $this->getPageTitle( 'deactivate' ),
 -                                      $this->msg( 'tags-deactivate' )->escaped(),
 +                              $actionLinks[] = $linkRenderer->makeKnownLink(
 +                                      $this->getPageTitle( 'deactivate' ),
 +                                      $this->msg( 'tags-deactivate' )->text(),
                                        [],
                                        [ 'tag' => $tag ] );
                        }
  
                }
  
-               if ( $actionLinks ) {
+               if ( $showDeleteActions || $showManageActions ) {
                        $newRow .= Xml::tags( 'td', null, $this->getLanguage()->pipeList( $actionLinks ) );
                }