X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=includes%2Fpager%2FTablePager.php;h=70055da39fb4fc0094e0b3ca2e3dac80344c9663;hb=cc433d1ff1dd9e196a911fcc9dd3748611b413ed;hp=770c1c6ad65d91018af9c1b4b3ff5e3994031bf9;hpb=8bb5a6c461c31ee5ce6874548246fc2c520686f6;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/pager/TablePager.php b/includes/pager/TablePager.php index 770c1c6ad6..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,7 +331,7 @@ abstract class TablePager extends IndexPager { * @return string[] */ public function getModuleStyles() { - return [ 'mediawiki.pager.tablePager' ]; + return [ 'mediawiki.pager.tablePager', 'oojs-ui.styles.icons-movement' ]; } /**