Implement OOUI version of tag filter in ChangeTags
authorFlorian <florian.schmidt.stargatewissen@gmail.com>
Thu, 16 Jul 2015 20:21:58 +0000 (22:21 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Mon, 20 Jul 2015 15:58:47 +0000 (17:58 +0200)
Change-Id: I51a40eb091cfe28f67168c17ff92fbb72270a893

includes/changetags/ChangeTags.php

index 1e26caa..bf8386f 100644 (file)
@@ -613,12 +613,14 @@ class ChangeTags {
         * @param string $selected Tag to select by default
         * @param bool $fullForm Affects return value, see below
         * @param Title $title Title object to send the form to. Used only if $fullForm is true.
+        * @param bool $ooui Use an OOUI TextInputWidget as selector instead of a non-OOUI input field
+        *        You need to call OutputPage::enableOOUI() yourself.
         * @return string|array
         *        - if $fullForm is false: an array of (label, selector).
         *        - if $fullForm is true: HTML of entire form built around the selector.
         */
        public static function buildTagFilterSelector( $selected = '',
-               $fullForm = false, Title $title = null
+               $fullForm = false, Title $title = null, $ooui = false
        ) {
                global $wgUseTagFilter;
 
@@ -631,14 +633,24 @@ class ChangeTags {
                                'label',
                                array( 'for' => 'tagfilter' ),
                                wfMessage( 'tag-filter' )->parse()
-                       ),
-                       Xml::input(
+                       )
+               );
+
+               if ( $ooui ) {
+                       $data[] = new OOUI\TextInputWidget( array(
+                               'id' => 'tagfilter',
+                               'name' => 'tagfilter',
+                               'value' => $selected,
+                               'classes' => 'mw-tagfilter-input',
+                       ) );
+               } else {
+                       $data[] = Xml::input(
                                'tagfilter',
                                20,
                                $selected,
                                array( 'class' => 'mw-tagfilter-input mw-ui-input mw-ui-input-inline', 'id' => 'tagfilter' )
-                       )
-               );
+                       );
+               }
 
                if ( !$fullForm ) {
                        return $data;