MediaWiki:Common.js: Difference between revisions
From PBARC
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
if (document.querySelector('.mw-newarticletext')) { | |||
const checkboxWrapper = document.createElement('div') | |||
checkboxWrapper.innerHTML = '<div id="mw-editpage-ccbysa" class="oo-ui-layout oo-ui-labelElement oo-ui-fieldLayout oo-ui-fieldLayout-align-inline"><div class="oo-ui-fieldLayout-body"><span class="oo-ui-fieldLayout-field"><span id="wpCcbysaWidget" class="oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-checkboxInputWidget" data-ooui="{"_":"OO.ui.CheckboxInputWidget","selected":true,"name":"wpCcbysa","inputId":"wpCcbysa","tabIndex":4,"accessKey":"w","required":false}"><input type="checkbox" tabindex="4" accesskey="w" name="wpCcbysa" value="" id="wpCcbysa" class="oo-ui-inputWidget-input" checked="checked"><span class="oo-ui-checkboxInputWidget-checkIcon oo-ui-widget oo-ui-widget-enabled oo-ui-iconElement-icon oo-ui-icon-check oo-ui-iconElement oo-ui-labelElement-invisible oo-ui-iconWidget oo-ui-image-invert"></span></span></span><span class="oo-ui-fieldLayout-header"><label title="Publish this page under CC BY-SA" for="wpCcbysa" class="oo-ui-labelElement-label">Publish under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0 International</a> license</label></span></div></div>' | |||
const checkbox = checkboxWrapper.firstChild | |||
document.querySelector("textarea").value = "\n<!-- Please do not edit this line; keep all content above it -->{{CC BY-SA}}" | |||
checkbox.querySelector("input").addEventListener('change', function(e) { | |||
area = document.querySelector("textarea") | |||
if (e.currentTarget.checked) { | |||
area.value = area.value.replaceAll("{{CC BY-SA}}", "").replaceAll("<!-- Please do not edit this line; keep all content above it -->", "").trimEnd() + "\n<!-- Please do not edit this line; keep all content above it -->{{CC BY-SA}}" | |||
} else { | |||
area.value = area.value.replaceAll("{{CC BY-SA}}", "").replaceAll("<!-- Please do not edit this line; keep all content above it -->", "").trimEnd() | |||
} | |||
}); | |||
document.querySelector(".editCheckboxes").firstChild.appendChild(checkbox) | |||
} | |||
if (document.querySelector("#p-personal-label").textContent == "Not logged in") { | if (document.querySelector("#p-personal-label").textContent == "Not logged in") { | ||
Revision as of 16:11, 11 June 2023
/* Any JavaScript here will be loaded for all users on every page load. */
if (document.querySelector('.mw-newarticletext')) {
const checkboxWrapper = document.createElement('div')
checkboxWrapper.innerHTML = '<div id="mw-editpage-ccbysa" class="oo-ui-layout oo-ui-labelElement oo-ui-fieldLayout oo-ui-fieldLayout-align-inline"><div class="oo-ui-fieldLayout-body"><span class="oo-ui-fieldLayout-field"><span id="wpCcbysaWidget" class="oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-checkboxInputWidget" data-ooui="{"_":"OO.ui.CheckboxInputWidget","selected":true,"name":"wpCcbysa","inputId":"wpCcbysa","tabIndex":4,"accessKey":"w","required":false}"><input type="checkbox" tabindex="4" accesskey="w" name="wpCcbysa" value="" id="wpCcbysa" class="oo-ui-inputWidget-input" checked="checked"><span class="oo-ui-checkboxInputWidget-checkIcon oo-ui-widget oo-ui-widget-enabled oo-ui-iconElement-icon oo-ui-icon-check oo-ui-iconElement oo-ui-labelElement-invisible oo-ui-iconWidget oo-ui-image-invert"></span></span></span><span class="oo-ui-fieldLayout-header"><label title="Publish this page under CC BY-SA" for="wpCcbysa" class="oo-ui-labelElement-label">Publish under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank">CC BY-SA 4.0 International</a> license</label></span></div></div>'
const checkbox = checkboxWrapper.firstChild
document.querySelector("textarea").value = "\n<!-- Please do not edit this line; keep all content above it -->{{CC BY-SA}}"
checkbox.querySelector("input").addEventListener('change', function(e) {
area = document.querySelector("textarea")
if (e.currentTarget.checked) {
area.value = area.value.replaceAll("{{CC BY-SA}}", "").replaceAll("<!-- Please do not edit this line; keep all content above it -->", "").trimEnd() + "\n<!-- Please do not edit this line; keep all content above it -->{{CC BY-SA}}"
} else {
area.value = area.value.replaceAll("{{CC BY-SA}}", "").replaceAll("<!-- Please do not edit this line; keep all content above it -->", "").trimEnd()
}
});
document.querySelector(".editCheckboxes").firstChild.appendChild(checkbox)
}
if (document.querySelector("#p-personal-label").textContent == "Not logged in") {
document.querySelectorAll("a.new, .new a").forEach(
function(redlink) {
var span = document.createElement("span")
span.textContent = redlink.textContent
redlink.replaceWith(span)
}
)
}
var buttonsAdded = false;
function echoLoading() {
document.body.classList.add('mobileecho-hide-overflow');
if (! buttonsAdded) {
setTimeout(
function() {
var closeButton = document.createElement('button');
closeButton.setAttribute('class', "mobileecho-close-button oo-ui-widget oo-ui-widget-enabled oo-ui-iconElement oo-ui-iconElement-icon oo-ui-icon-close oo-ui-labelElement-invisible oo-ui-iconWidget");
var headers = document.querySelectorAll('.oo-ui-popupWidget-head');
console.log(headers)
var header;
for (header in headers) {
var newCloseButton = closeButton.cloneNode();
newCloseButton.addEventListener(
'click',
function() {
document.body.click();
}
);
headers[header].appendChild(newCloseButton);
}
},
500
);
buttonsAdded = true;
}
setTimeout(
function() {
document.querySelector('a.oo-ui-icon-bell').addEventListener(
'click', echoLoading
);
document.querySelector('a.oo-ui-icon-tray').addEventListener(
'click', echoLoading
);
},
500
);
}
document.body.addEventListener(
'click',
function(e) {
if (! document.querySelector('.mw-echo-ui-overlay').contains(e.target) && ! document.querySelector('#personal-extra').contains(e.target)) {
document.body.classList.remove('mobileecho-hide-overflow');
}
}
);
document.querySelector('a.oo-ui-icon-bell').addEventListener(
'click', echoLoading
);
document.querySelector('a.oo-ui-icon-tray').addEventListener(
'click', echoLoading
);
// END MobileEcho JS