User:PrimeHunter/Search sort.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* Add several "Sort by" links to search pages.
   Click one of them to repeat the search with the given sorting.
   Install with this in your [[Special:MyPage/common.js]]:

   importScript('User:PrimeHunter/Search_sort.js'); // Linkback: [[User:PrimeHunter/Search sort.js]]
*/

$( document ).ready( function() {
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search'){
  mw.util.addPortletLink(
    'p-tb',
    'https://www.mediawiki.org/wiki/Help:CirrusSearch#Explicit_sort_orders',
    'Sort by:',
    't-sort',
    'View post about the search sort feature the following links are using'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=last_edit_desc',
    'Edited descending',
    't-sort',
    'Repeat the search with sort by last edited descending'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=last_edit_asc',
    'Edited ascending',
    't-sort',
    'Repeat the search with sort by last edited ascending'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=create_timestamp_asc',
    'Creation ascending',
    't-sort',
    'Repeat the search with sort by page creation ascending'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=create_timestamp_desc',
    'Creation descending',
    't-sort',
    'Repeat the search with sort by page creation descending'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=incoming_links_asc',
    'Least backlinks',
    't-sort',
    'Repeat the search with sort by least amount of incoming links'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=incoming_links_desc',
    'Most backlinks',
    't-sort',
    'Repeat the search with sort by highest amount of incoming links'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=just_match',
    'Match relevance',
    't-sort',
    'Repeat the search with sort by direct text match relevance (no boosts and penalties for certain pages, like in default relevance)'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=none',
    'Unsorted',
    't-sort',
    'Repeat the search completely unsorted'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=random',
    'Random',
    't-sort',
    'Repeat the search with randomized sort'
  );
  mw.util.addPortletLink(
    'p-tb',
    location.href.replace( location.hash, '' ) + ( location.search ? '&' : '?' ) + 'sort=relevance',
    'Relevance (default)',
    't-sort',
    'Repeat the search with sort by relevance (default)'
  );
}
});