update
This commit is contained in:
@@ -21,7 +21,6 @@ let configExampleBtn;
|
||||
let configExampleDialog;
|
||||
let bridgeSetupDialog;
|
||||
let openBridgeSetupBtn;
|
||||
let adminLoadBridgeBtn;
|
||||
let closeBridgeSetupBtn;
|
||||
|
||||
export function initBridgeSetupPage() {
|
||||
@@ -40,7 +39,6 @@ export function initBridgeSetupPage() {
|
||||
modeInputs = Array.from(form.querySelectorAll('input[name="db_mode"]'));
|
||||
bridgeSetupDialog = document.getElementById('bridgeSetupDialog');
|
||||
openBridgeSetupBtn = document.getElementById('btn-open-bridge-setup');
|
||||
adminLoadBridgeBtn = document.getElementById('btn-admin-load-bridge');
|
||||
closeBridgeSetupBtn = document.getElementById('btn-close-bridge-setup');
|
||||
|
||||
form.addEventListener('submit', submitBridgeSetup);
|
||||
@@ -59,12 +57,6 @@ export function initBridgeSetupPage() {
|
||||
closeBridgeSetupBtn?.addEventListener('click', () => {
|
||||
if (bridgeSetupDialog?.open) bridgeSetupDialog.close();
|
||||
});
|
||||
adminLoadBridgeBtn?.addEventListener('click', (ev) => {
|
||||
if (bridgeSetupDialog?.showModal && !bridgeSetupDialog.open) {
|
||||
bridgeSetupDialog.showModal();
|
||||
}
|
||||
loadTablesFromBridge(ev, { preserveSelection: state.selectedTables.length > 0 });
|
||||
});
|
||||
modeInputs.forEach(input => {
|
||||
input.addEventListener('change', () => applyModeVisibility(input.value));
|
||||
});
|
||||
|
||||
@@ -40,6 +40,7 @@ let adminTablesAllSelect;
|
||||
let adminTablesSelectedSelect;
|
||||
let adminTablesAddBtn;
|
||||
let adminTablesRemoveBtn;
|
||||
let adminLoadBridgeBtn;
|
||||
|
||||
ensureConsoleCapture();
|
||||
|
||||
@@ -69,6 +70,7 @@ export function initAccountPage() {
|
||||
adminTablesSelectedSelect = document.getElementById('adminBridgeTablesSelected');
|
||||
adminTablesAddBtn = document.getElementById('adminBridgeTablesAdd');
|
||||
adminTablesRemoveBtn = document.getElementById('adminBridgeTablesRemove');
|
||||
adminLoadBridgeBtn = document.getElementById('btn-admin-load-bridge');
|
||||
|
||||
document.getElementById('btn-user-add')?.addEventListener('click', () => openUserForm());
|
||||
document.getElementById('userFormCancel')?.addEventListener('click', () => closeUserForm());
|
||||
@@ -112,6 +114,9 @@ export function initAccountPage() {
|
||||
adminTablesRemoveBtn?.addEventListener('click', () => {
|
||||
removeAdminTables(getSelectedOptions(adminTablesSelectedSelect));
|
||||
});
|
||||
adminLoadBridgeBtn?.addEventListener('click', () => {
|
||||
refreshBridgeTablesFromEndpoint();
|
||||
});
|
||||
|
||||
window.addEventListener('bridge-setup-updated', (ev) => {
|
||||
const setup = ev?.detail || {};
|
||||
@@ -413,6 +418,32 @@ function addAdminTables(list) {
|
||||
updateAdminTableSelects(whitelist, merged);
|
||||
}
|
||||
|
||||
async function refreshBridgeTablesFromEndpoint() {
|
||||
if (state.loading) return;
|
||||
state.loading = true;
|
||||
try {
|
||||
const res = await apiAction('account.bridge.test', { method: 'POST', data: {} });
|
||||
if (!res?.ok) throw new Error(res?.error || 'Bridge konnte nicht abgefragt werden');
|
||||
const fetched = normalizeTableList(res.tables || []);
|
||||
if (!fetched.length) {
|
||||
toast('Keine Tabellen vom Bridge-Endpunkt erhalten', false);
|
||||
return;
|
||||
}
|
||||
const selected = normalizeTableList(state.settings.bridge_tables || []);
|
||||
const selectedSet = new Set(selected);
|
||||
const nextSelected = fetched.filter(name => selectedSet.has(name));
|
||||
state.settings.bridge_setup = state.settings.bridge_setup || {};
|
||||
state.settings.bridge_setup.tables = fetched;
|
||||
state.settings.bridge_tables = nextSelected;
|
||||
updateAdminTableSelects(fetched, nextSelected);
|
||||
toast('Tabellen aktualisiert', true);
|
||||
} catch (err) {
|
||||
toast(err.message || 'Bridge konnte nicht geprüft werden', false);
|
||||
} finally {
|
||||
state.loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
function removeAdminTables(list) {
|
||||
const whitelist = normalizeTableList(state.settings.bridge_setup?.tables || []);
|
||||
if (!whitelist.length) return;
|
||||
|
||||
Reference in New Issue
Block a user