X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fhtmlform%2FHTMLSelectAndOtherField.php;h=a1c0c9574896b4a56fcfa34945ad254e68896bbb;hb=6e1a1ca4413f9e8c4fda32e66fef35e45e0eacb8;hp=65176dd7ac4b525f289d3ae3bc465c1ecc172b51;hpb=86b2bcc97577b79b6977b5fa3c3ec19c9312dc99;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/htmlform/HTMLSelectAndOtherField.php b/includes/htmlform/HTMLSelectAndOtherField.php index 65176dd7ac..a1c0c95748 100644 --- a/includes/htmlform/HTMLSelectAndOtherField.php +++ b/includes/htmlform/HTMLSelectAndOtherField.php @@ -13,6 +13,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField { function __construct( $params ) { if ( array_key_exists( 'other', $params ) ) { + // Do nothing } elseif ( array_key_exists( 'other-message', $params ) ) { $params['other'] = wfMessage( $params['other-message'] )->plain(); } else { @@ -22,7 +23,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField { parent::__construct( $params ); if ( $this->getOptions() === null ) { - # Sulk + // Sulk throw new MWException( 'HTMLSelectAndOtherField called without any options' ); } if ( !in_array( 'other', $this->mOptions, true ) ) { @@ -39,10 +40,12 @@ class HTMLSelectAndOtherField extends HTMLSelectField { $textAttribs = array( 'id' => $this->mID . '-other', 'size' => $this->getSize(), + 'class' => array( 'mw-htmlform-select-and-other-field' ), + 'data-id-select' => $this->mID, ); if ( $this->mClass !== '' ) { - $textAttribs['class'] = $this->mClass; + $textAttribs['class'][] = $this->mClass; } $allowedParams = array( @@ -50,7 +53,8 @@ class HTMLSelectAndOtherField extends HTMLSelectField { 'autofocus', 'multiple', 'disabled', - 'tabindex' + 'tabindex', + 'maxlength', // gets dynamic with javascript, see mediawiki.htmlform.js ); $textAttribs += $this->getAttributes( $allowedParams ); @@ -71,6 +75,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField { $list = $request->getText( $this->mName ); $text = $request->getText( $this->mName . '-other' ); + // Should be built the same as in mediawiki.htmlform.js if ( $list == 'other' ) { $final = $text; } elseif ( !in_array( $list, $this->mFlatOptions, true ) ) {