MediaWiki:Common.js: відмінності між версіями
Wiki (обговорення | внесок) Немає опису редагування |
Wiki (обговорення | внесок) Немає опису редагування |
||
| Рядок 871: | Рядок 871: | ||
// Додавання елементів у бічне меню для всіх користувачів | |||
// Додавання елементів | function addMenuItemsToAllUsers() { | ||
function | const menuContainer = document.querySelector('#mw-mf-page-left'); | ||
const | |||
if ( | if (menuContainer) { | ||
// Знаходимо список навігації | // Знаходимо основний список навігації (який видно всім) | ||
const | const mainNavList = menuContainer.querySelector('#p-navigation'); | ||
if ( | if (mainNavList) { | ||
// | // Перевіряємо чи вже додано наші елементи | ||
const | const existingItems = mainNavList.querySelectorAll('.toggle-list-item'); | ||
let hasMainPage = false; | |||
let hasRandomPage = false; | |||
const | existingItems.forEach(item => { | ||
' | const text = item.textContent; | ||
' | if (text.includes('Головна') || text.includes('Домашня')) { | ||
hasMainPage = true; | |||
); | } | ||
if (text.includes('Випадкова')) { | |||
hasRandomPage = true; | |||
} | |||
}); | |||
// Додаємо | // Додаємо Головну сторінку якщо немає | ||
if (!hasMainPage) { | |||
const mainPageItem = document.createElement('li'); | |||
mainPageItem.className = 'toggle-list-item'; | |||
mainPageItem.innerHTML = ` | |||
<a class="toggle-list-item__anchor menu__item--mainpage" | |||
href="/w/index.php/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0" | |||
data-mw="interface"> | |||
<span class="minerva-icon minerva-icon--home"></span> | |||
<span class="toggle-list-item__label">Головна сторінка</span> | |||
</a> | |||
`; | |||
mainNavList.prepend(mainPageItem); | |||
} | |||
// Додаємо Випадкову статтю якщо немає | |||
if (!hasRandomPage) { | |||
const randomPageItem = document.createElement('li'); | |||
randomPageItem.className = 'toggle-list-item'; | |||
randomPageItem.innerHTML = ` | |||
<a class="toggle-list-item__anchor menu__item--randompage" | |||
href="/w/index.php/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%B8%D0%BF%D0%B0%D0%B4%D0%BA%D0%BE%D0%B2%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0" | |||
data-mw="interface"> | |||
<span class="minerva-icon minerva-icon--die"></span> | |||
<span class="toggle-list-item__label">Випадкова стаття</span> | |||
</a> | |||
`; | |||
// Вставляємо після Головної сторінки або на початок | |||
const mainPage = mainNavList.querySelector('.menu__item--mainpage'); | |||
if (mainPage) { | |||
mainPage.closest('.toggle-list-item').after(randomPageItem); | |||
} else { | |||
mainNavList.prepend(randomPageItem); | |||
} | |||
} | |||
} | } | ||
} | } | ||
} | } | ||
// | // Запускаємо при завантаженні та при відкритті меню | ||
function | document.addEventListener('DOMContentLoaded', function() { | ||
addMenuItemsToAllUsers(); | |||
const | // Слідкуємо за відкриттям меню | ||
const menuCheckbox = document.querySelector('#main-menu-input'); | |||
if (menuCheckbox) { | |||
menuCheckbox.addEventListener('change', function() { | |||
if (this.checked) { | |||
setTimeout(addMenuItemsToAllUsers, 100); | |||
} | |||
}); | |||
} | |||
// Також перевіряємо при зміні стану авторизації | |||
} | setInterval(addMenuItemsToAllUsers, 1000); | ||
}); | |||