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

мНет описания правки
Нет описания правки
Строка 1137: Строка 1137:
function buildWikitext(text, projectName) {
function buildWikitext(text, projectName) {
return '{{#vardefine:JsonPath|' + projectName + '}}' + text;
return '{{#vardefine:JsonPath|' + projectName + '}}' + text;
}
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);
}
(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);
return form;
}
function appendToPortletBody(projectMenu) {
var portletList = document.querySelector('#mw-content .mw-portlet-body ul');
if (portletList) {
portletList.appendChild(projectMenu);
}
}
function appendToAssociatedPages(projectMenu) {
var associatedBody = document.querySelector('#p-associated-pages .mw-portlet-body');
if (!associatedBody) return;
var li = document.createElement('li');
li.className = 'js-project-selection-item';
li.appendChild(projectMenu);
associatedBody.appendChild(li);
}
}


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


var form = document.createElement('form');
var menu1 = createProjectMenu(projects, activeProject);
form.className = 'js-project-menu';
appendToPortletBody(menu1);
 
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) {
var menu2 = createProjectMenu(projects, activeProject);
menuNode.addEventListener('change', function (event) {
appendToAssociatedPages(menu2);
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') {