Jump to content

User:Ping08/subPagesLink.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**
 * JSconfig
 *
 * If you are a gadget author, you may use 
 * [[MediaWiki:Gadget-SettingsManager.js]] or jquery.jStorage or mediawiki.cookie
 * and [[MediaWiki:Gadget-SettingsUI.js]] to provide an easy interface.
 * 
 *
 * Global configuration options to enable/disable and configure
 * specific script features from [[MediaWiki:Common.js]] and [[MediaWiki:Monobook.js]]
 * <s>This framework adds config options (saved as cookies) to [[Special:Preferences]]</s>
 * (Site script does not run at [[Special:Preferences]] any more so this functionality has been removed)
 *
 * For a more permanent change you can override the default settings in your
 * [[Special:Mypage/monobook.js]]
 * for Example: JSconfig.keys[loadAutoInformationTemplate] = false;
 *
 * Maintainer: [[User:Dschwen]]
 */
window.JSconfig = {
 prefix: 'jsconfig_',
 keys: {},
 meta: {},
 // Register a new configuration item
 //  * name      : String, internal name
 //  * default_value : String or Boolean (type determines configuration widget)
 //  * description  : String, text appearing next to the widget in the preferences, or an hash-object
 //    containing translations of the description indexed by the language code
 //
 // Access keys through JSconfig.keys[name]
 registerKey: function (name, default_value, description, prefpage) {
  if (JSconfig.keys[name] === undefined) {
   JSconfig.keys[name] = default_value;
  } else {
   // all cookies are read as strings,
   // convert to the type of the default value
   switch (typeof default_value) {
   case 'boolean':
    JSconfig.keys[name] = (JSconfig.keys[name] === 'true');
    break;
   case 'number':
    JSconfig.keys[name] = JSconfig.keys[name] / 1;
    break;
   }
  }
  JSconfig.meta[name] = {
   'description': description[mw.config.get( 'wgUserLanguage' )] || description.en || (typeof description === 'string' && description) || '<i>en</i> translation missing',
   'page': prefpage || 0,
   'default_value': default_value
  };
 },
 readCookies: function () {
  var cookies = document.cookie.split('; ');
  var p = JSconfig.prefix.length;
  var i;
  for (var key = 0; cookies && key < cookies.length; key++) {
   if (cookies[key].substring(0, p) === JSconfig.prefix) {
    i = cookies[key].indexOf('=');
    //alert( cookies[key] + ',' + key + ',' + cookies[key].substring(p,i) );
    JSconfig.keys[cookies[key].substring(p, i)] = cookies[key].substring(i + 1);
   }
  }
 },
 writeCookies: function () {
  var expdate = new Date();
  expdate.setTime(expdate.getTime() + 1000 * 60 * 60 * 24 * 3650); // expires in 3560 days
  for (var key in JSconfig.keys) {
   document.cookie = JSconfig.prefix + key + '=' + JSconfig.keys[key] + '; path=/; expires=' + expdate.toUTCString();
  }
 }
};
JSconfig.readCookies();

/** 
 * Based on [[:c:MediaWiki:Common.js]]
 * subPagesLink
 *
 * Adds a link to subpages of current page
 *
 * Maintainers: [[:he:משתמש:ערן]], [[User:Dschwen]]
 *
 * JSconfig items: bool JSconfig.subPagesLink(true=enabled (default), false=disabled)
 */
var subPagesLink = {
 // Translations of the menu item
 i18n: {
  'be-tarask': 'Падстаронкі',
  'be-x-old': 'Падстаронкі',
  'bg': 'Подстраници',
  'bn': 'উপপাতাসমূহ',
  'ca': 'Subpàgines',
  'cs': 'Podstránky',
  'cy': 'Isdudalennau',
  'de': 'Unterseiten',
  'en': 'Subpages', // default
  'et': 'Alamlehed',
  'eo': 'Subpaĝoj',
  'eu': 'Azpiorrialdeak',
  'es': 'Subpáginas',
  'fa': 'زیرصفحه\u200cها',
  'fi': 'Alasivut',
  'fr': 'Sous-pages',
  'gl': 'Subpáxinas',
  'he': 'דפי משנה',
  'hr': 'Podstranice',
  'hy': 'Ենթաէջեր',
  'id': 'Sub halaman',
  'it': 'Sottopagine',
  'is': 'Undirsíður',
  'ja': '下位ページ',
  'ko': '하위 문서 목록',
  'min': 'Sublaman',
  'mk': 'Потстраници',
  'ml': 'ഉപതാളുകൾ',
  'nl': "Subpagina's",
  'no': 'Undersider',
  'pl': 'Podstrony',
  'pt': 'Subpáginas',
  'pt-br': 'Subpáginas',
  'ru': 'Подстраницы',
  'sl': 'Podstrani',
  'sr': 'Подстранице',
  'sv': 'Undersidor',
  'tr': 'Altsayfalar',
  'tyv': 'Адакы арыннар',
  'uk': 'Підсторінки',
  'vi': 'Trang con',
  'zh-hans': '子页面',
  'zh-hant': '子頁面'
 },
 install: function () {
  // honor user configuration
  if (!JSconfig.keys.subPagesLink) {
   return;
  }
  if (document.getElementById('t-whatlinkshere')
  && $.inArray ( mw.config.get( 'wgNamespaceNumber' ), [ -1/* Special */, 6 /* File */, 14 /* Category */] ) === -1
  )  $.when(mw.loader.using(['mediawiki.util'], $.ready)).done( function() {
   var subpagesText = subPagesLink.i18n[mw.config.get( 'wgUserLanguage' )] || subPagesLink.i18n.en;
   var subpagesLink = mw.util.getUrl('Special:Prefixindex/' + mw.config.get( 'wgPageName' ) + '/');
   mw.util.addPortletLink('p-tb', subpagesLink, subpagesText, 't-subpages');
  }  	
);//
 }
};
JSconfig.registerKey('subPagesLink', true, {
 'be-tarask': 'Паказваць спасылку на падстаронкі ў панэлі інструмэнтаў',
 'be-x-old': 'Паказваць спасылку на падстаронкі ў панэлі інструмэнтаў',
 'bg': 'Показване на връзката Подстраници в менюто с инструменти',
 'bn': 'সরঞ্জাম-এ উপপাতাসমূহের লিঙ্ক দেখাও',
 'cs': 'Zobrazovat v panelu nástrojů odkaz Podstránky',
 'cy': 'Dangos cyswllt i Isdudalennau yn y blwch offer',
 'en': 'Show a Subpages link in the toolbox', // default
 'eo': 'Montri subpaĝan ligilon en la ilaro',
 'fa': 'نمایش زیرصفجه\u200cها در جعبه ابزار',
 'fr': 'affiche un lien Sous-pages dans la boîte à outils',
 'hr': 'Prikaži poveznicu na podstranice u pomagalima',
 'hy': 'Ցույց տալ «Ենթաէջեր» հղումը գործիքների տուփում',
 'id': 'Tampilkan Sub halaman di kotak perkakas',
 'ja': 'ツールボックスに「下位ページ」リンクを表示',
 'min': 'Tunjuakan Sublaman pado kotak pakakeh',
 'mk': 'Покажи врска до потстраниците во алатникот',
 'ml': 'പണിസഞ്ചിയിൽ ഉപതാളുകൾക്കുള്ള കണ്ണി പ്രദർശിപ്പിക്കുക',
 'nl': "Een link Subpagina's weergeven bij de hulpmiddelen",
 'pl': 'Pokaż w panelu bocznym link do podstron',
 'pt': 'Exibir um link para as subpáginas no menu de ferramentas',
 'pt-br': 'Exibir um link para as subpáginas no menu de ferramentas',
 'ru': 'Показывать ссылку на подстраницы в меню инструментов',
 'sl': 'Med pripomočki prikaži povezavo na podstrani',
 'sv': 'Visa en länk för undersidor i verktygslådan',
 'tr': 'Araç kutusunda alt sayfalara bir bağlantı gösterir',
 'vi': 'Hiển thị liên kết Trang con ở hộp Công cụ',
 'zh-hans': '在工具箱显示一个子页面的链接',
 'zh-hant': '在工具箱顯示壹個子頁面的鏈接'
}, 7);
$(subPagesLink.install);