MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) Нет описания правки Метки: ручная отмена отменено |
Pok (обсуждение | вклад) Нет описания правки Метка: ручная отмена |
||
| Строка 680: | Строка 680: | ||
function fetchParsedData(wikiText) { | function fetchParsedData(wikiText) { | ||
return $.ajax({ | return $.ajax({ | ||
url: | url: mw.util.wikiScript('api'), | ||
method: | method: 'POST', | ||
dataType: | dataType: 'json', | ||
data: { | |||
action: 'parse', | |||
format: 'json', | |||
prop: 'text', | |||
text: wikiText, | |||
origin: '*' | |||
} | |||
}); | }); | ||
} | } | ||
| Строка 717: | Строка 723: | ||
initAjaxLoader(root); | initAjaxLoader(root); | ||
initPage(); | |||
} | } | ||
| Строка 1077: | Строка 1084: | ||
// Для "Шаблон:Переключатель_проекта" | // Для "Шаблон:Переключатель_проекта" | ||
function initProjectSelectionGenerator() { | function initProjectSelectionGenerator() { | ||
var COOKIE_PROJECT = 'ss14_preferredProject'; | |||
var containers = document.getElementsByClassName('js-project-selection-generator'); | var containers = document.getElementsByClassName('js-project-selection-generator'); | ||
| Строка 1084: | Строка 1092: | ||
.replace(/\s+/g, '-') | .replace(/\s+/g, '-') | ||
.replace(/[^A-Za-z0-9_\-\u0400-\u04FF]/g, ''); | .replace(/[^A-Za-z0-9_\-\u0400-\u04FF]/g, ''); | ||
} | |||
function normalizeProjectName(s) { | |||
return String(s === undefined || s === null ? '' : s) | |||
.trim() | |||
.toLowerCase(); | |||
} | } | ||
| Строка 1166: | Строка 1180: | ||
if (projects.length <= 1) { | if (projects.length <= 1) { | ||
continue; | continue; | ||
} | |||
var preferredProject = $.cookie(COOKIE_PROJECT) || ''; | |||
var preferredNorm = normalizeProjectName(preferredProject); | |||
var activeProject = projects[0]; | |||
if (preferredProject && preferredNorm !== 'corvax') { | |||
for (var p = 0; p < projects.length; p++) { | |||
if (normalizeProjectName(projects[p]) === preferredNorm) { | |||
activeProject = projects[p]; | |||
break; | |||
} | |||
} | |||
} | } | ||
if (!getCurrentJsonPath()) { | if (!getCurrentJsonPath()) { | ||
setCurrentJsonPath( | setCurrentJsonPath(activeProject); | ||
} | } | ||
| Строка 1187: | Строка 1215: | ||
input.id = projectId; | input.id = projectId; | ||
if ( | if (projectName === activeProject) { | ||
input.checked = true; | input.checked = true; | ||
} | } | ||
| Строка 1216: | Строка 1244: | ||
}); | }); | ||
})(form); | })(form); | ||
if (preferredProject && preferredNorm !== 'corvax') { | |||
for (var k = 0; k < projects.length; k++) { | |||
if (normalizeProjectName(projects[k]) === preferredNorm) { | |||
refreshForProject(projects[k]); | |||
break; | |||
} | |||
} | |||
} | |||
} | } | ||
} | |||
function initPage() { | |||
var checkboxExist = document.querySelectorAll('.js-checkbox-generator'); | |||
if (checkboxExist.length > 0) { | |||
initCheckboxCreator(); | |||
} | |||
registerCheckboxExpander('js-checkbox-mw-collapsible'); | |||
} | } | ||
const currentPageTitle = document.title; | const currentPageTitle = document.title; | ||
| Строка 1313: | Строка 1357: | ||
if (document.querySelectorAll('.ajax-load-content').length > 0) { | if (document.querySelectorAll('.ajax-load-content').length > 0) { | ||
initAjaxLoader(); | initAjaxLoader(); | ||
} | } | ||
var projectSelectionExist = document.querySelectorAll('.js-project-selection-generator'); | var projectSelectionExist = document.querySelectorAll('.js-project-selection-generator'); | ||
| Строка 1322: | Строка 1362: | ||
initProjectSelectionGenerator(); | initProjectSelectionGenerator(); | ||
} | } | ||
initPage(); | |||
}); | }); | ||
/*WikiEditor/Викификатор*/ | /*WikiEditor/Викификатор*/ | ||