Es posible que esto se vea afectado por la actualización reciente de Discourse (actualmente en la versión 2.5.0.beta2).
Tengo un campo de menú desplegable multiselección que estaba configurado y funcionando correctamente, y establecido como editable después del registro, entre otras cosas.
Sin embargo, ahora, para los usuarios existentes, aunque el contenido de este campo se muestra en su página de perfil de usuario, el campo ya no aparece junto con los demás campos personalizados editables en su página de preferencias de usuario.
En otras palabras, ya no hay forma de que el usuario o el administrador lo modifiquen.
Además, para los nuevos usuarios que se registran, aunque el campo multiselección es visible, ninguna de las opciones del menú desplegable está disponible o se muestra (solo se ve un rectángulo azul estrecho y vacío). Como este campo está establecido como obligatorio, el registro no puede continuar.
¿Se trata de un problema conocido? ¿Está confirmado que fue causado por la actualización de Discourse? ¿Se sabe cuál es la versión más reciente de Discourse compatible con esto? ¿Y existe alguna forma sensata de volver a ella?
He publicado un informe en GitHub, pero veo que el plugin no ha tenido actividad de desarrollo en los últimos dos años, por lo que no soy optimista de que una solución provenga de esa dirección. ¿Existen otras formas (que funcionen) de implementar un menú desplegable multiselección para los campos de usuario en Discourse?
FYI: En los últimos meses se realizó una gran actualización del Select Kit del núcleo a la versión 2. Esto afectó a varios complementos y, específicamente, a este tipo de control. Si este complemento no ha sido mantenido desde entonces, es posible que realmente no funcione.
Te sugiero que le envíes un mensaje al desarrollador aquí o que publiques en su tema de metadatos, si existe. Si no responden y es lo suficientemente importante para ti, publica en Marketplace para que un freelancer lo tome.
¡Hola, gracias a ambos por una respuesta increíble!
He actualizado tanto el plugin como Discourse para incluir los últimos cambios, pero el problema de que la página de perfil del usuario omita el campo de lista desplegable persiste para mí.
Un problema posiblemente relacionado es que, en todos los casos, tengo que hacer doble clic en el enlace Perfil de usuario en el lado izquierdo de la página de preferencias de usuario. El primer clic muestra solo los campos estándar del usuario, y solo el segundo clic muestra también los campos personalizados del usuario, pero excluyendo el campo de selección múltiple (desafortunadamente, hacer clic tres veces no ayuda).
Lo he probado en varios navegadores y he borrado la caché del navegador en cada caso.
Puedo confirmar, sin embargo, que los nuevos usuarios que se registran ahora pueden ver las opciones de la lista desplegable.
¿Esto ayuda a delimitar el problema?
En el video, destaco el campo de selección múltiple tal como se muestra en la página de preferencias del usuario. Sin embargo, como puedes ver, a pesar de hacer clic dos veces en “Perfil”, ese campo no aparece, por lo que aún no es editable.
Un problema secundario que podrías notar en la página de Preferencias del usuario es que no aparece ninguna coma entre los elementos de selección múltiple cuando hay más de una opción aplicable al campo para ese usuario.
La ventana de la consola muestra el siguiente mensaje la primera vez que hago clic en ‘Perfil’:
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
Al hacer clic en ‘Perfil’ nuevamente, parece que el mensaje de error en la consola no cambia.
¿Puedo enviar una captura de video si eso ayuda?
¿Existe alguna forma de agregar comas entre las opciones enumeradas? Actualmente, si se aplica más de una opción, al listarse una tras otra sin un separador, se leen como si todas fueran una sola cadena de opción larga.
No estoy seguro de cómo terminaste en este estado, pero de alguna manera el valor de tu configuración es incorrecto. He enviado una PR al plugin para que el análisis sea más resistente y, si por alguna razón el valor no es analizable por JSON, se use un valor predeterminado.
En cuanto a la otra “incidencia”, es una solicitud de función dirigida a quienes poseen este plugin. Aunque no estoy seguro de si realmente pueden hacerlo.