X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fpager%2FTablePager.php;h=70055da39fb4fc0094e0b3ca2e3dac80344c9663;hb=8a463e8ea5c73b7ac8ee70e6ca07ba89cce2c0a9;hp=770c1c6ad65d91018af9c1b4b3ff5e3994031bf9;hpb=94224eda67e0906592459d107360299138a73b85;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] = "
";
- $disabledTexts[$type] = "";
+ $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' ];
}
/**