MediaWiki:Mobile.js: различия между версиями

Материал из Абдулопедии
Перейти к навигации Перейти к поиску
м
Метка: отменено
м (Отмена правки 9223, сделанной GodSatanist)
Метка: отмена
 
Строка 1: Строка 1:
/* All JavaScript here will be loaded for users of the mobile site */
/* 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() {
  var timer = setInterval(function() {

Текущая версия на 09:35, 13 февраля 2024

/* All JavaScript here will be loaded for users of the mobile site */

 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