diff --git a/js/src/forum/addTeamsSettings.js b/js/src/forum/addTeamsSettings.js index d237ac3..e7e2c24 100644 --- a/js/src/forum/addTeamsSettings.js +++ b/js/src/forum/addTeamsSettings.js @@ -8,7 +8,7 @@ class TeamsSettingsBlock extends Component { oninit(vnode) { super.oninit(vnode); - // Serialisiert Saves, damit schnelle Klicks nicht zu "last write wins" führen. + // Serielle Saves verhindern "Überholen" bei schnellen Klicks. this.saveChain = Promise.resolve(); } @@ -19,15 +19,17 @@ class TeamsSettingsBlock extends Component { view() { const user = app.session.user; - - // Sicherheitscheck: SettingsPage ist nur für eingeloggte Nutzer, aber defensiv bleibt defensiv. if (!user) return null; return (

Microsoft Teams

- {this.prefSwitch(user, 'sbp-jm-msteams.enabled', 'Enable Microsoft Teams notifications')} + {this.prefSwitch( + user, + 'sbp-jm-msteams.enabled', + 'Enable Microsoft Teams notifications' + )}
{this.prefSwitch( @@ -36,9 +38,17 @@ class TeamsSettingsBlock extends Component { 'Someone replies to a discussion I am following' )} - {this.prefSwitch(user, 'sbp-jm-msteams.types.postMentioned', 'Someone mentions me in a post')} + {this.prefSwitch( + user, + 'sbp-jm-msteams.types.postMentioned', + 'Someone mentions me in a post' + )} - {this.prefSwitch(user, 'sbp-jm-msteams.types.userMentioned', 'Someone mentions me')} + {this.prefSwitch( + user, + 'sbp-jm-msteams.types.userMentioned', + 'Someone mentions me' + )}
); @@ -51,14 +61,22 @@ class TeamsSettingsBlock extends Component { { - // Wichtig: Merge statt Partial-Objekt, damit andere Toggles nicht "verschwinden" - // (Front-end Model hält preferences als ein Attribut). + const before = user.preferences() || {}; + + // ✅ KORREKT: Key dynamisch setzen const merged = { - ...(user.preferences() || {}), + ...before, [key]: value, }; - return this.queueSave(user, merged); + // Debug-Ausgaben (hilft beim Verifizieren) + console.log('[msteams prefs] key', key, 'value', value); + console.log('[msteams prefs] before', before); + console.log('[msteams prefs] merged', merged); + + return this.queueSave(user, merged).then(() => { + console.log('[msteams prefs] after', user.preferences() || {}); + }); }} > {label} @@ -71,4 +89,4 @@ export default function addTeamsSettings() { extend(SettingsPage.prototype, 'content', function (vnode) { vnode.children.push(); }); -} +} \ No newline at end of file