(most fav wikis now UCP :-() |
(another one bites the UCP) |
||
Line 58: | Line 58: | ||
hearthstone: 'Hearthstone Wiki (legacy)', |
hearthstone: 'Hearthstone Wiki (legacy)', |
||
kuromukuro: 'Kuromukuro Wiki', |
kuromukuro: 'Kuromukuro Wiki', |
||
− | yurucamp: 'Laid-Back Camp Wiki |
+ | yurucamp: 'Laid-Back Camp Wiki', |
manycolored: 'Many-Colored Wiki', |
manycolored: 'Many-Colored Wiki', |
||
tea: 'WikiTea', |
tea: 'WikiTea', |
Revision as of 18:29, 7 January 2021
/* ***** */
/* Add a menu item to profile menu with link to user contributions in modernized UI v2 */
$(function () {
var $userContribs = $('<li>')
.attr('id', 'MyContribs')
.append(
$('<a>')
.attr('href', '/wiki/Special:Contributions/' + wgUserName)
.text('My Contributions')
);
//Add menu item, before My Preferences link, if it exists
$('div.wds-global-navigation__user-menu > div.wds-dropdown__content > ul.wds-list > li:nth-child(3)').before($userContribs);
});
// Show all announcements except those from 175043 (vsbattles) and 2282307 (everything-to-discuss-about)
// Get the id from Special:Version
window.announcementsIgnore = {
option: 'opt-in-all',
exceptWikiIds: [
175043,
733100,
2282307
]
};
/* From dev */
importArticles({
type: 'script',
articles: [
'u:dev:MediaWiki:AnnouncementsIgnore.js',
'u:dev:MediaWiki:DiscussionsActivity.js',
'u:dev:MediaWiki:MarkBlocked.js',
]
});
/* WORKING AGAIN thanks to suggestion by KockaAdmiralac on dev wiki... */
/* Add a submenu to profile menu with links to favorite wikis in modernized UI v2 */
// FYI fav_wikis1, fav_wikis2, fav_wikis3, and fav_wikis4 are lists of keys that can't uses dashes, so if
// *.fandom.com or *.wikia.com subdomain uses dashes, you need to special case URL construction
/* Known special cases with dashes in subdomain:
yuru-camp, little-witch-academia,
shield-hero, steins-gate
arakawa-under-the-bridge, sidonia-no-kishi
Not currently in menu:
tora-dora
*/
var fav_wikis1note = 'Admin wikis';
var fav_wikis1 = {
wowwiki: 'WoWWiki',
fandyllic: 'Fandyllic Wiki',
chiosschoolroad: "Chio's School Road Wiki (orig UCP)",
cosplay: 'Cosplay Wiki',
thedemoncycle: 'Demon Cycle Wiki',
downtonabbey: 'Downton Abbey Wiki',
expanse: 'Expanse Wiki',
hearthstone: 'Hearthstone Wiki (legacy)',
kuromukuro: 'Kuromukuro Wiki',
yurucamp: 'Laid-Back Camp Wiki',
manycolored: 'Many-Colored Wiki',
tea: 'WikiTea',
templates: 'Templates Wiki',
};
var fav_wikis2note = 'Non-admin wikis';
var fav_wikis2 = {
anime: 'Animanga Wiki',
drama: '(Asian) Drama Wiki',
jpop: 'Japanese Music Wiki',
haruhi: 'Haruhi Suzumiya Wiki',
littlewitchacademia: 'Little Witch Academia Wiki'
};
var fav_wikis3note = 'Contributor wikis';
var fav_wikis3 = {
konosuba: 'KonoSuba Wiki',
oregairu: 'OreGairu Wiki',
kiseijuu: 'Parasyte Wiki',
shieldhero: 'Shield Hero Wiki',
tensura: 'Reincarnated as a Slime Wiki',
steinsgate: 'Steins;Gate Wiki',
swordartonline: 'Sword Art Online Wiki'
};
var fav_wikis4note = 'Adoptable wikis';
var fav_wikis4 = {
arakawaunderthebridge: 'Arakawa Under the Bridge Wiki',
sidonianokishi: 'Knights of Sidonia Wiki',
netoju: 'Recovery of an MMO Junkie Wiki',
silverspoon: 'Silver Spoon Wiki',
kiminonawa: 'your name. wiki'
};
// Holding area for wikis in menus past
var fav_wikis5note = 'Holding area wikis';
var fav_wikis5 = {
chunibyo: 'Love, Chunibyo & Other Delusions Wiki',
hataraku: 'Hataraku Maou-sama Wiki',
hinamatsuri: 'Hinamatsuri Wiki',
hyouka: 'Hyouka Wiki',
kokoroconnect: 'Kokoro Connect Wiki',
toradora: 'Toradora Wiki'
};
/* No more in the list */
var wiki_types = {
subdomain: 'wikia.com'
};
$(function () {
'use strict';
$('.wds-global-navigation__user-menu .wds-dropdown__content').addClass('wds-is-not-scrollable');
/* Don't try to add My Favorite Wikis menu, if it appears to already exist */
if (!window.fav_wikis1 || $('#MyFavWikis').length) {
return;
}
/* Start building My Favorite Wikis menu */
var $favWikiList = $('<ul>').addClass('wds-list wds-is-linked');
var $favWikis = $('<li>')
//.attr('id', 'MyFavWikis')
.addClass('wds-dropdown-level-2')
.append(
$('<a>')
.attr('href', '#')
.addClass('wds-dropdown-level-2__toggle')
.attr('data-tracking', 'custom-level-2')
.append(
$('<span>').text('My Favorite Wikis'),
$('<svg xmlns="https://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12" class="wds-icon wds-icon-tiny wds-dropdown-chevron"><path d="M6.003 10.002a.997.997 0 0 1-.707-.293L.293 4.706a1 1 0 1 1 1.414-1.414l4.296 4.295 4.293-4.293A1 1 0 1 1 11.71 4.71l-5 5a.997.997 0 0 1-.707.293" fill-rule="evenodd"></path></svg>')
),
$('<div>')
.addClass('wds-is-not-scrollable wds-dropdown-level-2__content')
.append($favWikiList)
);
// Add note at top for fav_wikis1
$favWikiList.append(
$('<li>')
.text(fav_wikis1note)
.css('font-style', 'italic')
);
// Add links from fav_wikis1 list
Object.keys(window.fav_wikis1).forEach(function (key) {
var wiki_type = "fandom.com";
var subdomain = "www";
/* Wiki type is fandom.com unless set otherwise by wiki_types key list above */
if (window.wiki_types[key]) {
wiki_type = window.wiki_types[key];
}
// For special cases with dashes
if (key == 'yurucamp') subdomain = 'yuru-camp';
// Otherwise subdomain is key
else subdomain = key;
// Add wiki links to part 1 of sub menu 1
$favWikiList.append(
$('<li>').append(
$('<a>')
.attr('href', '//' + subdomain + '.' + wiki_type + '/')
.attr('target', '_blank')
.text(window.fav_wikis1[key])
)
);
//Add a horizontal rule (line) after specified key link
if (key == 'fandyllic') {
$favWikiList.append(
$('<hr />')
);
}
});
// Add horiz rule (line) fav_wikis1
$favWikiList.append(
$('<hr />')
);
// Add note after horiz rule (line)
$favWikiList.append(
$('<li>')
.text(fav_wikis2note)
.css('font-style', 'italic')
);
// Add links from fav_wikis2 list
Object.keys(window.fav_wikis2).forEach(function (key) {
var wiki_type2 = "fandom.com";
var subdomain2 = "www";
/* Wiki type is fandom.com unless set otherwise by wiki_types key list above */
if (window.wiki_types[key]) {
wiki_type2 = window.wiki_types[key];
}
// Need to special case because key can't use dashes
if (key == 'littlewitchacademia') {
subdomain2 = 'little-witch-academia';
}
else {
subdomain2 = key;
}
// Add wiki and admin list links to part 2 of sub menu 1
$favWikiList.append(
$('<li>').append(
$('<a>')
.attr('href', '//' + subdomain2 + '.' + wiki_type2 + '/')
.attr('target', '_blank')
.text(window.fav_wikis2[key])
.append(
$('<sup>')
.prepend(' ')
.append(
$('<a>')
.attr('href', '//' + subdomain2 + '.' + wiki_type2 + '/wiki/Special:ListAdmins')
.attr('target', '_blank')
.text('(Admins)')
)
)
)
);
});
/* Don't try to add My Favorite Wikis menu, if it appears to already exist */
if (!window.fav_wikis2 || $('#MyFavWikis2').length) {
return;
}
/* Start building My Other Wikis menu */
var $favWikiList2 = $('<ul>').addClass('wds-list wds-is-linked');
var $favWikis2 = $('<li>')
//.attr('id', 'MyFavWikis2')
.addClass('wds-dropdown-level-2')
.append(
$('<a>')
.attr('href', '#')
.addClass('wds-dropdown-level-2__toggle')
.attr('data-tracking', 'custom-level-2')
.append(
$('<span>').text('My Other Wikis'),
$('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="12" height="12" class="wds-icon wds-icon-tiny wds-dropdown-chevron"><path d="M6.003 10.002a.997.997 0 0 1-.707-.293L.293 4.706a1 1 0 1 1 1.414-1.414l4.296 4.295 4.293-4.293A1 1 0 1 1 11.71 4.71l-5 5a.997.997 0 0 1-.707.293" fill-rule="evenodd"></path></svg>')
),
$('<div>')
.addClass('wds-is-not-scrollable wds-dropdown-level-2__content')
.append($favWikiList2)
);
// Add note at top for fav_wikis3
$favWikiList2.append(
$('<li>')
.text(fav_wikis3note)
.css('font-style', 'italic')
);
// Add links from fav_wikis3 list
Object.keys(window.fav_wikis3).forEach(function (key) {
var wiki_type3 = "fandom.com";
var subdomain3 = "www";
/* Wiki type is fandom.com unless set otherwise by wiki_types key list above */
if (window.wiki_types[key]) {
wiki_type3 = window.wiki_types[key];
}
// Need to special case because key can't use dashes
if (key == 'shieldhero') {
subdomain3 = 'shield-hero';
}
else if (key == 'steinsgate') {
subdomain3 = 'steins-gate';
}
//else if (key == 'toradora') {
// subdomain3 = 'tora-dora';
//}
else {
subdomain3 = key
}
// Add wiki and admin list links to part 1 (part 3 overall) of sub menu 2
$favWikiList2.append(
$('<li>').append(
$('<a>')
.attr('href', '//' + subdomain3 + '.' + wiki_type3 + '/')
.attr('target', '_blank')
.text(window.fav_wikis3[key])
.append(
$('<sup>')
.prepend(' ')
.append(
$('<a>')
.attr('href', '//' + subdomain3 + '.' + wiki_type3 + '/wiki/Special:ListAdmins')
.attr('target', '_blank')
.text('(Admins)')
)
)
)
);
});
// Add horiz rule (line) fav_wikis3
$favWikiList2.append(
$('<hr />')
);
// Add note after horiz rule (line)
$favWikiList2.append(
$('<li>')
.text(fav_wikis4note)
.css('font-style', 'italic')
);
// Add links from fav_wikis4 list
Object.keys(window.fav_wikis4).forEach(function (key) {
var wiki_type4 = "fandom.com";
var subdomain4 = "www";
/* Wiki type is fandom.com unless set otherwise by wiki_types key list above */
if (window.wiki_types[key]) {
wiki_type4 = window.wiki_types[key];
}
// Need to special case because key can't use dashes
if (key == 'arakawaunderthebridge') {
subdomain4 = 'arakawa-under-the-bridge';
}
else if (key == 'sidonianokishi') {
subdomain4 = 'sidonia-no-kishi';
}
else {
subdomain4 = key;
}
// Add wiki and admin list links to part 2 (part 4 overall) of sub menu 2
$favWikiList2.append(
$('<li>').append(
$('<a>')
.attr('href', '//' + subdomain4 + '.' + wiki_type4 + '/')
.attr('target', '_blank')
.text(window.fav_wikis4[key])
.append(
$('<sup>')
.prepend(' ')
.append(
$('<a>')
.attr('href', '//' + subdomain4 + '.' + wiki_type4 + '/wiki/Special:ListAdmins')
.attr('target', '_blank')
.text('(Admins)')
)
)
)
);
});
/* Add completed other wikis (favWikis2) HTML blob to profile menu */
$('div.wds-global-navigation__user-menu > div.wds-dropdown__content > ul.wds-list > li:nth-child(3)')
.before($favWikis2);
/* Add completed fav wikis (favWikis) HTML blob to profile menu */
$('div.wds-global-navigation__user-menu > div.wds-dropdown__content > ul.wds-list > li:nth-child(3)')
.before($favWikis);
});
/* Add three favorite wikis links to profile menu in modernized UI */
/* DISABLE to test submenu version
$(function () {
$('div.wds-global-navigation__user-menu > div.wds-global-navigation__dropdown-content > ul.wds-list > li:nth-child(3)').not('#MyFavWikis').before('<li id="MyFavWikis" style="padding-top:0.8em;"><span style="color:gray; padding:0 0 0.8em 0.6em;">My Favorite Wikis</span><div class="wds-is-not-scrollable" style="font-size:80%; line-height:120%; padding:0.5em 0 0.5em 2.6em;"><a href="http://downtonabbey.wikia.com/" class="wds-global-navigation__dropdown-link" data-tracking-label="myfavwikis.1">Downton Abbey Wiki</a><br/><a href="http://expanse.wikia.com/" class="wds-global-navigation__dropdown-link" data-tracking-label="myfavwikis.2">Expanse Abbey Wiki</a><br/><a href="http://wow.wikia.com/" class="wds-global-navigation__dropdown-link" data-tracking-label="myfavwikis.3">WoWWiki</a></div></li>');
});
*/
//A script that adds a "Go to bottom" button in the footer of the Oasis theme.
//Based on BackToTop by Noemon from Dead Space Wiki
(function(window, $, mw) {
'use strict';
var translations = {
// ar: 'انتقل إلى أسفل',
// af: 'Gaan na onder',
// be: 'перайсці ўніз',
// bg: 'Отидете надолу',
// bs: 'Idite dole',
// ca: 'Vés a baix',
// cs: 'Jděte dolů',
// da: 'Gå til bunden',
// de: 'Gehe nach unten',
// el: 'Πηγαίνετε κάτω',
en: 'Go to bottom'//,
// eo: 'Iru al fundo',
// es: 'Ir al fondo',
// eu: 'Joan beherantz',
// fa: 'به پایین بروید',
// fr: 'Aller au fond',
// ga: 'Téigh go dtí bun',
// gl: 'Ir a fondo',
// hi: 'नीचे जाएं',
// hr: 'Idi na dno',
// id: 'Ke bawah',
// it: 'Vai in basso',
// ja: '下に行く',
// ko: '하단으로 이동',
// la: 'Ad deorsum',
// mk: 'Оди до дното',
// ms: 'Pergi ke bawah',
// nl: 'Ga naar beneden',
// no: 'Gå til bunnen','
// pl: 'Przejdź na dół',
// pt: 'Ir para o fundo',
// 'pt-br': 'Ir para o fundo',
// ro: 'Du-te jos',
// ru: 'Вниз',
// sco: 'Rach gu bonn',
// sl: 'Pojdi do dna',
// sr: 'Иди до дна',
// sv: 'Gå till botten',
// tl: 'Pumunta sa ibaba',
// uk: 'Іди донизу',
// vi: 'Đi xuống dưới cùng',
// zh: '转到底部',
// 'zh-hans': '转到底部',
// 'zh-hant': '轉到底部'
},
buttonStart = typeof window.JumpToBottomStart === 'number' ?
window.JumpToBottomStart :
0,
scrollSpeed = typeof window.JumpToBottomSpeed === 'number' ?
window.JumpToBottomSpeed :
600,
fadeSwitch = typeof window.JumpToBottomFade === 'number' ?
window.JumpToBottomFade :
600,
theText = (typeof window.JumpToBottomText === 'string' && window.JumpToBottomText) ||
translations['en'] || translations.en;
if (window.JumpToBottomLoaded) { return }
window.JumpToBottomLoaded = true;
$(addJumpToBottom);
function hideFade() {
$("#jumptobottom").hide();
$(window).scroll(function() {
if (($(this).scrollTop() > buttonStart) && ($(this).scrollTop() < ($('#mw-content-text').height() - $('.wds-global-footer').height()))) {
switch (fadeSwitch) {
case 0:
$('#jumptobottom').show();
break;
default:
$('#jumptobottom').fadeIn();
break;
}
} else {
switch (fadeSwitch) {
case 0:
$('#jumptobottom').hide();
break;
default:
$('#jumptobottom').fadeOut();
break;
}
}
});
}
$('body').on('click', '#jumptobottom', function() {
$('body,html').animate({
scrollTop: $('#mw-content-text').height() - $('.wds-global-footer').height() + 250
}, scrollSpeed);
return false;
});
function addJumpToBottom() {
if (skin == 'oasis') {
$('<li />', {
id: 'jumptobottom',
style: 'float: right; margin-top: -1px; border-right: none'
})
.append(
$('<button />', {
type: 'button',
style: 'height: 20px;',
text: theText
})
)
.appendTo('#WikiaBarWrapper .toolbar > .tools');
hideFade();
}
}
}(this, jQuery, mediaWiki));
/* ----- */
/* Purge button to left of page header edit button on modernized UI v2*/
$(function () {
var currServer = mw.config.get('wgServer');
var newPageName = wgPageName.replace(/\?/,"%3F");
var newTitle = wgTitle;
if (wgCanonicalNamespace) newTitle = wgCanonicalNamespace + ":" + wgTitle;
$('div.page-header__contribution-buttons > div.wds-button-group > a:first-child').not('#custom-purge').before('<a id="custom-purge" class="wds-button wds-is-squished wds-is-secondary" href="'+currServer+'/index.php?title=' + newPageName + '&action=purge" id="PurgeButton" style="margin-right:0.5em;"><span>Purge</span></a>');
});
/* Add Purge button to left of edit button profile page of modernized UI v2*/
$(function () {
var currServer = mw.config.get('wgServer');
var newPageName = wgPageName.replace(/\?/,"%3F");
var newTitle = wgTitle;
if (wgCanonicalNamespace) newTitle = wgCanonicalNamespace + ":" + wgTitle;
$('div.WikiaMainContentContainer > div.UserProfileActionButton > nav').not('#custom-purge').before('<a id="custom-purge" class="wikia-button" href="'+currServer+'/index.php?title=' + newPageName + '&action=purge" id="PurgeButton" style="margin-right:0.5em;"><span>Purge</span></a>');
});
/* History button for diffs */
/* (doesn't work on some namespaces like User: and User talk: */
/* because w:Special:MyPage/global.js and Special:MyPage/wikia.js */
/* never get loaded) */
$(function() {
$("h1:contains('Changes:')").after('<a class="wds-button wds-is-squished wds-is-secondary" data-id="history" href="/' + wgPageName + '?action=history" style="margin-left:1.5em;">History</a>');
})
/* Back to top button on Wikia bottom tool bar */
importScriptPage('MediaWiki:BackToTopButton/code.js', 'dev');
/* Edit button (classic editor) to right of page name header */
/* DISABLE, since you can now default to source editor, but still access new VE (but not old VE)
$(function () {
var currServer = mw.config.get('wgServer');
var newPageName = wgPageName.replace(/\?/,"\%3F");
var newTitle = wgTitle;
if (wgCanonicalNamespace) newTitle = wgCanonicalNamespace + ":" + wgTitle;
$('#WikiaPageHeader > h1').after('<div style="float:right; margin-right:12px;"><a class="wikia-button" href="'+currServer+'/index.php?title=' + newPageName + '&action=edit">Edit</a></div>');
});
*/
/* Purge link to right of page name header */
/* NOTE: Stopped working mid-2017
$(function () {
var currServer = mw.config.get('wgServer');
var newPageName = wgPageName.replace(/\?/,"\%3F");
var newTitle = wgTitle;
if (wgCanonicalNamespace) newTitle = wgCanonicalNamespace + ":" + wgTitle;
$('.tally > em').before('<span style="margin-right:6px;"><a href="'+currServer+'/index.php?title=' + newPageName + '&action=purge"><img src="http://images3.wikia.nocookie.net/wowwiki/images/8/88/Wiki-purge-icon_15.png"/><!-- Purge link--></a></span>'); */
/* PAGE TITLE LINK $('#WikiaPageHeader > h1').after('<div style="float:right;"><a href="http://images3.wikia.nocookie.net/wowwiki/images/8/88/Wiki-purge-icon_15.png/index.php?title=' + newPageName + '&action=purge"><img src="http://images3.wikia.nocookie.net/wowwiki/images/8/88/Wiki-purge-icon_15.png"/> ' + newTitle + '</a></div>'); */
/* });
*/
/**
* To use this script, install it and view: Special:InterLangList?filtertype=interlanguage
*/
if (mediaWiki.config.get('wgCanonicalSpecialPageName') === 'Blankpage' && $.getUrlVar('filtertype') === 'interlanguage') {
(function ($, mw) {
var url = mw.config.get('wgServer') + '/api.php?action=query&meta=siteinfo&siprop=interwikimap&format=json';
// get local interwiki map
$.getJSON(url, function (data) {
var interlanguageWikis = [],
map = data.query.interwikimap;
for (var i = 0, len = map.length; i < len; i++) {
if (map[i].language) {
interlanguageWikis[interlanguageWikis.length] = map[i];
}
}
// display results in an HTML table
$(function () {
// generate html
var wiki, link, html, message;
message = '<p>The ' + mw.config.get('wgSiteName') + ' appears to be available in ' + interlanguageWikis.length + ' language(s).</p><p>Do you know of a version of this wiki in a language not listed here? You can make a request <a title="Community Central:Interlanguage link requests" href="http://community.wikia.com/wiki/Community_Central:Interlanguage_link_requests">here</a> for it to be <a title="Help:Interlanguage links" href="http://community.wikia.com/wiki/Help:Interlanguage_links">interlanguage linked</a>.</p>';
html = '<div id="interlanguage-wikis-container">' + message + '<table id="interlanguage-wikis-table" class="wikitable"><thead><tr><th>Prefix</th><th>Language</th><th>URL</th></thead><tbody>';
for (var i = 0, len = interlanguageWikis.length; i < len; i++) {
wiki = interlanguageWikis[i];
link = wiki.url.substring(wiki.url.indexOf('http://') + 7);
link = link.substring(0, link.indexOf('/'));
link = '<a href="http://' + link + '">' + link + '</a>';
html += '<tr><td>' + wiki.prefix + '</td>' + '<td>' + wiki.language + '</td>' + '<td>' + link + '</td></tr>';
}
html += '</tbody></table></div>';
// insert html
document.title = 'Interlanguage wikis';
$('#firstHeading, #WikiaArticle h1').first().text('Interlanguage wikis');
$('#mw-content-text').html(html);
});
});
}(jQuery, mediaWiki));
}
/* Add Contributions to user drop down */
/* NOTE: Broken.
$(function() {
$('ul.AccountNavigation li:first-child ul.subnav li:first-child').after('<li><a href="/wiki/Special:Contributions/' + encodeURIComponent(wgUserName) + '">Contributions</a></li>');
});
*/
/* Convert "Anonymous" in Comments to IP address
from User:Monchoman45 */
$(function() {
var list = document.getElementsByTagName('a');
for(var i in list) {
if(list[i].href && list[i].href.indexOf('Special:Contributions/') && list[i].innerHTML == 'A Wikia contributor') {
list[i].innerHTML = list[i].href.substring(list[i].href.lastIndexOf('/') + 1, list[i].href.length);
}
}
});
/* END Convert "Anonymous" in Comments to IP address */
/* Adds a 'Back to page' link under the preview header when previewing an edit. */
$(function() {
if (wgAction == "submit") {
$('#WikiaEditBoxHeader p').clone().appendTo('#WikiaPageHeader:first-child');
}
});
/* Experimental auto signer http://dev.wikia.com/wiki/Sine */
/* Disable for now
importScriptPage('Sine/code.js', 'dev');
*/
/* See User:Fandyllic/langwikicheckerJS
for a copy of JS at Thread:484838 */