Added fallback for open model url to deal with popup block or ad-blockers.
- Moved Model Manager z-index from 2000 to 99 (1 below modals).
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
position: fixed;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
z-index: 2000;
|
||||
z-index: 99; /*needs to be below dialog modal*/
|
||||
|
||||
/*override comfy-modal settings*/
|
||||
border-radius: 0;
|
||||
|
||||
@@ -15,9 +15,16 @@ function clamp(x, min, max) {
|
||||
function comfyRequest(url, options = undefined) {
|
||||
return new Promise((resolve, reject) => {
|
||||
api.fetchApi(url, options)
|
||||
.then((response) => response.json())
|
||||
.then(resolve)
|
||||
.catch(reject);
|
||||
.then((response) => {
|
||||
if (!response.ok) {
|
||||
reject(new Error(`HTTP error ${response.status}: ${response.statusText}`));
|
||||
} else {
|
||||
response.json()
|
||||
.then(resolve)
|
||||
.catch(error => reject(new Error(`Failed to parse JSON: ${error.message}`)));
|
||||
}
|
||||
})
|
||||
.catch(error => reject(new Error(`Request error: ${error.message}`)));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -147,13 +154,35 @@ async function tryOpenModelUrl(modelSearchPath) {
|
||||
const encodedPath = encodeURIComponent(modelSearchPath);
|
||||
const requestUrl = `/model-manager/model/info/web-url?path=${encodedPath}`;
|
||||
const webUrlResponse = await comfyRequest(requestUrl);
|
||||
let modelUrl;
|
||||
try {
|
||||
const modelUrl = new URL(webUrlResponse["url"]);
|
||||
window.open(modelUrl, '_blank').focus();
|
||||
modelUrl = new URL(webUrlResponse["url"]);
|
||||
}
|
||||
catch (exception) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
window.open(modelUrl, '_blank').focus();
|
||||
}
|
||||
catch (exception) {
|
||||
// browser or ad-blocker blocking opening new window
|
||||
app.ui.dialog.show($el("span",
|
||||
[
|
||||
$el("p", {
|
||||
style: { color: "var(--input-text)" },
|
||||
}, [modelSearchPath]),
|
||||
$el("a", {
|
||||
href: modelUrl,
|
||||
target: "_blank",
|
||||
}, [
|
||||
$el("span", [
|
||||
modelUrl,
|
||||
$el("i.mdi.mdi-open-in-new"),
|
||||
])
|
||||
]),
|
||||
]
|
||||
));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user