Возможно, это связано с недавним обновлением Discourse (в данный момент используется версия 2.5.0.beta2).
У меня есть выпадающий список с возможностью множественного выбора, который ранее был настроен и работал корректно, а также был установлен как редактируемый после регистрации и т. д.
Однако теперь для существующих пользователей, хотя содержимое этого поля отображается на их странице профиля, само поле отсутствует в списке редактируемых пользовательских полей на странице настроек пользователя.
Другими словами, у пользователя или администратора больше нет возможности изменить это поле.
Кроме того, для новых пользователей при регистрации, хотя поле с множественным выбором отображается, ни один из вариантов выпадающего списка больше недоступен/не виден (виден лишь узкий пустой синий прямоугольник). Поскольку это поле установлено как обязательное, регистрация не может быть завершена.
Является ли это известной проблемой? Подтверждено ли, что причиной стал обновлённый Discourse? Известно ли, какая самая последняя совместимая версия Discourse существует, и есть ли разумный способ откатиться к ней?
Я опубликовал отчёт на GitHub, но вижу, что над плагином не велась никакая разработка уже пару лет, поэтому не оптимистично настроен относительно того, что решение появится с этой стороны. Существуют ли другие (работающие) способы реализовать выпадающий список с множественным выбором для пользовательских полей в Discourse?
К вашему сведению, за последние несколько месяцев в ядре Select Kit прошло крупное обновление до версии 2. Это затронуло ряд плагинов, в частности, такой тип управления. Если этот плагин не поддерживался с тех пор, он действительно может не работать.
Рекомендую написать разработчику здесь или создать тему в его мета-теме, если она существует. Если они не ответят, а вопрос для вас достаточно важен, опубликуйте пост в Marketplace, чтобы фрилансер мог взяться за задачу.
Я обновил как плагин, так и Discourse, включив последние изменения, но проблема с отсутствием выпадающего поля на странице профиля пользователя по-прежнему сохраняется у меня.
Возможно, связанная проблема заключается в том, что во всех случаях мне приходится нажимать дважды на ссылку «Профиль пользователя» в левой части страницы настроек пользователя. При первом клике отображаются только стандартные поля пользователя, и только при втором клике появляются и пользовательские поля, но без поля множественного выбора (к сожалению, трижды кликнуть не помогает).
Я пробовал на нескольких браузерах и в каждом случае очищал кэш браузера.
Могу подтвердить, что новые пользователи при регистрации теперь видят варианты в выпадающем списке.
В видео я показываю поле множественного выбора так, как оно отображается на странице настроек пользователя. Однако, как вы видите, даже после двойного клика на «Профиль» это поле не появляется и остаётся недоступным для редактирования.
Вторая проблема, которую вы можете заметить на странице настроек пользователя: между элементами множественного выбора не отображается запятая, когда для поля пользователя применимо более одного варианта.
В окне консоли отображается следующее сообщение при первом нажатии на «Профиль»:
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
При повторном нажатии на «Профиль» сообщение об ошибке в консоли, похоже, не меняется.
Могу я отправить видеозапись, если это поможет?
Есть ли способ добавить запятые между перечисленными вариантами? В настоящее время, если применимо несколько вариантов, они перечисляются подряд без разделителя и воспринимаются как одна длинная строка варианта.
Не совсем понятно, как вы пришли к такому состоянию, но somehow значение вашего параметра неверно. Я создал PR для плагина, чтобы сделать парсинг более устойчивым и использовать значение по умолчанию, если по какой-то причине значение не может быть распарсено как JSON.
Что касается другого «проблемы», это запрос на добавление новой функции для владельцев этого плагина. Хотя я не уверен, что они вообще могут это сделать.