Redesign des Composers hinter enable_new_composer_actions
Dies führt ein neu gestaltetes Composer-Erlebnis ein und stellt es hinter einen neuen Alpha-„Upcoming-Change“-Flag. Wenn der Flag deaktiviert ist (Standard), ändert sich nichts Sichtbares. Administratoren können über die Admin-Seite für „Upcoming-Changes“ aktiviert werden.
Was sich ändert, wenn der Flag aktiviert ist
Vereinheitlichtes Dropdown für Aktionen. Das alte SelectKit-composer-actions-Dropdown wird durch eine neue Glimmer/DMenu-Komponente (composer-actions-new.gjs) ersetzt. Es zeigt weiterhin alle gleichen Zeilen zum Umschalten des Modus an (Antwort auf Thema, Antwort als neues Thema, PM erstellen usw.) mit klareren Beschriftungen und Icons.
Schalter sind direkt bei den Aktionen integriert. Whisper / No-Bump / Unlist werden nun als <DToggleSwitch>-Elemente am unteren Rand desselben Dropdowns gerendert – kein separates Kombi-Button-Menü mehr. Der Schalterzustand bleibt beim Wechsel des Modus erhalten (z. B. Whisper aktivieren → von „Antwort auf Thema“ zu „Antwort auf Beitrag“ wechseln → Whisper bleibt aktiv).
Whisper-Indikator-Pille. Ein kleiner Button rechts neben dem Dropdown-Auslöser zeigt den aktuellen Whisper-Zustand in zwei visuellen Varianten an: --public (tertiäre Farbe, Augen-Icon, „Antwort wird sichtbar sein“) und --whispering (Hintergrund in Primary-Medium / Primary-Very-Low, durchgestrichenes Augen-Icon, „Whispering“). Ein Klick darauf schaltet den Whisper-Zustand um – derselbe Code-Pfad wie beim Schalter im Dropdown, sodass beide synchron bleiben. Das Auslöser-Icon selbst wechselt beim Whispering ebenfalls zu far-eye-slash.
Bearbeitungs-UX. Beim Bearbeiten eines Beitrags kollabiert das Dropdown zu einer statischen, ohne Pfeil-Icon beschrifteten Zeile (Stift-Icon + „Beitrag bearbeiten“). Der früher anderswo im Composer-Chrome befindliche Button „Bearbeitungsgrund hinzufügen“ ist nun in diesen statischen Auslöser integriert als klickbarer Button „Änderung beschreiben“; ein Klick darauf ersetzt die Beschriftung durch ein Texteingabefeld, das an composer.editReason gebunden ist und den Fokus darauf legt.
Composer-Chrome. Der Text/Span .action-title wurde entfernt – der Dropdown-Auslöser zeigt nun direkt den aktuellen Modus an.
Beitrags-/Themen-Links erscheinen nur noch bei Bedarf. Ein Themen-Link wird beim Verlassen des Themas gerendert, und der Beitrags-Link wird gerendert, wenn man vom Beitrag wegsrollt oder das Thema verlässt.
Hinweise für Plugin-Entwickler
Die neue Komponente ist kein Unterklasse von SelectKit, daher erreichen die alten Erweiterungs-APIs sie nicht. Um in dieser Alpha-Phase beide Flag-Zustände zu unterstützen, sollten Plugins beide APIs registrieren:
api.registerBehaviorTransformer("composer-actions-on-select", ({ context, next }) => { if (context.actionId === "foo") { ...; return; } next(); })
Die Zeilenstruktur ({ name, description, icon, id }) ist in beiden Fällen identisch. Der Behavior-Transformer erhält { actionId, options, model } im Kontext.
Plugins, die nur die alten Hooks registrieren, verschwinden stillschweigend aus dem Composer, sobald ein Administrator den Flag aktiviert. Plugins, die nur die neuen Transformer registrieren, sind unsichtbar, solange der Flag deaktiviert ist (Standard für alle beim Zusammenführen).
Referenzen:
discourse-post-voting/extend-composer-actions.js — Beispiel für eine duale Registrierung (im Core)
transformers.js — die beiden neuen Transformer-Namen
Rollout-Hinweise
Der Flag-Status ist Alpha – Aktivierung nur für interne Tests.
Plugins, die mit Composer-Aktionen integriert sind, sollten eine duale Registrierung hinzufügen, bevor dies zu beta/stable befördert wird.
Tests decken beide Zustände ab: Bestehende Akzeptanz-/System-Spezifikationen decken den Flag-off-Zustand ab; sibling-*-new-test.js-Dateien decken den Flag-on-Zustand ab (sowie die neuen DOM-Selektoren für das vereinheitlichte Dropdown, Schalter-Elemente, Whisper-Indikator und geteilte Beschriftungs-Spans).
Wäre es möglich, die Option „Beitragstimmung umschalten“ auszublenden, wenn der ausgewählte Kategorietyper nicht Ideen ist oder die Kategorieeinstellungen die Funktion zur Beitragstimmung nicht aktiviert haben? : ))
Das war schon immer so: Das Plugin für Beitragsabstimmungen ist siteweit und nicht nach Kategorien begrenzt. Die Einstellungen auf Kategorieebene dienen lediglich zur Festlegung des Standards, nicht dazu, die Nutzung einzuschränken.
Wir befinden uns mit dem Plugin für Beitragsabstimmungen noch in einer Übergangsphase. Ich denke, wir müssen eine Migration planen, um eine breitere Nutzung nicht zu beeinträchtigen, bevor wir die Nutzung auf bestimmte Kategorien beschränken – allein schon, weil der „Ideen“-Typ ein relativ neues Konzept ist.
Die gute Nachricht ist, dass wir in der Zwischenzeit Hooks haben, um dies in einer Theme-Komponente zu ermöglichen … dies funktioniert in einem Initializer, um den Umschalter nur in einer Ideen-Kategorie anzuzeigen:
Hallo @Moin, danke, dass du uns auf dieses Problem aufmerksam gemacht hast.
Ich konnte das Problem auf meiner Seite mit Chromium, Firefox oder Safari nicht reproduzieren, und leider lässt sich das angehängte Video bei mir nicht abspielen.
Um uns bei der Diagnose und Fehlerbehebung zu unterstützen, könntest du uns ein paar weitere Details nennen?
Betriebssystem: (z. B. Android, iOS, Windows, macOS, Linux)
Browser & Version: (z. B. Chrome 125, Safari 17)
Discourse-Version: Diese findest du in deinem Admin-Dashboard oder indem du diese Anleitung auf Meta befolgst.
Etwas, das du jetzt gleich versuchen kannst:
Teste das Verhalten im Safe Mode, indem du /safe-mode ans Ende der URL deiner Site hängst (z. B. https://discourse.example.com/safe-mode).
Wenn das Problem verschwindet: Eine deiner Site-Anpassungen (Plugins, Themes oder Komponenten) verursacht wahrscheinlich einen Konflikt.
Wenn das Problem weiterhin besteht: Es handelt sich um einen Kernfehler, und die oben genannten Browser-/Geräte-Details helfen uns, ihn zu lokalisieren und zu beheben.
Danke für deine Geduld, das wird sehr geschätzt. Bitte lass es uns wissen, wenn du Fragen zu den hier geteilten Informationen hast.
Findest du es nicht etwas albern, mir die Details zum Safe-Mode und wie ich meine Discourse-Version finde zu erklären?
Wie du im Video oben sehen kannst (ich habe es erneut hochgeladen - bin mir nicht sicher, warum es heute nicht funktionierte), hatte ich den Safe-Mode aktiviert.
Die aktuelle Version ist 2a08d5d (Sie war anders, als ich den Bericht schrieb). Ich kann das Problem auch hier reproduzieren - ich habe nur mein Forum gewählt, weil Admins mehr Optionen haben, sodass das versteckte Menü besser sichtbar war. Auf Meta ist es kaum sichtbar. Meistens scheint der Button gar nicht zu funktionieren.
Normalerweise treten solche Probleme auf, weil mein Tablet eine “Desktop-Größe” hat, aber berührungsempfindlich ist. Ähnlich wie die Probleme hier oder hier
Ich werde Discourse mit diesem beabsichtigten Fix aktualisieren und benachrichtigen, wenn die Änderungen übernommen wurden. *Aktualisierung: Die Änderungen wurden übernommen, Sie werden den Fix in Ihrer nächsten Bereitstellung sehen, die Version d82dc7c oder neuer ausführt.
Nochmals danke, dass Sie das Problem gemeldet haben.
Nebenbei: Da Bearbeitungen im letzten Beitrag das Thema nicht mehr nach oben holen, funktioniert eine Bearbeitung nicht gut als Benachrichtigung. Einer deiner Kollegen hat einmal gesagt, dass man einfach separate Updates posten sollte. Es ist interessant, dass ihr das oft selbst nicht macht.