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({
<>
-
+
@@ -940,7 +930,7 @@ export default function FileConnectorSettingsPanel({
Credential
Choose where this credential can be used and how it signs in.
-
+
patchCredentialDraft({ id: event.target.value })} placeholder={`${scopeType}-webdav-credentials`} />
@@ -1018,7 +1008,7 @@ export default function FileConnectorSettingsPanel({
onChange={patchCredentialValues}
disabled={saving}
showPassword={false} />
-
+
patchCredentialDraft({ secretRef: event.target.value })} />
@@ -1049,16 +1039,6 @@ export default function FileConnectorSettingsPanel({
{credentialLoginResult.message}
}
-
-
-
- patchCredentialDraft({ passwordEnv: event.target.value })} />
-
-
- patchCredentialDraft({ tokenEnv: event.target.value })} />
-
-
-
@@ -1066,7 +1046,7 @@ export default function FileConnectorSettingsPanel({
Policy
Limit where lower levels may use this credential.
-
+