MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) Нет описания правки Метки: с мобильного устройства из мобильной версии через расширенный мобильный режим |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 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 getTargetContainers() { | |||
var targets = []; | |||
var portletList = document.querySelector('#mw-content .mw-portlet-body ul'); | |||
if (portletList) { | |||
targets.push(portletList); | |||
} | |||
var associatedPages = document.querySelector('#p-associated-pages'); | |||
if (associatedPages) { | |||
targets.push(associatedPages); | |||
} else { | |||
var associatedPagesRoot = document.querySelector('#p-associated-pages'); | |||
if (associatedPagesRoot) { | |||
targets.push(associatedPagesRoot); | |||
} | |||
} | |||
return targets; | |||
} | } | ||
| Строка 1200: | Строка 1263: | ||
} | } | ||
var | var targets = getTargetContainers(); | ||
for (var t = 0; t < targets.length; t++) { | |||
targets[t].appendChild(createProjectMenu(projects, activeProject)); | |||
for (var | |||
} | } | ||
if (preferredProject && preferredNorm !== 'corvax') { | if (preferredProject && preferredNorm !== 'corvax') { | ||