Dantes (обсуждение | вклад) Нет описания правки |
Dantes (обсуждение | вклад) Нет описания правки |
||
| Строка 198: | Строка 198: | ||
var tabs = document.querySelectorAll('.nt-tab'); | var tabs = document.querySelectorAll('.nt-tab'); | ||
var contents = document.querySelectorAll('.nt-tab-content'); | var contents = document.querySelectorAll('.nt-tab-content'); | ||
for (var i = 0; i < tabs.length; i++) { | for (var i=0;i<tabs.length;i++){ | ||
tabs[i].onclick = function() { | tabs[i].onclick = function() { | ||
for (var j = 0; j < tabs.length; j++) { | for (var j=0;j<tabs.length;j++){ | ||
tabs[j].className = tabs[j].className.replace(' active',''); | tabs[j].className = tabs[j].className.replace(' active',''); | ||
contents[j].className = contents[j].className.replace(' active',''); | contents[j].className = contents[j].className.replace(' active',''); | ||
| Строка 206: | Строка 206: | ||
this.className += ' active'; | this.className += ' active'; | ||
var target = document.getElementById(this.getAttribute('data-target')); | var target = document.getElementById(this.getAttribute('data-target')); | ||
if (target) target.className += ' active'; | if(target) target.className += ' active'; | ||
}; | }; | ||
} | |||
var rows = document.querySelectorAll('.scan-row'); | |||
for (var k=0;k<rows.length;k++){ | |||
(function(i){ | |||
setTimeout(function(){ | |||
rows[i].style.opacity = 1; | |||
}, i*200); | |||
})(k); | |||
} | } | ||
}); | }); | ||
Версия от 11:53, 24 августа 2025
/*Загрузка АУДИО*/
$(function () {
var players = document.getElementsByClassName('audio-player');
for (var i = 0; i < players.length; i++) {
var src = players[i].getAttribute('data-src');
if (src) {
var audio = document.createElement('audio');
audio.setAttribute('controls', 'controls');
audio.setAttribute('preload', 'none');
var source = document.createElement('source');
source.setAttribute('src', src);
source.setAttribute('type', 'audio/mpeg');
audio.appendChild(source);
players[i].appendChild(audio);
}
}
});
/* Подгрузка внешних css js */
mw.loader.using('mediawiki.util', function() {
function getFilesFromUrl(param) {
if (!param) return [];
return param.split('|').map(function(file) {
return file.trim();
});
}
function getBaseUrl() {
var server = mw.config.get('wgServer').replace(/^http:/, 'https:');
var script = mw.config.get('wgScript');
return server + script + '?action=raw&ctype=text/';
}
function isValidExtension(ext) {
return ext === 'js' || ext === 'css';
}
function getFileUrl(file) {
var prefix = file.indexOf('MediaWiki:') === 0 ? 'MediaWiki:' : 'User:' + (mw.config.get('wgUserName') || '') + '/';
var fullName = file.indexOf(':') > -1 ? file : prefix + file;
var ext = file.split('.').pop().toLowerCase();
if (!isValidExtension(ext)) {
console.error('Недопустимое расширение файла:', file);
return null;
}
var timestamp = new Date().getTime(); // Добавляем временную метку для удаления кэширования
return getBaseUrl() + (ext === 'js' ? 'javascript' : 'css') + '&title=' + encodeURIComponent(fullName) + '&_=' + timestamp;
}
function loadFiles(files) {
files.forEach(function(file) {
var url = getFileUrl(file);
if (url) {
var ext = file.split('.').pop().toLowerCase();
mw.loader.load(url, 'text/' + (ext === 'js' ? 'javascript' : 'css'));
}
});
}
var params = mw.util.getParamValue('use');
var files = getFilesFromUrl(params);
loadFiles(files);
});
/* Лого сайта */
(function() {
var createLogo = function(url, imgSrc, title) {
var container = document.createElement('div'),
link = document.createElement('a'),
img = document.createElement('img');
link.className = 'mw-logo citizen-header__button';
link.href = mw.util.getUrl(url);
link.title = title;
img.className = 'mw-logo-icon';
img.src = imgSrc;
img.alt = '';
img.setAttribute('aria-hidden', 'true');
img.width = 32;
img.height = 32;
link.appendChild(img);
container.appendChild(link);
return container;
};
var logoContainer = document.querySelector('.citizen-header__logo');
if (logoContainer) {
// Очистка существующего содержимого
while (logoContainer.firstChild) {
logoContainer.removeChild(logoContainer.firstChild);
}
var logo1 = createLogo(
'Заглавная_страница',
mw.config.get('wgScriptPath') + '/resources/assets/logo.png',
'Перейти на заглавную страницу'
);
logo1.className = 'logo1';
var logo2 = createLogo(
'Marine_Corps',
mw.config.get('wgScriptPath') + '/images/0/0d/CMlog.png',
'Перейти на CM'
);
logo2.className = 'logo2';
// Добавление в DOM
logoContainer.appendChild(logo1);
logoContainer.appendChild(logo2);
}
})();
/* Перенос page-info в footer-places */
var footerPlaces = document.getElementById('footer-places');
var pageInfo = document.querySelector('.page-info');
if (footerPlaces && pageInfo) {
footerPlaces.insertAdjacentElement('afterend', pageInfo.cloneNode(true));
pageInfo.parentNode.removeChild(pageInfo);
}
/* Логика цвета через headerColor */
var headerColorElement = document.querySelector('.headerColor');
if (headerColorElement) {
var isValidColor = function(color) {
var s = new Option().style;
s.color = color;
return s.color !== '';
};
var content = headerColorElement.textContent.split('|');
if (content.length === 2 && isValidColor(content[0]) && isValidColor(content[1])) {
var applyStyles = function() {
var headers = document.querySelectorAll('.citizen-section-heading, .citizen-section-heading--collapsed');
for (var i = 0; i < headers.length; i++) {
var header = headers[i],
indicator = header.querySelector('.citizen-section-indicator'),
headline = header.querySelector('.mw-headline');
if (header.classList.contains('citizen-section-heading--collapsed')) {
if (indicator) {
indicator.style.cssText = 'background: black; box-shadow: unset;';
}
} else if (indicator && headline) {
indicator.style.cssText = 'background: ' + content[1] + '; box-shadow: 0 0 20px 0px ' + content[1] + 'cc;';
headline.style.cssText = 'border-image: linear-gradient(to right top, ' + content[0] + ', black); border-image-slice: 1;';
}
}
};
applyStyles();
document.body.addEventListener('click', applyStyles, false);
}
}
/* Sidebar для ролей */
var jobsContainer = document.querySelector('.JobsTableContainer');
if (jobsContainer && jobsContainer.innerHTML.trim()) {
var bodyContent = document.getElementById('bodyContent');
if (bodyContent) {
bodyContent.insertAdjacentHTML('beforebegin', jobsContainer.innerHTML);
var jobTable = document.getElementById('IdJobsTableContainer1');
if (jobTable) {
jobTable.id = 'IdJobsTableContainer2';
}
}
}
/* Хронология */
if (window.jQuery) {
jQuery(function($) {
$('.timeline-header').on('click', function() {
$(this).next('.timeline-content').slideToggle();
}).trigger('click');
});
}
/*Данте страница*/
mw.loader.using('mediawiki.util', function() {
var tabs = document.querySelectorAll('.nt-tab');
var contents = document.querySelectorAll('.nt-tab-content');
for (var i=0;i<tabs.length;i++){
tabs[i].onclick = function() {
for (var j=0;j<tabs.length;j++){
tabs[j].className = tabs[j].className.replace(' active','');
contents[j].className = contents[j].className.replace(' active','');
}
this.className += ' active';
var target = document.getElementById(this.getAttribute('data-target'));
if(target) target.className += ' active';
};
}
var rows = document.querySelectorAll('.scan-row');
for (var k=0;k<rows.length;k++){
(function(i){
setTimeout(function(){
rows[i].style.opacity = 1;
}, i*200);
})(k);
}
});