Set focus
authorAaron Schulz <aaron@users.mediawiki.org>
Thu, 11 Dec 2008 19:52:56 +0000 (19:52 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Thu, 11 Dec 2008 19:52:56 +0000 (19:52 +0000)
includes/specials/SpecialSearch.php

index 8091063..5d0f1a7 100644 (file)
@@ -619,11 +619,21 @@ class SpecialSearch {
                if( $t != null && count($this->namespaces) === 1 ) {
                        $out .= wfMsgExt( 'searchmenu-prefix', array('parseinline'), $term );
                }
-               return Xml::openElement( 'fieldset', array('id' => 'mw-searchoptions','style' => 'margin:0em;') ) .
+               return $this->powerSearchFocus() .
+                       Xml::openElement( 'fieldset', array('id' => 'mw-searchoptions','style' => 'margin:0em;') ) .
                        Xml::element( 'legend', null, wfMsg('powersearch-legend') ) .
                        $this->formHeader($term) . $out . 
                        Xml::closeElement( 'fieldset' );
        }
+       
+       protected function searchFocus() {
+               global $wgJsMimeType;
+               return "<script type=\"$wgJsMimeType\">" .
+                       "hookEvent(\"load\", function() {" .
+                               "document.getElementById('searchText').focus();" .
+                       "});" .
+                       "</script>";
+       }       
 
        protected function powerSearchFocus() {
                global $wgJsMimeType;
@@ -714,7 +724,8 @@ class SpecialSearch {
                global $wgScript;
                $searchTitle = SpecialPage::getTitleFor( 'Search' );
                $searchable = SearchEngine::searchableNamespaces();
-               $out = Xml::openElement( 'form', array( 'id' => 'search', 'method' => 'get', 'action' => $wgScript ) );
+               $out = $this->searchFocus();
+               $out .= Xml::openElement( 'form', array( 'id' => 'search', 'method' => 'get', 'action' => $wgScript ) );
                $out .= Xml::hidden( 'title', $searchTitle->getPrefixedText() ) . "\n";
                // If searching several, but not all namespaces, show what we are searching.
                if( count($this->namespaces) > 1 && $this->namespaces !== array_keys($searchable) ) {