Compare commits

...
1 Commits
Author SHA1 Message Date
zemion 48205e6e46 fix(webui): bind reusable mail credentials to help
Module Package Release / publish-packages (push) Successful in 11s
2026-08-24 11:36:41 +02:00
7 changed files with 16 additions and 12 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"peerDependencies": { "peerDependencies": {
"@govoplan/core-webui": "^0.1.18", "@govoplan/core-webui": "^0.1.18",
"lucide-react": "^1.23.0", "lucide-react": "^1.23.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"private": true, "private": true,
"type": "module", "type": "module",
"main": "webui/src/index.ts", "main": "webui/src/index.ts",
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-mail" name = "govoplan-mail"
version = "0.1.23" version = "0.1.24"
description = "GovOPlaN mail module with backend and WebUI integration." description = "GovOPlaN mail module with backend and WebUI integration."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
+1 -1
View File
@@ -445,7 +445,7 @@ POP3_PROVIDER = ExternalProviderDeclaration(
manifest = ModuleManifest( manifest = ModuleManifest(
id="mail", id="mail",
name="Mail", name="Mail",
version="0.1.23", version="0.1.24",
required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR),
optional_dependencies=("campaigns", "addresses", "calendar", "postbox", "search"), optional_dependencies=("campaigns", "addresses", "calendar", "postbox", "search"),
provides_interfaces=( provides_interfaces=(
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"devDependencies": { "devDependencies": {
"typescript": "^5.7.2" "typescript": "^5.7.2"
}, },
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/mail-webui", "name": "@govoplan/mail-webui",
"version": "0.1.23", "version": "0.1.24",
"private": true, "private": true,
"type": "module", "type": "module",
"main": "src/index.ts", "main": "src/index.ts",
@@ -1495,7 +1495,7 @@ function ProfileForm({
{editTarget.kind === "credentials" && {editTarget.kind === "credentials" &&
<FormGrid columns={2} gap="small" collapseAt="workspace" className=""> <FormGrid columns={2} gap="small" collapseAt="workspace" className="">
{creatingCredential && {creatingCredential &&
<FormField label="Reusable credential" documentation={MAIL_PROFILE_WORKFLOW_DOCUMENTATION}> <FormField label="Reusable credential" documentation={MAIL_PROFILE_WORKFLOW_DOCUMENTATION} helpContextId="mail.profiles" helpModuleId="mail">
<select value={reuseCredentialId} disabled={credentialDisabled} onChange={(event) => setReuseCredentialId(event.target.value)}> <select value={reuseCredentialId} disabled={credentialDisabled} onChange={(event) => setReuseCredentialId(event.target.value)}>
<option value="">Create a new credential</option> <option value="">Create a new credential</option>
{availableCredentials.map((credential) => {availableCredentials.map((credential) =>
@@ -1509,13 +1509,13 @@ function ProfileForm({
{creatingCredential && <div />} {creatingCredential && <div />}
{!reuseCredentialId && {!reuseCredentialId &&
<> <>
<FormField label="Credential name" documentation={MAIL_PROFILE_DOCUMENTATION}> <FormField label="Credential name" documentation={MAIL_PROFILE_DOCUMENTATION} helpContextId="mail.profiles" helpModuleId="mail">
<input value={draft.credentialName} disabled={credentialDisabled} onChange={(event) => setDraft({ ...draft, credentialName: event.target.value })} /> <input value={draft.credentialName} disabled={credentialDisabled} onChange={(event) => setDraft({ ...draft, credentialName: event.target.value })} />
</FormField> </FormField>
<FormField label="Description"> <FormField label="Description">
<input value={draft.credentialDescription} disabled={credentialDisabled} onChange={(event) => setDraft({ ...draft, credentialDescription: event.target.value })} /> <input value={draft.credentialDescription} disabled={credentialDisabled} onChange={(event) => setDraft({ ...draft, credentialDescription: event.target.value })} />
</FormField> </FormField>
<FormField label="Available to modules" help="Choose installed modules. Keep Mail selected to use this credential here."> <FormField label="Available to modules" help="Choose installed modules. Keep Mail selected to use this credential here." helpContextId="mail.profiles" helpModuleId="mail">
<ReferenceMultiSelect <ReferenceMultiSelect
values={commaValues(draft.credentialAllowedModules)} values={commaValues(draft.credentialAllowedModules)}
onChange={(values) => setDraft({ ...draft, credentialAllowedModules: values.join(", ") })} onChange={(values) => setDraft({ ...draft, credentialAllowedModules: values.join(", ") })}
@@ -1527,7 +1527,9 @@ function ProfileForm({
</FormField> </FormField>
<FormField <FormField
label="Limited to servers" label="Limited to servers"
help="Choose an announced server or enter a module-qualified reference. Leave blank for every permitted server."> help="Choose an announced server or enter a module-qualified reference. Leave blank for every permitted server."
helpContextId="mail.profiles"
helpModuleId="mail">
<ReferenceMultiSelect <ReferenceMultiSelect
values={commaValues(draft.credentialAllowedServerRefs)} values={commaValues(draft.credentialAllowedServerRefs)}
onChange={(values) => setDraft({ ...draft, credentialAllowedServerRefs: values.join(", ") })} onChange={(values) => setDraft({ ...draft, credentialAllowedServerRefs: values.join(", ") })}
@@ -1540,6 +1542,8 @@ function ProfileForm({
</FormField> </FormField>
<ToggleSwitch <ToggleSwitch
checked={draft.credentialIsDefault} checked={draft.credentialIsDefault}
helpContextId="mail.profiles"
helpModuleId="mail"
disabled={credentialDisabled} disabled={credentialDisabled}
onChange={(checked) => setDraft({ ...draft, credentialIsDefault: checked })} onChange={(checked) => setDraft({ ...draft, credentialIsDefault: checked })}
label={`Default credential for this ${editTarget.protocol.toUpperCase()} server`} /> label={`Default credential for this ${editTarget.protocol.toUpperCase()} server`} />