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 );
$checked = true;
$thisAttribs['disabled'] = 1;
}
- $chkBox = $this->getOneCheckbox( $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" );
return new OOUI\CheckboxInputWidget( array(
'name' => "{$this->mName}[]",
'selected' => $checked,
- 'value' => '1',
+ '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;
}
-
- return Xml::check( "{$this->mName}[]", $checked, $attribs );
}
protected function isTagForcedOff( $tag ) {
$html = '';
$attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
- $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
foreach ( $options as $label => $info ) {
if ( is_array( $info ) ) {
$html .= Html::rawElement( 'h1', array(), $label ) . "\n";
$html .= $this->formatOptions( $info, $value );
} else {
- $thisAttribs = array( 'id' => "{$this->mID}-$info", 'value' => $info );
-
- // @todo: Make this use checkLabel for consistency purposes
- $checkbox = Xml::check(
- $this->mName . '[]',
- in_array( $info, $value, true ),
- $attribs + $thisAttribs
- );
- $checkbox .= ' ' . call_user_func( $elementFunc,
- 'label',
- array( 'for' => "{$this->mID}-$info" ),
- $label
+ $thisAttribs = array(
+ 'id' => "{$this->mID}-$info",
+ 'value' => $info,
);
+ $checked = in_array( $info, $value, true );
- if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
- $checkbox = Html::rawElement(
- 'div',
- array( 'class' => 'mw-ui-checkbox' ),
- $checkbox
- );
- }
+ $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs, $label );
$html .= ' ' . Html::rawElement(
'div',
return $html;
}
+ protected function getOneCheckbox( $checked, $attribs, $label ) {
+ if ( $this->mParent instanceof OOUIHTMLForm ) {
+ if ( $this->mOptionsLabelsNotFromMessage ) {
+ $label = new OOUI\HtmlSnippet( $label );
+ }
+ return new OOUI\FieldLayout(
+ new OOUI\CheckboxInputWidget( array(
+ 'name' => "{$this->mName}[]",
+ 'selected' => $checked,
+ 'value' => $attribs['value'],
+ ) + $attribs ),
+ array(
+ 'label' => $label,
+ 'align' => 'inline',
+ )
+ );
+ } else {
+ $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
+ $checkbox =
+ Xml::check( "{$this->mName}[]", $checked, $attribs ) .
+ ' ' .
+ call_user_func( $elementFunc,
+ 'label',
+ array( 'for' => $attribs['id'] ),
+ $label
+ );
+ if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+ $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+ $checkbox .
+ Html::closeElement( 'div' );
+ }
+ return $checkbox;
+ }
+ }
+
/**
* @param WebRequest $request
*