MediaWiki:Mobile.js
Версия от 06:41, 11 января 2024; GodSatanist (обсуждение | вклад)
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
/* All JavaScript here will be loaded for users of the mobile site */
/**********Countdown**********/
;(function (module, mw, $, undefined) {
'use strict';
var translations = $.extend(true, {
// English (English)
en: {
and: 'и',
second: 'секунда',
seconds: 'секунд',
minute: 'минута',
minutes: 'минут',
hour: 'час',
hours: 'часов',
day: 'день',
days: 'дней'
}
}, module.translations || {}),
i18n = translations[
mw.config.get('wgContentLanguage')
] || translations.en;
var countdowns = [];
var NO_LEADING_ZEROS = 1;
function output (i, diff) {
/*jshint bitwise:false*/
var delta, result, parts = [];
delta = diff % 60;
parts.unshift(delta + ' ' + i18n[delta === 1 ? 'second' : 'seconds']);
diff = Math.floor(diff / 60);
delta = diff % 60;
parts.unshift(delta + ' ' + i18n[delta === 1 ? 'minute' : 'minutes']);
diff = Math.floor(diff / 60);
delta = diff % 24;
parts.unshift(delta + ' ' + i18n[delta === 1 ? 'hour' : 'hours' ]);
diff = Math.floor(diff / 24);
parts.unshift(diff + ' ' + i18n[diff === 1 ? 'day' : 'days' ]);
result = parts.pop();
if (countdowns[i].opts & NO_LEADING_ZEROS) {
while (parts.length && parts[0][0] === '0') {
parts.shift();
}
}
if (parts.length) {
result = parts.join(', ') + ' ' + i18n.and + ' ' + result;
}
countdowns[i].node.text(result);
}
function end(i) {
var c = countdowns[i].node.parent();
switch (c.attr('data-end')) {
case 'remove':
c.remove();
return true;
case 'stop':
output(i, 0);
return true;
case 'toggle':
var toggle = c.attr('data-toggle');
if (toggle && $(toggle).length) {
$(toggle).css('display', 'inline');
c.css('display', 'inline');
return true;
}
break;
case 'callback':
var callback = c.attr('data-callback');
if (callback && $.isFunction(module[callback])) {
output(i, 0);
module[callback].call(c);
return true;
}
break;
}
countdowns[i].countup = true;
output(i, 0);
return false;
}
function update () {
var now = Date.now();
var countdownsToRemove = [];
$.each(countdowns.slice(0), function (i, countdown) {
var diff = Math.floor((countdown.date - now) / 1000);
if (diff <= 0 && !countdown.countup) {
if (end(i)) countdownsToRemove.push(i);
} else {
output(i, Math.abs(diff));
}
});
var x;
while((x = countdownsToRemove.pop()) !== undefined) {
countdowns.splice(x, 1);
}
if (countdowns.length) {
window.setTimeout(function () {
update();
}, 1000);
}
}
function getOptions (node) {
/*jshint bitwise:false*/
var text = node.parent().attr('data-options'),
opts = 0;
if (text) {
if (/no-leading-zeros/.test(text)) {
opts |= NO_LEADING_ZEROS;
}
}
return opts;
}
$(function () {
var countdown = $('.countdown');
if (!countdown.length) return;
$('.nocountdown').css('display', 'none');
countdown
.css('display', 'inline')
.find('.countdowndate')
.each(function () {
var $this = $(this),
date = (new Date($this.text())).valueOf();
if (isNaN(date)) {
$this.text('BAD DATE');
return;
}
countdowns.push({
node: $this,
opts: getOptions($this),
date: date,
});
});
if (countdowns.length) {
update();
}
});
}(window.countdownTimer = window.countdownTimer || {}, mediaWiki, jQuery));
//
var timer = setInterval(function() {
if ($('.menu ul:first').length) {
console.log("mobile menu exists");
clearInterval(timer);
$('.menu ul:first').after(
'<ul class="level1"> \
<li> \
<a href="#" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-articles"> \
<span>Статьи по категориям</span> \
</a> \
</li> \
<ul class ="level2"> \
<li> \
<a href="/Category:Абдулокультура" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулокультура</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулонаука" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулонаука</span> \
</a> \
</li> \
<li> \
<a href="/Category:Грешники" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Грешники</span> \
</a> \
</li> \
<li> \
<a href="/Category:Великие грешники" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Великие грешники</span> \
</a> \
</li> \
<li> \
<a href="/Category:Грехоболезни" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Грехоболезни</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулоистория" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулоистория</span> \
</a> \
</li> \
<li> \
<a href="/Category:Сониблядство" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Сониблядство</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулоосновы" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулоосновы</span> \
</a> \
</li> \
<li> \
<a href="/Category:Юмор" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Юмор</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулопередачи" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулопередачи</span> \
</a> \
</li> \
<li> \
<a href="/Category:Мерзость" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Мерзость</span> \
</a> \
</li> \
<li> \
<a href="/Category:Автономии адептов" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Автономии адептов</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулопредатели" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулопредатели</span> \
</a> \
</li> \
<li> \
<a href="/Category:Негативные явления" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Негативные явления</span> \
</a> \
</li> \
<li> \
<a href="/Category:Абдулоиконы" \
class="mw-ui-icon mw-ui-icon-before"> \
<span>Абдулоиконы</span> \
</a> \
</li> \
</ul> \
</ul> \
<ul> \
<li> \
<a href="/Абдулопедия:Читать_Биборан" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-read"> \
<span>Читать Биборан</span> \
</a> \
</li> \
</ul> \
<ul> \
<li> \
<a href="/Special:RecentChanges" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-rchanges"> \
<span>Свежие правки</span> \
<a href="/Абдулопедия:Устав" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-rules"> \
<span>Правила Абдулопедии</span> \
<a href="/Абдулопедия:Поддержать_проект" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-donate"> \
<span>Поддержать Абдулопедию</span> \
<a href="/Служебная:Contact" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-contact"> \
<span>Написать нам</span> \
<a href="/Абдулопедия:Создать_статью" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-newarticle"> \
<span>Создать статью</span> \
<a href="/Абдулопедия:Чем_помочь%3F" \
class="mw-ui-icon mw-ui-icon-before mw-ui-icon-minerva-help"> \
<span>Чем нам можно помочь</span> \
</a> \
</li> \
</ul>'
);
$(".menu").find(".level2").hide(); // hide level2 until level1 is clicked
$(".level1").click(function(event){
$(this).find(".level2").slideToggle(500);
}); // if level1 is clicked, dropdown level2
}
}, 100); // check every 100ms