summaryrefslogtreecommitdiff
path: root/includes/htmlform/HTMLCheckMatrix.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/htmlform/HTMLCheckMatrix.php')
-rw-r--r--includes/htmlform/HTMLCheckMatrix.php42
1 files changed, 31 insertions, 11 deletions
diff --git a/includes/htmlform/HTMLCheckMatrix.php b/includes/htmlform/HTMLCheckMatrix.php
index 83f12665..a0566a03 100644
--- a/includes/htmlform/HTMLCheckMatrix.php
+++ b/includes/htmlform/HTMLCheckMatrix.php
@@ -85,7 +85,13 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
$rows = $this->mParams['rows'];
$columns = $this->mParams['columns'];
- $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
+ $mappings = array();
+
+ if ( $this->mParent instanceof OOUIHTMLForm ) {
+ $mappings['tabindex'] = 'tabIndex';
+ }
+
+ $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ), $mappings );
// Build the column headers
$headerContents = Html::rawElement( 'td', array(), ' ' );
@@ -113,9 +119,8 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
foreach ( $columns as $columnTag ) {
$thisTag = "$columnTag-$rowTag";
// Construct the checkbox
- $thisId = "{$this->mID}-$thisTag";
$thisAttribs = array(
- 'id' => $thisId,
+ 'id' => "{$this->mID}-$thisTag",
'value' => $thisTag,
);
$checked = in_array( $thisTag, (array)$value, true );
@@ -126,17 +131,13 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
$checked = true;
$thisAttribs['disabled'] = 1;
}
- $chkBox = Xml::check( "{$this->mName}[]", $checked, $attribs + $thisAttribs );
- if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
- $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
- $chkBox .
- Html::element( 'label', array( 'for' => $thisId ) ) .
- Html::closeElement( 'div' );
- }
+
+ $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
+
$rowContents .= Html::rawElement(
'td',
array(),
- $chkBox
+ $checkbox
);
}
$tableContents .= Html::rawElement( 'tr', array(), "\n$rowContents\n" );
@@ -150,6 +151,25 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
return $html;
}
+ protected function getOneCheckbox( $checked, $attribs ) {
+ if ( $this->mParent instanceof OOUIHTMLForm ) {
+ return new OOUI\CheckboxInputWidget( array(
+ 'name' => "{$this->mName}[]",
+ 'selected' => $checked,
+ 'value' => $attribs['value'],
+ ) + $attribs );
+ } else {
+ $checkbox = Xml::check( "{$this->mName}[]", $checked, $attribs );
+ if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+ $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+ $checkbox .
+ Html::element( 'label', array( 'for' => $attribs['id'] ) ) .
+ Html::closeElement( 'div' );
+ }
+ return $checkbox;
+ }
+ }
+
protected function isTagForcedOff( $tag ) {
return isset( $this->mParams['force-options-off'] )
&& in_array( $tag, $this->mParams['force-options-off'] );