Moin
Dezembro 18, 2025, 5:23pm
9
Consegui desativar com sucesso as notificações por e-mail sobre mensagens de bate-papo para o usuário de teste no meu fórum
Provavelmente foi corrigido em
main ← dev-add-page-specific-saving-to-plugin-api
merged 09:58AM - 18 Dec 25 UTC
Previously, plugins that needed to save user preferences on specific preference … pages had to either:
1. Manually register value transformers for `preferences-save-attributes`
2. Use `modifyClass` to push fields to `saveAttrNames`
The second approach was broken because `saveAttrNames` is now a getter that returns a fresh array each time, so pushed values were lost.
This commit introduces three new plugin APIs that handle the transformer registration automatically:
- `addSaveableUserOption(name, { page })` - for `user_options` table fields
- `addSaveableUserField(name, { page })` - for `user_fields` table fields
- `addSaveableCustomFields(page)` - ensures `custom_fields` object is saved on a page (auto-deduplicates across plugins)
The `{ page }` option specifies which preferences page triggers saving: "account", "emails", "interface", "notifications", "profile", "tracking", etc.
Also updates bundled plugins to use the new APIs:
- chat: `addSaveableUserOption` with `{ page: "emails" }` for email frequency
- discourse-ai: `addSaveableUserOption` with `{ page: "interface" }`
- discourse-assign: `addSaveableUserOption` with `{ page: "tracking" }`, `addSaveableCustomFields` with `"notifications"`
- discourse-policy: `addSaveableUserOption` with `{ page: "emails" }`
- discourse-rewind: `addSaveableUserOption` (no page, custom prefs page)
Deprecates `addSaveableUserOptionField` in favor of `addSaveableUserOption`.
Ref - https://meta.discourse.org/t/391509
Follow up to ee1a1c7219fea70215300c9bf81ce215a09ce17b
2 curtidas