X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fpager%2FTablePager.php;h=70055da39fb4fc0094e0b3ca2e3dac80344c9663;hp=f2fca68d1d2db036293cdf49b2ac4a2d78e57232;hb=89539f2aa1b158fdcc703ad053e2580cb97a6385;hpb=9964ca1a390c446397dcd466916ffed356cdc3c9 diff --git a/includes/pager/TablePager.php b/includes/pager/TablePager.php index f2fca68d1d..70055da39f 100644 --- a/includes/pager/TablePager.php +++ b/includes/pager/TablePager.php @@ -293,35 +293,36 @@ abstract class TablePager extends IndexPager { return ''; } - $labels = [ - 'first' => 'table_pager_first', - 'prev' => 'table_pager_prev', - 'next' => 'table_pager_next', - 'last' => 'table_pager_last', - ]; - - $linkTexts = []; - $disabledTexts = []; - foreach ( $labels as $type => $label ) { - $msgLabel = $this->msg( $label )->escaped(); - $linkTexts[$type] = "
$msgLabel
"; - $disabledTexts[$type] = "
$msgLabel
"; + $this->getOutput()->enableOOUI(); + + $types = [ 'first', 'prev', 'next', 'last' ]; + + $queries = $this->getPagingQueries(); + $links = []; + + $buttons = []; + + $title = $this->getTitle(); + + foreach ( $types as $type ) { + $buttons[] = new \OOUI\ButtonWidget( [ + // Messages used here: + // * table_pager_first + // * table_pager_prev + // * table_pager_next + // * table_pager_last + 'label' => $this->msg( 'table_pager_' . $type )->text(), + 'href' => $queries[ $type ] ? + $title->getLinkURL( $queries[ $type ] + $this->getDefaultQuery() ) : + null, + 'icon' => $type === 'prev' ? 'previous' : $type, + 'disabled' => $queries[ $type ] === false + ] ); } - $links = $this->getPagingLinks( $linkTexts, $disabledTexts ); - - $s = Html::openElement( 'table', [ 'class' => $this->getNavClass() ] ); - $s .= Html::openElement( 'tr' ) . "\n"; - $width = 100 / count( $links ) . '%'; - foreach ( $labels as $type => $label ) { - // We want every cell to have the same width. We could use table-layout: fixed; in CSS, - // but it only works if we specify the width of a cell or the table and we don't want to. - // There is no better way. - $s .= Html::rawElement( 'td', - [ 'style' => "width: $width;", 'class' => "TablePager_nav-$type" ], - $links[$type] ) . "\n"; - } - $s .= Html::closeElement( 'tr' ) . Html::closeElement( 'table' ) . "\n"; - return $s; + return new \OOUI\ButtonGroupWidget( [ + 'classes' => [ $this->getNavClass() ], + 'items' => $buttons, + ] ); } /** @@ -330,13 +331,13 @@ abstract class TablePager extends IndexPager { * @return string[] */ public function getModuleStyles() { - return [ 'mediawiki.pager.tablePager' ]; + return [ 'mediawiki.pager.tablePager', 'oojs-ui.styles.icons-movement' ]; } /** * Get a "