improved share ui

This commit is contained in:
thecooltechguy 2023-11-08 08:45:54 -08:00
parent 44f3e2b0b4
commit 4ef53f9f0a

View File

@ -9,6 +9,29 @@ export const SUPPORTED_OUTPUT_NODE_TYPES = [
"ADE_AnimateDiffCombine", "ADE_AnimateDiffCombine",
] ]
var docStyle = document.createElement('style');
docStyle.innerHTML = `
.cm-menu-container {
column-gap: 20px;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.cm-menu-column {
display: flex;
flex-direction: column;
}
.cm-title {
padding: 10px 10px 0 10p;
background-color: black;
text-align: center;
height: 45px;
}
`;
document.head.appendChild(docStyle);
export function getPotentialOutputsAndOutputNodes(nodes) { export function getPotentialOutputsAndOutputNodes(nodes) {
const potential_outputs = []; const potential_outputs = [];
const potential_output_nodes = []; const potential_output_nodes = [];
@ -178,9 +201,230 @@ export class ShareDialog extends ComfyDialog {
this.share_button = $el("button", { this.share_button = $el("button", {
type: "submit", type: "submit",
textContent: "Share", textContent: "Share",
style: {
backgroundColor: "blue"
}
}, []); }, []);
this.final_message = $el("div", {}, []); this.final_message = $el("div", {
style: {
color: "white",
textAlign: "center",
// marginTop: "10px",
// backgroundColor: "black",
padding: "10px",
}
}, []);
this.share_finalmessage_container = $el("div.cm-menu-container", {
id: "comfyui-share-finalmessage-container",
style: {
display: "none",
}
}, [
$el("div.cm-menu-column", [
this.final_message,
$el("button", {
type: "button",
textContent: "Close",
onclick: () => {
// Reset state
this.matrix_destination_checkbox.checked = false;
this.comfyworkflows_destination_checkbox.checked = true;
this.share_button.textContent = "Share";
this.share_button.style.display = "inline-block";
this.final_message.innerHTML = "";
this.final_message.style.color = "white";
this.credits_input.value = "";
this.title_input.value = "";
this.description_input.value = "";
this.is_nsfw_checkbox.checked = false;
this.selectedOutputIndex = 0;
// hide the final message
this.share_finalmessage_container.style.display = "none";
// show the share container
this.share_container.style.display = "flex";
this.close()
}
}),
])
]);
this.share_container = $el("div.cm-menu-container", {
id: "comfyui-share-container"
}, [
$el("div.cm-menu-column", [
$el("details", {
style: {
border: "1px solid #999",
padding: "5px",
borderRadius: "5px",
backgroundColor: "#222"
}
}, [
$el("summary", {
style: {
color: "white",
cursor: "pointer",
}
}, [`Matrix account`]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Homeserver",
style: {
marginRight: "10px",
}
}, []),
this.matrix_homeserver_input,
]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Username",
style: {
marginRight: "10px",
}
}, []),
this.matrix_username_input,
]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Password",
style: {
marginRight: "10px",
}
}, []),
this.matrix_password_input,
]),
]),
$el("details", {
style: {
border: "1px solid #999",
marginTop: "10px",
padding: "5px",
borderRadius: "5px",
backgroundColor: "#222"
}
}, [
$el("summary", {
style: {
color: "white",
cursor: "pointer",
}
}, [`Comfyworkflows.com account`]),
$el("h4", {
textContent: "Share key (found on your profile page)",
}, []),
$el("p", { size: 3, color: "white" }, ["When provided, your art will be saved to your account."]),
this.cw_sharekey_input,
]),
$el("div", {}, [
$el("p", {
size: 3, color: "white", style: {
color: 'white'
}
}, [`Select where to share your art:`]),
this.matrix_destination_checkbox,
matrix_destination_checkbox_text,
$el("br", {}, []),
this.comfyworkflows_destination_checkbox,
comfyworkflows_destination_checkbox_text,
]),
$el("h4", {
textContent: "Credits (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.credits_input,
// $el("br", {}, []),
$el("h4", {
textContent: "Title (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.title_input,
// $el("br", {}, []),
$el("h4", {
textContent: "Description (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.description_input,
$el("br", {}, []),
$el("div", {}, [this.is_nsfw_checkbox, is_nsfw_checkbox_text]),
// $el("br", {}, []),
// this.final_message,
// $el("br", {}, []),
]),
$el("div.cm-menu-column", [
this.radio_buttons,
$el("br", {}, []),
this.share_button,
$el("button", {
type: "button",
textContent: "Close",
onclick: () => {
// Reset state
this.matrix_destination_checkbox.checked = false;
this.comfyworkflows_destination_checkbox.checked = true;
this.share_button.textContent = "Share";
this.share_button.style.display = "inline-block";
this.final_message.innerHTML = "";
this.final_message.style.color = "white";
this.credits_input.value = "";
this.title_input.value = "";
this.description_input.value = "";
this.is_nsfw_checkbox.checked = false;
this.selectedOutputIndex = 0;
// hide the final message
this.share_finalmessage_container.style.display = "none";
// show the share container
this.share_container.style.display = "flex";
this.close()
}
}),
$el("br", {}, []),
]),
]);
// get the user's existing matrix auth and share key // get the user's existing matrix auth and share key
ShareDialog.matrix_auth = { homeserver: "matrix.org", username: "", password: "" }; ShareDialog.matrix_auth = { homeserver: "matrix.org", username: "", password: "" };
@ -322,6 +566,10 @@ export class ShareDialog extends ComfyDialog {
this.final_message.style.color = "green"; this.final_message.style.color = "green";
// hide #comfyui-share-container and show #comfyui-share-finalmessage-container
this.share_container.style.display = "none";
this.share_finalmessage_container.style.display = "block";
// hide the share button // hide the share button
this.share_button.textContent = "Shared!"; this.share_button.textContent = "Shared!";
this.share_button.style.display = "none"; this.share_button.style.display = "none";
@ -335,165 +583,8 @@ export class ShareDialog extends ComfyDialog {
]), ]),
$el("br", {}, []), $el("br", {}, []),
$el("details", { this.share_finalmessage_container,
style: { this.share_container,
border: "1px solid #999",
padding: "5px",
borderRadius: "5px",
backgroundColor: "#222"
}
}, [
$el("summary", {
style: {
color: "white",
cursor: "pointer",
}
}, [`Matrix account`]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Homeserver",
style: {
marginRight: "10px",
}
}, []),
this.matrix_homeserver_input,
]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Username",
style: {
marginRight: "10px",
}
}, []),
this.matrix_username_input,
]),
$el("div", {
style: {
display: "flex",
flexDirection: "row",
}
}, [
$el("div", {
textContent: "Password",
style: {
marginRight: "10px",
}
}, []),
this.matrix_password_input,
]),
]),
$el("details", {
style: {
border: "1px solid #999",
marginTop: "10px",
padding: "5px",
borderRadius: "5px",
backgroundColor: "#222"
}
}, [
$el("summary", {
style: {
color: "white",
cursor: "pointer",
}
}, [`Comfyworkflows.com account`]),
$el("h4", {
textContent: "Share key (found on your profile page)",
}, []),
$el("p", { size: 3, color: "white" }, ["When provided, your art will be saved to your account."]),
this.cw_sharekey_input,
]),
$el("div", {}, [
$el("p", {
size: 3, color: "white", style: {
color: 'white'
}
}, [`Select where to share your art:`]),
this.matrix_destination_checkbox,
matrix_destination_checkbox_text,
$el("br", {}, []),
this.comfyworkflows_destination_checkbox,
comfyworkflows_destination_checkbox_text,
]),
$el("h4", {
textContent: "Credits (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.credits_input,
// $el("br", {}, []),
$el("h4", {
textContent: "Title (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.title_input,
// $el("br", {}, []),
$el("h4", {
textContent: "Description (optional)",
size: 3,
color: "white",
style: {
color: 'white'
}
}, []),
this.description_input,
$el("br", {}, []),
$el("div", {}, [this.is_nsfw_checkbox, is_nsfw_checkbox_text]),
$el("br", {}, []),
this.radio_buttons,
$el("br", {}, []),
this.final_message,
$el("br", {}, []),
this.share_button,
$el("button", {
type: "button",
textContent: "Close",
onclick: () => {
// Reset state
this.matrix_destination_checkbox.checked = false;
this.comfyworkflows_destination_checkbox.checked = true;
this.share_button.textContent = "Share";
this.share_button.style.display = "inline-block";
this.final_message.innerHTML = "";
this.final_message.style.color = "white";
this.credits_input.value = "";
this.title_input.value = "";
this.description_input.value = "";
this.is_nsfw_checkbox.checked = false;
this.selectedOutputIndex = 0;
this.close()
}
}),
$el("br", {}, []),
]; ];
res[0].style.padding = "10px 10px 10px 10px"; res[0].style.padding = "10px 10px 10px 10px";
@ -509,7 +600,7 @@ export class ShareDialog extends ComfyDialog {
const new_radio_buttons = $el("div", { const new_radio_buttons = $el("div", {
id: "selectOutput-Options", id: "selectOutput-Options",
style: { style: {
'overflow-y': 'auto', 'overflow-y': 'scroll',
'max-height': '400px', 'max-height': '400px',
} }
}, potential_outputs.map((output, index) => { }, potential_outputs.map((output, index) => {
@ -549,7 +640,7 @@ export class ShareDialog extends ComfyDialog {
} }
}, [radio_button, radio_button_text, radio_button_img]); }, [radio_button, radio_button_text, radio_button_img]);
})); }));
const header = $el("h4", { const header = $el("h3", {
textContent: "Select an image to share", textContent: "Select an image to share",
size: 3, size: 3,
color: "white", color: "white",
@ -558,9 +649,24 @@ export class ShareDialog extends ComfyDialog {
color: 'white', color: 'white',
backgroundColor: 'black', backgroundColor: 'black',
padding: '10px', padding: '10px',
'margin-top': '0px',
} }
}, []); }, [
$el("p", {
textContent: "Scroll to see all outputs",
size: 2,
color: "white",
style: {
'text-align': 'center',
color: 'white',
'margin-bottom': '5px',
'font-style': 'italic',
'font-size': '12px',
},
}, [])
]);
this.radio_buttons.appendChild(header); this.radio_buttons.appendChild(header);
// this.radio_buttons.appendChild(subheader);
this.radio_buttons.appendChild(new_radio_buttons); this.radio_buttons.appendChild(new_radio_buttons);
this.element.style.display = "block"; this.element.style.display = "block";
} }