forked from extern/easydiffusion
Adds a copy as JSON button.
This commit is contained in:
parent
f92bca58fa
commit
ce16e61e63
@ -209,6 +209,18 @@ function restoreTaskToUI(task) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function readUIasJSON() {
|
||||||
|
const reqBody = {}
|
||||||
|
for (const key in TASK_MAPPING) {
|
||||||
|
reqBody[key] = TASK_MAPPING[key].readUI()
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
'numOutputsTotal': parseInt(numOutputsTotalField.value),
|
||||||
|
'seed': TASK_MAPPING['seed'].readUI(),
|
||||||
|
'reqBody': reqBody
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const TASK_TEXT_MAPPING = {
|
const TASK_TEXT_MAPPING = {
|
||||||
width: 'Width',
|
width: 'Width',
|
||||||
height: 'Height',
|
height: 'Height',
|
||||||
@ -331,3 +343,41 @@ function dragOverHandler(ev) {
|
|||||||
|
|
||||||
document.addEventListener("drop", dropHandler)
|
document.addEventListener("drop", dropHandler)
|
||||||
document.addEventListener("dragover", dragOverHandler)
|
document.addEventListener("dragover", dragOverHandler)
|
||||||
|
|
||||||
|
// Adds a copy icon if the browser grants permission to write to clipboard.
|
||||||
|
function checkWriteToClipboardPermission (result) {
|
||||||
|
if (result.state == "granted" || result.state == "prompt") {
|
||||||
|
const style = document.createElement('style');
|
||||||
|
style.textContent = `
|
||||||
|
#copy-image-settings {
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 8px;
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity 0.5;
|
||||||
|
}
|
||||||
|
.collapsible:not(.active) #copy-image-settings {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#copy-image-settings.hidden {
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
}`;
|
||||||
|
document.head.append(style);
|
||||||
|
const resetSettings = document.getElementById('reset-image-settings')
|
||||||
|
const copyIcon = document.createElement('i')
|
||||||
|
copyIcon.id = 'copy-image-settings'
|
||||||
|
copyIcon.className = 'fa-solid fa-clipboard'
|
||||||
|
copyIcon.innerHTML = `<span class="simple-tooltip right">Copy Image Settings</span>`
|
||||||
|
copyIcon.addEventListener('click', (event) => {
|
||||||
|
event.stopPropagation()
|
||||||
|
navigator.clipboard.writeText(JSON.stringify(readUIasJSON()))
|
||||||
|
})
|
||||||
|
resetSettings.parentNode.insertBefore(copyIcon, resetSettings)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
navigator.permissions.query({ name: "clipboard-write" }).then(checkWriteToClipboardPermission, (e) => {
|
||||||
|
if (e instanceof TypeError && typeof navigator?.clipboard?.writeText === 'function') {
|
||||||
|
// Fix for firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1560373
|
||||||
|
checkWriteToClipboardPermission({state:"granted"})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user