diff --git a/webui/src/api/files.ts b/webui/src/api/files.ts index 98f45b6..e5d9259 100644 --- a/webui/src/api/files.ts +++ b/webui/src/api/files.ts @@ -116,8 +116,6 @@ export type FileConnectorCredentialsPayload = { username?: string | null; password?: string | null; token?: string | null; - password_env?: string | null; - token_env?: string | null; secret_ref?: string | null; }; diff --git a/webui/src/features/files/FileConnectorSettingsPanel.tsx b/webui/src/features/files/FileConnectorSettingsPanel.tsx index aa3d2f0..2f481cb 100644 --- a/webui/src/features/files/FileConnectorSettingsPanel.tsx +++ b/webui/src/features/files/FileConnectorSettingsPanel.tsx @@ -15,6 +15,8 @@ import { LoadingFrame, mergeDeltaRows, SegmentedControl, + StatusBadge, + TableActionGroup, ToggleSwitch, useDeltaWatermarks, useUnsavedDraftGuard, @@ -65,8 +67,6 @@ type ConnectorProfileDraft = { username: string; password: string; token: string; - passwordEnv: string; - tokenEnv: string; secretRef: string; canBrowse: boolean; canImport: boolean; @@ -91,8 +91,6 @@ type ConnectorCredentialDraft = { username: string; password: string; token: string; - passwordEnv: string; - tokenEnv: string; secretRef: string; policyMode: PolicyMode; allowedPaths: string; @@ -491,8 +489,6 @@ export default function FileConnectorSettingsPanel({ username: cleanOrNull(credentialDraft.username), password: cleanOrUndefined(credentialDraft.password), token: cleanOrUndefined(credentialDraft.token), - password_env: cleanOrNull(credentialDraft.passwordEnv), - token_env: cleanOrNull(credentialDraft.tokenEnv), secret_ref: cleanOrNull(credentialDraft.secretRef) }; const sharedPayload = { @@ -633,8 +629,6 @@ export default function FileConnectorSettingsPanel({ username: cleanOrNull(draft.username), password: cleanOrUndefined(draft.password), token: cleanOrUndefined(draft.token), - password_env: cleanOrNull(draft.passwordEnv), - token_env: cleanOrNull(draft.tokenEnv), secret_ref: cleanOrNull(draft.secretRef) }, metadata: metadataFromDraft(draft) @@ -680,8 +674,6 @@ export default function FileConnectorSettingsPanel({ username: cleanOrNull(credentialDraft.username), password: cleanOrUndefined(credentialDraft.password), token: cleanOrUndefined(credentialDraft.token), - password_env: cleanOrNull(credentialDraft.passwordEnv), - token_env: cleanOrNull(credentialDraft.tokenEnv), secret_ref: cleanOrNull(credentialDraft.secretRef) }, metadata: profile.metadata ?? {}, @@ -756,7 +748,7 @@ export default function FileConnectorSettingsPanel({ width: "120px", render: (row) => { const enabled = row.kind === "profile" ? row.profile.enabled : row.credential.enabled; - return {enabled ? "i18n:govoplan-files.enabled.df174a3f" : "i18n:govoplan-files.disabled.f4f4473d"}; + return ; } }]; @@ -771,21 +763,19 @@ export default function FileConnectorSettingsPanel({ function renderConnectorActions(row: ConnectorTreeRow) { if (row.kind === "credential") { const readOnly = row.credential.source_kind !== "database"; - return ( -
- - -
); + return , disabled: !canWrite || readOnly || saving, onClick: () => startCredentialEdit(row.credential) }, + { id: "disable", label: i18nMessage("i18n:govoplan-files.disable_value.09485f7f", { value0: row.credential.label }), icon: , variant: "danger", applicable: row.credential.enabled, disabled: !canWrite || readOnly || saving, onClick: () => setPendingCredentialDeactivate(row.credential) } + ]} />; } const readOnly = row.profile.source_kind !== "database"; - return ( -
- - - - -
); + return , applicable: row.profile.enabled, disabled: saving || testingProfileId === row.profile.id, onClick: () => void testBrowse(row.profile) }, + { id: "add-credential", label: i18nMessage("i18n:govoplan-files.add_credential_for_value.0fa9c1fe", { value0: row.profile.label }), icon: , variant: "primary", disabled: !canWrite || saving, onClick: () => startCredentialCreate(row.profile) }, + { id: "edit", label: i18nMessage("i18n:govoplan-files.edit_value.fad75899", { value0: row.profile.label }), icon: , disabled: !canWrite || readOnly || saving, onClick: () => startEdit(row.profile) }, + { id: "disable", label: i18nMessage("i18n:govoplan-files.disable_value.09485f7f", { value0: row.profile.label }), icon: , variant: "danger", applicable: row.profile.enabled, disabled: !canWrite || readOnly || saving, onClick: () => setPendingDeactivate(row.profile) } + ]} />; } @@ -865,7 +855,7 @@ export default function FileConnectorSettingsPanel({ <> -
+