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

мНет описания правки
Нет описания правки
Метки: с мобильного устройства из мобильной версии через расширенный мобильный режим
 
(не показано 6 промежуточных версий этого же участника)
Строка 1162: Строка 1162:
placeholder.textContent = 'Ошибка загрузки страницы.';
placeholder.textContent = 'Ошибка загрузки страницы.';
});
});
}
function createProjectMenu(projects, activeProject) {
var form = document.createElement('form');
form.className = 'js-project-menu';
for (var j = 0; j < projects.length; j++) {
var projectName = projects[j];
var projectId = 'project-' + normalizeIdPart(projectName);
var div = document.createElement('div');
var input = document.createElement('input');
input.type = 'radio';
input.name = 'js-project-selection';
input.value = projectName;
input.id = projectId;
if (projectName === activeProject) {
input.checked = true;
}
var label = document.createElement('label');
label.htmlFor = projectId;
label.textContent = projectName;
div.appendChild(input);
div.appendChild(label);
form.appendChild(div);
}
form.addEventListener('change', function (event) {
var target = event.target;
if (!target || target.tagName !== 'INPUT') return;
if (target.type !== 'radio') return;
if (target.name !== 'js-project-selection') return;
if (!target.checked) return;
refreshForProject(target.value);
});
return form;
}
function ensureAssociatedPagesContainer() {
var associatedPages = document.getElementById('p-associated-pages');
if (associatedPages) {
return associatedPages;
}
var headingHolder = document.querySelector('.heading-holder');
var pageHeading = document.querySelector('.heading-holder .page-heading');
if (!headingHolder) {
return null;
}
associatedPages = document.createElement('ul');
associatedPages.id = 'p-associated-pages';
associatedPages.className = 'minerva__tab-container';
if (pageHeading && pageHeading.parentNode === headingHolder) {
if (pageHeading.nextSibling) {
headingHolder.insertBefore(associatedPages, pageHeading.nextSibling);
} else {
headingHolder.appendChild(associatedPages);
}
} else {
headingHolder.appendChild(associatedPages);
}
return associatedPages;
}
function getTargetContainers() {
var targets = [];
var portletList = document.querySelector('#mw-content .mw-portlet-body ul');
if (portletList) {
targets.push(portletList);
}
var associatedPages = ensureAssociatedPagesContainer();
if (associatedPages) {
targets.push(associatedPages);
}
return targets;
}
}


Строка 1200: Строка 1288:
}
}


var form = document.createElement('form');
var targets = getTargetContainers();
form.className = 'js-project-menu';
for (var t = 0; t < targets.length; t++) {
 
targets[t].appendChild(createProjectMenu(projects, activeProject));
for (var j = 0; j < projects.length; j++) {
var projectName = projects[j];
var projectId = 'project-' + normalizeIdPart(projectName);
 
var div = document.createElement('div');
 
var input = document.createElement('input');
input.type = 'radio';
input.name = 'js-project-selection';
input.value = projectName;
input.id = projectId;
 
if (projectName === activeProject) {
input.checked = true;
}
 
var label = document.createElement('label');
label.htmlFor = projectId;
label.textContent = projectName;
 
div.appendChild(input);
div.appendChild(label);
form.appendChild(div);
}
 
var portletList = document.querySelector('#mw-content .mw-portlet-body ul');
if (portletList) {
portletList.appendChild(form);
}
}
(function (menuNode) {
menuNode.addEventListener('change', function (event) {
var target = event.target;
if (!target || target.tagName !== 'INPUT') return;
if (target.type !== 'radio') return;
if (target.name !== 'js-project-selection') return;
if (!target.checked) return;
refreshForProject(target.value);
});
})(form);


if (preferredProject && preferredNorm !== 'corvax') {
if (preferredProject && preferredNorm !== 'corvax') {