Плагин поля выбора нескольких пользователей не работает?

Возможно, это связано с недавним обновлением Discourse (в данный момент используется версия 2.5.0.beta2).
У меня есть выпадающий список с возможностью множественного выбора, который ранее был настроен и работал корректно, а также был установлен как редактируемый после регистрации и т. д.

Однако теперь для существующих пользователей, хотя содержимое этого поля отображается на их странице профиля, само поле отсутствует в списке редактируемых пользовательских полей на странице настроек пользователя.
Другими словами, у пользователя или администратора больше нет возможности изменить это поле.

Кроме того, для новых пользователей при регистрации, хотя поле с множественным выбором отображается, ни один из вариантов выпадающего списка больше недоступен/не виден (виден лишь узкий пустой синий прямоугольник). Поскольку это поле установлено как обязательное, регистрация не может быть завершена.

Является ли это известной проблемой? Подтверждено ли, что причиной стал обновлённый Discourse? Известно ли, какая самая последняя совместимая версия Discourse существует, и есть ли разумный способ откатиться к ней?

Я опубликовал отчёт на GitHub, но вижу, что над плагином не велась никакая разработка уже пару лет, поэтому не оптимистично настроен относительно того, что решение появится с этой стороны. Существуют ли другие (работающие) способы реализовать выпадающий список с множественным выбором для пользовательских полей в Discourse?

К вашему сведению, за последние несколько месяцев в ядре Select Kit прошло крупное обновление до версии 2. Это затронуло ряд плагинов, в частности, такой тип управления. Если этот плагин не поддерживался с тех пор, он действительно может не работать.

Рекомендую написать разработчику здесь или создать тему в его мета-теме, если она существует. Если они не ответят, а вопрос для вас достаточно важен, опубликуйте пост в Marketplace, чтобы фрилансер мог взяться за задачу.

Спасибо — я написал единственному пользователю здесь, у которого имя похоже на то, что на GitHub, — надеюсь, это тот же человек!

Вероятно ли, что эти изменения в ядре потребуют значительной доработки для плагинов вроде этого?

Интересно, почему множественный выбор ещё не является частью базового функционала?

Да. Изменился способ настройки и использования элемента управления.

Спасибо, Роберт. Очень повезло, что @j.jaffeux только что сообщил, что готов исправить плагин — какое удивительное это сообщество!

Это отлично. Это было его обновление, так что он должен быть в хорошей форме!

Это должно исправить проблему:

Однако кто-то из Procourse должен будет его слить :slight_smile:

@j.jaffeux Спасибо за исправление. Я его объединил(а) :slight_smile:

Привет, спасибо вам обоим за потрясающий отклик!

Я обновил как плагин, так и Discourse, включив последние изменения, но проблема с отсутствием выпадающего поля на странице профиля пользователя по-прежнему сохраняется у меня.

Возможно, связанная проблема заключается в том, что во всех случаях мне приходится нажимать дважды на ссылку «Профиль пользователя» в левой части страницы настроек пользователя. При первом клике отображаются только стандартные поля пользователя, и только при втором клике появляются и пользовательские поля, но без поля множественного выбора (к сожалению, трижды кликнуть не помогает).

Я пробовал на нескольких браузерах и в каждом случае очищал кэш браузера.

Могу подтвердить, что новые пользователи при регистрации теперь видят варианты в выпадающем списке.

Это сужает круг поиска проблемы?

Не могли бы вы, пожалуйста, сделать видео?

Конечно! 2020-03-12_00h34_39|video

В видео я показываю поле множественного выбора так, как оно отображается на странице настроек пользователя. Однако, как вы видите, даже после двойного клика на «Профиль» это поле не появляется и остаётся недоступным для редактирования.

Вторая проблема, которую вы можете заметить на странице настроек пользователя: между элементами множественного выбора не отображается запятая, когда для поля пользователя применимо более одного варианта.

Пожалуйста, покажите ошибку в консоли вашего браузера, когда поля не отображаются.

Что касается запятых, то это не регрессия в 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.

Что касается другого «проблемы», это запрос на добавление новой функции для владельцев этого плагина. Хотя я не уверен, что они вообще могут это сделать.

Спасибо!

Обновление пока не обнаружено моей установкой Discourse.

Из вышесказанного следует, что требуется процесс «слияния»?
Могу ли я попытаться сделать это самостоятельно, не нанеся никому вреда?

Существует ли способ обновить плагин вручную в это время, и если да, сможет ли Discourse по-прежнему управлять последующими обновлениями?

Это не проблема в ядре Discourse, я отправил PR владельцу плагина. Больше мы ничего не можем сделать, пока они не примут его.

Успех! Обновление пришло, и теперь всё, кажется, работает — большое спасибо, ребята!