MediaWiki:Common.js/search.js: Difference between revisions

updates from Wikipedia's version
m (http->https)
(updates from Wikipedia's version)
Line 3: Line 3:
   *  Description: Change Special:Search to use a drop-down menu, with the default being
   *  Description: Change Special:Search to use a drop-down menu, with the default being
   *              the internal MediaWiki engine
   *              the internal MediaWiki engine
   *  Created and maintained by: [[User:Gracenotes]]
   *  Copied from https://en.wikipedia.org/wiki/MediaWiki:Gadget-externalsearch.js
   */
   */


Line 10: Line 10:
         var opt = document.createElement('option');
         var opt = document.createElement('option');
         opt.appendChild(document.createTextNode(site));
         opt.appendChild(document.createTextNode(site));
         searchEngines.push([action, mainQ, addQ, addV]);
         window.searchEngines.push([action, mainQ, addQ, addV]);
         return opt;
         return opt;
     }
     }
     var topline = document.getElementById('contentSub');
     var topline = document.getElementById('contentSub');
     topline.style.color = "blue";
     topline.style.color = "blue";
     topline.innerText = "Not finding what you're looking for? Select Google from the dropdown menu below and try again.";
     topline.innerText = "Not finding what you're looking for? Select a different search engine from the dropdown menu below and try again.";
     if (document.forms['powersearch'])
     if (document.forms.powersearch)
         var searchForm = document.forms['powersearch'];
         var searchForm = document.forms.powersearch;
     if (document.forms['search'])
     if (document.forms.search)
         var searchForm = document.forms['search'];
         var searchForm = document.forms.search;


     if (searchForm.lsearchbox) {
     if (searchForm.lsearchbox) {
Line 29: Line 29:
     selectBox.id = 'searchEngine';
     selectBox.id = 'searchEngine';
     searchForm.onsubmit = function() {
     searchForm.onsubmit = function() {
         var optSelected = searchEngines[document.getElementById('searchEngine').selectedIndex];
         var window.searchEngines = searchEngines[document.getElementById('searchEngine').selectedIndex];
         searchForm.action = optSelected[0];
         searchForm.action = optSelected[0];
         searchBox.name = optSelected[1];
         searchBox.name = optSelected[1];
Line 35: Line 35:
         searchForm.title.name = optSelected[2];
         searchForm.title.name = optSelected[2];
     }
     }
     selectBox.appendChild(createOption('MediaWiki Search', mw.config.get('wgScriptPath') + '/index.php', 'search', 'title', 'Special:Search'));
     selectBox.appendChild(createOption('MediaWiki Search', mw.config.get( 'wgScript' ), 'search', 'title', 'Special:Search'));
     selectBox.appendChild(createOption('Google', 'https://www.google.com/search', 'q', 'sitesearch', 'wiki.oni2.net'));
     selectBox.appendChild(createOption('Google', 'https://www.google.com/search', 'q', 'sitesearch', 'wiki.oni2.net'));
     selectBox.appendChild(createOption('Yahoo!', 'https://search.yahoo.com/search', 'p', 'vs', 'wiki.oni2.net'));
     selectBox.appendChild(createOption('Yahoo!', 'https://search.yahoo.com/search', 'p', 'vs', 'wiki.oni2.net'));
Line 44: Line 44:
     } else {
     } else {
         var lStat = searchForm.title;
         var lStat = searchForm.title;
         if( typeof lStat == 'object'  && typeof lStat.length === 'number' ) lStat = lStat[0];
         if( typeof lStat === 'object'  && typeof lStat.length === 'number' ) lStat = lStat[0];
     }
     }
     lStat.parentNode.insertBefore(selectBox, lStat);
     lStat.parentNode.insertBefore(selectBox, lStat);
}
}


var searchEngines = [];
window.searchEngines = [];


$(SpecialSearchEnhanced);
// Script is specific to Special:Search
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search'){
  $(SpecialSearchEnhanced);
}