Multiselect-Benutzerfeld-Plugin defekt?

Möglicherweise wurde dies durch das kürzliche Discourse-Update (derzeit Version 2.5.0.beta2) beeinflusst.
Ich habe ein Multiselect-Dropdown-Feld, das zuvor eingerichtet und funktionsfähig war und nach der Registrierung usw. als bearbeitbar festgelegt wurde.

Bei bestehenden Nutzern werden zwar die Inhalte dieses Felds auf ihrer Benutzerprofilseite angezeigt, aber das Feld wird nicht zusammen mit den anderen bearbeitbaren benutzerdefinierten Benutzerfeldern auf ihrer Benutzerpräferenzseite aufgeführt.
Mit anderen Worten: Es gibt keine Möglichkeit mehr, dass ein Nutzer oder Administrator Änderungen vornimmt.

Außerdem sind bei neuen Nutzern, die sich registrieren, obwohl das Multiselect-Feld sichtbar ist, keine der Dropdown-Optionen verfügbar/angezeigt (man sieht nur ein schmales, leeres blaues Rechteck). Da dieses Feld als Pflichtfeld festgelegt ist, kann die Registrierung nicht fortgesetzt werden.

Ist dies ein bekanntes Problem? Und wurde bestätigt, dass ein Discourse-Update die Ursache ist? Ist bekannt, welche Discourse-Version am neuesten kompatibel ist – und gibt es eine sinnvolle Möglichkeit, darauf zurückzukehren?

Ich habe einen Bericht auf GitHub veröffentlicht, sehe aber, dass das Plugin seit einigen Jahren keine Entwicklungsaktivität mehr verzeichnet, sodass ich nicht optimistisch bin, dass von dort eine Lösung kommen wird. Gibt es andere (funktionierende) Möglichkeiten, ein Multiselect-Dropdown für Benutzerfelder in Discourse zu realisieren?

Zur Info: In den letzten Monaten gab es ein großes Upgrade des Select Kit im Core auf Version 2. Dies hat eine Reihe von Plugins und speziell diese Art von Steuerelementen betroffen. Wenn dieses Plugin seitdem nicht mehr gewartet wurde, funktioniert es möglicherweise tatsächlich nicht.

Ich schlage vor, dass du den Entwickler hier anschreibst oder im zugehörigen Meta-Thema postest, falls es eines gibt? Falls sie nicht antworten und es dir wichtig genug ist, poste im Marketplace, damit ein Freelancer es übernehmen kann?

Danke – ich habe die einzige Person hier, die einen ähnlichen Benutzernamen wie auf GitHub hat, bereits angeschrieben – ich hoffe, es ist dieselbe Person!

Ist es wahrscheinlich, dass diese Änderungen am Kern eine erhebliche Überarbeitung von Plugins wie diesem erforderlich machen?

Ich frage mich, warum die Mehrfachauswahl nicht bereits Teil der Kernfunktionalität ist.

Das ist es. Was sich geändert hat, ist die Art und Weise, wie das Steuerelement konfiguriert und verwendet wird.

Danke, Robert. Sehr zum Glück hat @j.jaffeux gerade angekündigt, dass er bereit ist, das Plugin zu reparieren – was für eine fantastische Community das ist!

Das ist großartig. Da es sein Upgrade war, sollte er gut aufgestellt sein!

Das sollte es beheben:

Jemand bei Procourse muss es jedoch noch mergen :slight_smile:

@j.jaffeux danke für die Korrektur. Ich habe sie zusammengeführt :slight_smile:

Hallo, vielen Dank an euch beide für die großartige Resonanz!

Ich habe sowohl das Plugin als auch Discourse auf die neuesten Änderungen aktualisiert, aber das Problem, dass das Dropdown-Feld auf der Benutzerprofilseite fehlt, besteht für mich weiterhin.

Ein möglicherweise verwandtes Problem ist, dass ich in allen Fällen zweimal auf den Link „Benutzerprofil

Könntest du bitte ein Video erstellen?

Sicher

Im Video hebe ich das Mehrfachauswahl-Feld hervor, wie es auf der Benutzerpräferenzen-Seite angezeigt wird. Wie Sie jedoch sehen können, erscheint dieses Feld nicht, obwohl ich zweimal auf ‘Profil’ geklickt habe, sodass es weiterhin nicht bearbeitbar ist.

Ein weiteres Problem, das Ihnen möglicherweise auf der Benutzerpräferenzen-Seite auffällt, ist, dass bei mehreren für den Benutzer geltenden Optionen keine Kommas zwischen den Mehrfachauswahl-Elementen angezeigt werden.

Bitte zeigen Sie mir den Fehler in der Browserkonsole, wenn Felder nicht angezeigt werden.

Was die Kommas betrifft, ist dies kein Discourse-Regression.

Das Konsolenfenster zeigt beim ersten Klicken auf ‘Profil’ die folgende Meldung:

VM173:1 Uncaught SyntaxError: Unexpected token N in JSON at position 0
    at JSON.parse (<anonymous>)
    at t.init_values (_discourse-multiselect-user-field-307aa8bb3934aada9a7d682455decf422704c235754739f0d5e4b19e3e909690.js:63)
    at D (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:25381)
    at p (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:41427)
    at Function.e.create (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:42006)
    at e.t.create (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:11490)
    at t.n.create (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:18623)
    at Object.evaluate (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:60870)
    at e.t.evaluate (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:59374)
    at e.t.evaluateSyscall (_ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:62789)
init_values @ _discourse-multiselect-user-field-307aa8bb3934aada9a7d682455decf422704c235754739f0d5e4b19e3e909690.js:63
D @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:25381
p @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:41427
e.create @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:42006
t.create @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:11490
n.create @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:18623
(anonymous) @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:60870
t.evaluate @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:59374
t.evaluateSyscall @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:62789
t.evaluateInner @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:62735
t.evaluateOuter @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:62727
e.next @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:64859
e.execute @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:64843
t.handleException @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:63724
t.handleException @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:63904
t.throw @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:63622
r.evaluate @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:60213
t.execute @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:63609
t.rerender @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:63936
h.render @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:19079
V @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:25920
t._renderRoots @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:19372
t._renderRootsTransaction @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:19410
t._revalidate @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:19456
t.invoke @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66276
t.flush @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66168
t.flush @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66372
t._end @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66948
t.end @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66634
t._run @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:67003
t._join @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66977
t.join @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:66694
f @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:53486
(anonymous) @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:45901
r @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:49817
handleEvent @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:45897
handleEvent @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:44834
(anonymous) @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:45224
dispatch @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:5251
v.handle @ _ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:5058
Show 10 more frames

Beim erneuten Klicken auf ‘Profil’ scheint sich die Fehlermeldung in der Konsole nicht zu ändern.
Kann ich eine Videoaufnahme senden, falls das hilft?
Gibt es eine Möglichkeit, Kommas zwischen den aufgeführten Optionen einzufügen? Derzeit werden bei mehreren zutreffenden Optionen, die ohne Trennzeichen aufgeführt werden, diese so gelesen, als handele es sich um eine einzige lange Optionszeichenkette.

Ok, ich werde mir das später heute oder morgen ansehen.

Vielen Dank!! Wir schätzen deine Hilfe sehr.

Hallo, hast du vielleicht Glück gehabt?

Ich bin mir nicht sicher, wie es dazu kam, dass dein Setting in diesem Zustand ist, aber irgendwie ist der Wert falsch. Ich habe einen PR für das Plugin erstellt, um die Parsing-Funktion robuster zu gestalten und bei einem Fehler, falls der Wert aus irgendeinem Grund nicht JSON-konform ist, auf einen Standardwert zurückzufallen.

Bezüglich des anderen „Problems

Vielen Dank!

Das Update wurde von meiner Discourse-Installation bisher nicht erkannt.

Nach dem oben Gelesenen klingt es, als ob ein ‘Merge’-Prozess erforderlich ist?
Ist das etwas, das ich versuchen könnte, ohne für alle Chaos zu verursachen?

Gibt es eine Möglichkeit, das Plugin vorläufig manuell zu aktualisieren? Und wenn ja, kann Discourse dann weiterhin weitere Updates verwalten?

Dies ist kein Problem im Discourse Core. Ich habe einen PR an den Plugin-Betreiber gesendet. Bis dieser gemergt wird, können wir nichts weiter tun.

Erfolg! Das Update ist durchgegangen und alles scheint nun zu funktionieren – vielen Dank, Leute.