93 lines
3.4 KiB
JavaScript
93 lines
3.4 KiB
JavaScript
window.onload = function() {
|
|
if (navigator.userAgent.includes("Firefox")) {
|
|
document.getElementById('resultfeed').value += `\nClipboard buttons only work on Firefox >127.`
|
|
}
|
|
|
|
// Event listeners can only be added after the page is loaded
|
|
document.getElementById("actiondropdown").addEventListener("change", function() {
|
|
if (document.getElementById("actiondropdown").value === "POST") {
|
|
document.getElementById("randomizationtoggle").disabled = false
|
|
document.getElementById("valuefield").disabled = false
|
|
} else if (document.getElementById("actiondropdown").value === "DELETE") {
|
|
document.getElementById("randomizationtoggle").disabled = true
|
|
document.getElementById("randomizationtoggle").checked = false
|
|
randomUrlTick()
|
|
document.getElementById("valuefield").disabled = true
|
|
} else {
|
|
console.error("UI Code Error: Action dropdown event listener function reached impossible state")
|
|
}
|
|
})
|
|
}
|
|
|
|
function makeRandomHex(amount) {
|
|
const characters = "1234567890abcdef"
|
|
let counter = 0
|
|
let result = ""
|
|
while (counter < amount) {
|
|
result += characters.charAt(Math.floor(Math.random() * characters.length))
|
|
counter += 1
|
|
}
|
|
return result
|
|
}
|
|
|
|
|
|
|
|
function randomUrlTick() {
|
|
if (document.getElementById("randomizationtoggle").checked == true) {
|
|
document.getElementById("targetfield").disabled = true
|
|
document.getElementById("targetfield").value = makeRandomHex(6)
|
|
} else {
|
|
document.getElementById("targetfield").disabled = false
|
|
document.getElementById("targetfield").value = null
|
|
}
|
|
}
|
|
|
|
// function buttonCopyResult() {
|
|
// navigator.clipboard.writeText(`${document.location.href}${document.getElementById("urlfield").value}`)
|
|
// }
|
|
|
|
function buttonFillFromClipboard() {
|
|
navigator.clipboard.readText().then(res => {
|
|
document.getElementById("valuefield").value = res;
|
|
})
|
|
}
|
|
|
|
// Changes the buttons text to OK for 500ms for action feedback
|
|
// "internal" in this context just means not called from the page
|
|
function internalButtonConfirmation(element) {
|
|
let normalValue = document.getElementById(element).innerHTML
|
|
document.getElementById(element).innerHTML = "Ok"
|
|
setTimeout(function() {
|
|
document.getElementById(element).innerHTML = normalValue
|
|
}, 500)
|
|
}
|
|
|
|
function buttonCopyUrl() {
|
|
navigator.clipboard.writeText(`this doesn't work rn lol`)
|
|
internalButtonConfirmation("buttonCopyUrl")
|
|
}
|
|
|
|
function buttonClearLog() {
|
|
document.getElementById("resultfeed").value = ""
|
|
internalButtonConfirmation("buttonClearLog")
|
|
}
|
|
|
|
function submitData() {
|
|
fetch(`http://nrdesktop:8081/etyd${document.getElementById("targetfield").value}`, {
|
|
method: document.getElementById("actiondropdown").value,
|
|
mode: "cors",
|
|
headers: {
|
|
"Authorization": document.getElementById("authfield").value
|
|
},
|
|
body: JSON.stringify({
|
|
"target": document.getElementById("targetfield").value,
|
|
"value": document.getElementById("valuefield").value,
|
|
"action": document.getElementById("actiondropdown").value,
|
|
"random": document.getElementById("randomizationtoggle").checked
|
|
})
|
|
}).then(response => {
|
|
document.getElementById("resultfeed").value += `\n${response.status} ${response.body}`
|
|
}).catch(error => {
|
|
document.getElementById("resultfeed").value += `\nError: ${error}`
|
|
})
|
|
} |