Mediawiki:common.js

Вернуться

Строка 277: Строка 277:
     }  
     }  
})();
})();
/* Defer Marine Corps ------------------------------------------------------- */
if (mw.config.get('wgPageName') === 'MC:Страницы') {
    mw.loader.load('/index.php?title=MediaWiki:ScmcCatalog.css&action=raw&ctype=text/css', 'text/css');
    mw.loader.load('/index.php?title=MediaWiki:ScmcCatalog.js&action=raw&ctype=text/javascript');
}
if (mw.config.get('wgPageName') === 'MC:Сканер_ссылок') {
    mw.loader.load('/index.php?title=MediaWiki:ScmcScanner.css&action=raw&ctype=text/css', 'text/css');
    mw.loader.load('/index.php?title=MediaWiki:ScmcScanner.js&action=raw&ctype=text/javascript');
}
if (mw.config.get('wgPageName') === 'MC:Химия') {
    mw.loader.load('/index.php?title=MediaWiki:ScmcChemistry.css&action=raw&ctype=text/css', 'text/css');
    mw.loader.load('/index.php?title=MediaWiki:ScmcChemistry.js&action=raw&ctype=text/javascript');
}
if (mw.config.get('wgPageName') === 'MC:Руководство_редактора') {
    mw.loader.load('/index.php?title=MediaWiki:ScmcTraining.css&action=raw&ctype=text/css', 'text/css');
}
if (mw.config.get('wgPageName') === 'Бумажная_работа_СМ') {
    var paperworkVersion = Date.now();
    mw.loader.load(
        '/index.php?title=MediaWiki:ScmcPaperwork.css'
        + '&action=raw&ctype=text/css&v=' + paperworkVersion,
        'text/css'
    );
    mw.loader.load(
        '/index.php?title=MediaWiki:ScmcPaperwork.js'
        + '&action=raw&ctype=text/javascript&v=' + paperworkVersion
    );
}
(function () {
    if (typeof mw === 'undefined' || !window.document) return;
    function ready(fn) {
        if (document.readyState === 'complete' || document.readyState === 'interactive') {
            fn();
        } else {
            document.addEventListener('DOMContentLoaded', fn);
        }
    }
    function makeLink(page, title) {
        var a = document.createElement('a');
        if (/^https?:\/\//i.test(page)) {
            a.href = page;
        } else {
            a.href = mw.util.getUrl(page);
        }
        a.textContent = title || page;
        return a;
    }
    var guidePacks = {
        command: [
            ['Верховное_Командование', 'Верховное командование'],
            ['Орбитальное_оружие', 'Орбитальное оружие'],
            ['Военный_Закон', 'Военный закон'],
            ['Стандартные_Оперативные_Процедуры', 'СОП'],
            ['Бумажная_работа_СМ', 'Бумажная работа']
        ],
        support: [
            ['КоммуникацииСМ', 'Коммуникации'],
            ['МС_Шаттлы', 'Шаттлы'],
            ['Система_консоли_CAS', 'CAS'],
            ['Техника', 'Техника']
        ],
        pilot: [
            ['МС_Шаттлы', 'Шаттлы'],
            ['Система_консоли_CAS', 'CAS'],
            ['Снаряжение_на_борту', 'Снаряжение на борту'],
            ['Модификации', 'Модификации'],
            ['Подвесное_вооружение', 'Подвесное вооружение']
        ],
        transporter: [
            ['Техника', 'Техника']
        ],
        engineering: [
            ['СтроительствоСМ', 'Строительство'],
            ['Создание_утилит_и_машинерии_CM', 'Создание утилит и машинерии'],
            ['ЭлектроэнергияСМ', 'Электроэнергия'],
            ['Руководство_по_взломуСМ', 'Взлом'],
            ['Инженерный_инвентарьСМ', 'Инженерный инвентарь']
        ],
        ordnance: [
            ['Рецепты.CM', 'Рецепты'],
            ['ХимияCM', 'Химия']
        ],
        medical: [
            ['МедицинаСМ', 'Медицина'],
            ['ХимияCM', 'Химия'],
            ['Медицинский_инвентарьСМ', 'Медицинский инвентарь'],
            ['ПП_для_морпехов', 'ПП для морпехов']
        ],
        police: [
            ['Военный_Закон', 'Военный закон'],
            ['Стандартные_Оперативные_Процедуры', 'СОП'],
            ['Бумажная_работа_СМ', 'Бумажная работа'],
            ['Звания', 'Звания']
        ],
        cargo: [
            ['Снаряжение', 'Снаряжение'],
            ['Автоматы_с_снаряжением', 'Автоматы с снаряжением'],
            ['Таблица_грузовСМ', 'Таблица поставок']
        ],
        marines: [
            ['Курс_Молодого_Бойца', 'Курс молодого бойца'],
            ['ПП_для_морпехов', 'ПП для морпехов'],
            ['Снаряжение', 'Снаряжение'],
            ['КоммуникацииСМ', 'Коммуникации']
        ],
        service: [
            ['Рецепты.CM', 'Рецепты'],
            ['Гидропоника', 'Гидропоника'],
            ['Поставки', 'Поставки']
        ],
        survivor: [
            ['Основы_Выживания', 'Основы выживания']
        ],
other: [
['Рецепты.CM', 'Рецепты'],
['Гидропоника', 'Гидропоника'],
['Поставки', 'Поставки'],
['Основы_Выживания', 'Основы выживания']
],
        respondent: [
            ['Лор_СМ', 'Лор'],
            ['Бумажная_работа_СМ', 'Бумажная работа']
        ]
    };
    ready(function () {
        var boxes = document.querySelectorAll('.scmc-guide-pack');
        if (!boxes.length) return;
        Array.prototype.forEach.call(boxes, function (box) {
            if (box.getAttribute('data-rendered') === 'true') return;
            var packName = box.getAttribute('data-pack') || '';
            var pack = guidePacks[packName] || [];
            box.setAttribute('data-rendered', 'true');
            box.innerHTML = '';
            var title = document.createElement('div');
            title.className = 'scmc-guide-pack-title';
            title.textContent = 'Полезные материалы';
            box.appendChild(title);
            if (!pack.length) {
                var empty = document.createElement('div');
                empty.className = 'scmc-guide-pack-empty';
                empty.textContent = 'Материалы не указаны';
                box.appendChild(empty);
                return;
            }
            var list = document.createElement('ul');
            list.className = 'scmc-guide-pack-list';
            pack.forEach(function (item) {
                var li = document.createElement('li');
                li.appendChild(makeLink(item[0], item[1]));
                list.appendChild(li);
            });
            box.appendChild(list);
        });
    });
})();
/* Defer Marine Corps ----------------------------------------------------END */