MediaWiki:Common.js: Difference between revisions
From PBARC
No edit summary |
No edit summary |
||
| (20 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/ | document.querySelector("li#footer-info-lastmod").innerHTML += ' Article text is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike 4.0 International</a>, unless otherwise noted. Contributors have agreed that a link to the article is sufficient attribution. This license does not automatically apply to any pictures or other files that may be used or linked to in the page. Click a picture to check for licensing information. If no license is given, the image may not be reused without explicit permission from the copyright holder except under <a href="https://en.wikipedia.org/wiki/Fair_use">fair use</a>.' | ||
document. | // Wikipedia citation tool | ||
const textbox = document.querySelector("#wpTextbox1") | |||
) | |||
if (textbox) { | |||
const summaryBox = document.querySelector( | |||
"#wpSummaryLabel > div:nth-child(1)" | |||
) | |||
const label = summaryBox.querySelector("label") | |||
label.setAttribute("for", "citations") | |||
label.textContent = | |||
'If you quoted a Wikipedia article, paste its Web address (starting with "https://en.wikipedia.org/") here, then click "Add citation." Do this for each article quoted. This is not necessary if the article is already cited in this page.' | |||
const input = summaryBox.querySelector("input") | |||
input.id = "citations" | |||
input.setAttribute("name", "citations") | |||
input.setAttribute("title", "Enter URLs to Wikipedia articles") | |||
const button = document.createElement("button") | |||
button.classList = ["oo-ui-inputWidget-input", "oo-ui-buttonElement-button"] | |||
button.style.marginBottom = "1em" | |||
button.textContent = "Add citation" | |||
summaryBox.appendChild(button) | |||
button.addEventListener("click", function (e) { | |||
e.preventDefault() | |||
const url = input.value | |||
const regex = /\/wiki\/(.+)/ // Regex pattern to extract the title | |||
const match = url.match(regex) // Perform matching | |||
if (url.search("en.wikipedia.org") != -1 && match && match.length > 1) { | |||
const title = decodeURIComponent(match[1]).replace(/_/g, " ") | |||
const citation = "{{Wikipedia|" + title + "}}" | |||
if (textbox.value.search(citation) == -1) { | |||
textbox.value = textbox.value.trim() + "\n\n" + citation | |||
input.value = "" | |||
} | |||
} else { | |||
alert("That URL does not seem to be a Wikipedia article.") | |||
} | |||
}) | |||
} | |||
// End Wikipedia citation tool | |||
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) | |||
}) | |||
} | |||
// MobileEcho | |||
var buttonsAdded = false | |||
function echoLoading() { | 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( | 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( | document | ||
.querySelector("a.oo-ui-icon-bell") | |||
) | .addEventListener("click", echoLoading) | ||
document.querySelector( | document | ||
.querySelector("a.oo-ui-icon-tray") | |||
) | .addEventListener("click", echoLoading) | ||
// | // End MobileEcho | ||
Latest revision as of 16:13, 15 May 2024
document.querySelector("li#footer-info-lastmod").innerHTML += ' Article text is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike 4.0 International</a>, unless otherwise noted. Contributors have agreed that a link to the article is sufficient attribution. This license does not automatically apply to any pictures or other files that may be used or linked to in the page. Click a picture to check for licensing information. If no license is given, the image may not be reused without explicit permission from the copyright holder except under <a href="https://en.wikipedia.org/wiki/Fair_use">fair use</a>.'
// Wikipedia citation tool
const textbox = document.querySelector("#wpTextbox1")
if (textbox) {
const summaryBox = document.querySelector(
"#wpSummaryLabel > div:nth-child(1)"
)
const label = summaryBox.querySelector("label")
label.setAttribute("for", "citations")
label.textContent =
'If you quoted a Wikipedia article, paste its Web address (starting with "https://en.wikipedia.org/") here, then click "Add citation." Do this for each article quoted. This is not necessary if the article is already cited in this page.'
const input = summaryBox.querySelector("input")
input.id = "citations"
input.setAttribute("name", "citations")
input.setAttribute("title", "Enter URLs to Wikipedia articles")
const button = document.createElement("button")
button.classList = ["oo-ui-inputWidget-input", "oo-ui-buttonElement-button"]
button.style.marginBottom = "1em"
button.textContent = "Add citation"
summaryBox.appendChild(button)
button.addEventListener("click", function (e) {
e.preventDefault()
const url = input.value
const regex = /\/wiki\/(.+)/ // Regex pattern to extract the title
const match = url.match(regex) // Perform matching
if (url.search("en.wikipedia.org") != -1 && match && match.length > 1) {
const title = decodeURIComponent(match[1]).replace(/_/g, " ")
const citation = "{{Wikipedia|" + title + "}}"
if (textbox.value.search(citation) == -1) {
textbox.value = textbox.value.trim() + "\n\n" + citation
input.value = ""
}
} else {
alert("That URL does not seem to be a Wikipedia article.")
}
})
}
// End Wikipedia citation tool
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)
})
}
// MobileEcho
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