Перейти к содержанию

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

Материал из GravityWiki
Новая страница: «Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице: $(function() { // Ждем загрузки правого меню mw.hook('wikipage.content').add(function() { // Находим правое меню (персональные инструменты) var personalTools = $('#p-personal, #p-views, #p-actions'...»
 
Нет описания правки
 
(не показано 16 промежуточных версий этого же участника)
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
$(function() {
$(function() {
    // Ждем загрузки правого меню
     mw.hook('wikipage.content').add(function() {
     mw.hook('wikipage.content').add(function() {
         // Находим правое меню (персональные инструменты)
    const personalTools = $('.vector-sticky-pinned-container');
         var personalTools = $('#p-personal, #p-views, #p-actions');
       
        let xhr = new XMLHttpRequest();
         xhr.open("GET", "https://gravitycraft.ru/api/external/v1/sidebar-info", true);
        xhr.responseType = 'json';
        xhr.send();
          
        xhr.onload = function() {
       
let responseObj = xhr.response;
console.log(responseObj)
        let sidebarWrapper = $('<div class="sidebar__wrapper"></div>');
       
        let monitoringWrapper = $('<div class="monitoring__wrapper"></div>');
       
        for (version in responseObj.monitoring.servers) {
        for (serverKey in responseObj.monitoring.servers[version]) {
        let serverObj = responseObj.monitoring.servers[version][serverKey];
        monitoringWrapper.append(`
        <a href="${serverObj.url}" target="_blank" class="server__wrapper">
        <img class="server__img" src="${serverObj.icon}" alt="serverIcon" />
        <div class="server__info">
        <div class="server__info-title">${serverObj.name}</div>
        <div class="server__info-version">Версия: ${serverObj.version}</div>
        </div>
        <div class="server__online">
        ${serverObj.online}
        </div>
        </a>
        `);
        }
        }
        sidebarWrapper.append(monitoringWrapper);
       
        personalTools.last().prepend(sidebarWrapper);
};
       
          
          
        if (personalTools.length) {
            // Создаем кастомные пункты
            var customTools = `
                <div class="portal" id="p-custom-tools">
                    <h3>Быстрые действия</h3>
                    <div class="body">
                        <ul>
                            <li id="n-custom-recentchanges">
                                <a href="/wiki/Special:RecentChanges">📄 Последние изменения</a>
                            </li>
                            <li id="n-custom-upload">
                                <a href="/wiki/Special:Upload">📤 Загрузить файл</a>
                            </li>
                            <li id="n-custom-allpages">
                                <a href="/wiki/Special:AllPages">📚 Все страницы</a>
                            </li>
                        </ul>
                    </div>
                </div>
            `;
              
              
            // Вставляем после существующих инструментов
            personalTools.last().after(customTools);
        }
     });
     });
});
});

Текущая версия от 22:51, 15 октября 2025

/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
$(function() {
    mw.hook('wikipage.content').add(function() {
    	const personalTools = $('.vector-sticky-pinned-container');
        
        let xhr = new XMLHttpRequest();
        xhr.open("GET", "https://gravitycraft.ru/api/external/v1/sidebar-info", true);
        xhr.responseType = 'json';
        xhr.send();
        
        xhr.onload = function() {
        	
			let responseObj = xhr.response;
			console.log(responseObj)
	        let sidebarWrapper = $('<div class="sidebar__wrapper"></div>');
	        
	        let monitoringWrapper = $('<div class="monitoring__wrapper"></div>');
	        
	        for (version in responseObj.monitoring.servers) {
	        	for (serverKey in responseObj.monitoring.servers[version]) {
	        		let serverObj = responseObj.monitoring.servers[version][serverKey];
		        	monitoringWrapper.append(`
		        		<a href="${serverObj.url}" target="_blank" class="server__wrapper">
		        			<img class="server__img" src="${serverObj.icon}" alt="serverIcon" />
		        			<div class="server__info">
		        				<div class="server__info-title">${serverObj.name}</div>
		        				<div class="server__info-version">Версия: ${serverObj.version}</div>
		        			</div>
		        			<div class="server__online">
		        				${serverObj.online}
		        			</div>
		        		</a>
		        	`);
	        	}
	        }
	        sidebarWrapper.append(monitoringWrapper);
	        
	        personalTools.last().prepend(sidebarWrapper);
		};
        
        
            
    });
});