mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-30 00:19:35 +00:00
feat: auto-open Driver Manager when driver is not installed
When a connection fails because the agent driver or JRE is not installed, automatically open the Driver Manager page so users can install it without navigating manually.
This commit is contained in:
@@ -511,6 +511,9 @@ onMounted(async () => {
|
||||
const mountStart = performance.now();
|
||||
applyTheme();
|
||||
window.addEventListener("keydown", handleKeydown, true);
|
||||
window.addEventListener("dbx-open-driver-store", () => {
|
||||
showDriverStore.value = true;
|
||||
});
|
||||
if (isDesktop) {
|
||||
document.addEventListener("contextmenu", handleContextMenu);
|
||||
}
|
||||
|
||||
@@ -305,7 +305,11 @@ async function toggle() {
|
||||
}
|
||||
} catch (e: any) {
|
||||
if (!wasExpanded) node.isExpanded = false;
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
const errMsg = e?.message || String(e);
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, errMsg) }), 5000);
|
||||
if (errMsg.includes("driver is not installed") || errMsg.includes("is not installed")) {
|
||||
window.dispatchEvent(new Event("dbx-open-driver-store"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,6 +365,12 @@ async function openObjectBrowser() {
|
||||
}
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
if (
|
||||
e?.message?.includes("driver is not installed") ||
|
||||
(e?.message?.includes("JRE") && e?.message?.includes("not installed"))
|
||||
) {
|
||||
window.dispatchEvent(new Event("dbx-open-driver-store"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,6 +473,12 @@ async function newQuery() {
|
||||
queryStore.createTab(node.connectionId, resolveDefaultDatabase(connection, options), undefined, "query");
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
if (
|
||||
e?.message?.includes("driver is not installed") ||
|
||||
(e?.message?.includes("JRE") && e?.message?.includes("not installed"))
|
||||
) {
|
||||
window.dispatchEvent(new Event("dbx-open-driver-store"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,6 +507,12 @@ async function refresh() {
|
||||
await connectionStore.refreshTreeNode(props.node);
|
||||
} catch (e: any) {
|
||||
toast(t("connection.connectFailed", { message: translateBackendError(t, e?.message || String(e)) }), 5000);
|
||||
if (
|
||||
e?.message?.includes("driver is not installed") ||
|
||||
(e?.message?.includes("JRE") && e?.message?.includes("not installed"))
|
||||
) {
|
||||
window.dispatchEvent(new Event("dbx-open-driver-store"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user