Активация модального окна «Создать событие» одним щелчком

Я активно использую функционал «Календарь» и «События» на протяжении последних трёх лет на нескольких самохостинговых экземплярах Discourse. Было здорово наблюдать, как он развился в тот впечатляющий набор инструментов, который мы имеем сейчас.

Однако одна существенная проблема продолжает выделяться для моих пользователей.

Им трудно понять, как именно создать событие.

Это было актуально всё это время и для всех групп пользователей. Проблема сохраняется, несмотря на недавние улучшения процесса и модального окна.

Ключевая проблема, похоже, заключается в том, что концепция встраивания события в пост не является привычной или интуитивно понятной для большинства пользователей. По сути, им нужно иметь возможность инициировать событие одним кликом. Текущий процесс:

  1. Создать новую тему.
  2. Нажать кнопку «Плюс» на панели композера.
    — Нет, не ту кнопку «Плюс», а другую (да, их две).
  3. Нажать «Создать событие».
    — Да, она там есть, нужно просто немного прокрутить список вниз.
  4. Заполнить все детали.
    — Как только вы до неё дошли, всё работает довольно хорошо.
  5. Привести в порядок беспорядок в Markdown.
    — Если блок события находится рядом с существующим текстом, он ломается. Мои пользователи ломают это постоянно.

Видите проблему?

Чтобы смягчить это, я сделал две вещи.

Плагин TC для добавления кнопок Подписаться и Новое событие

Это даёт:

Использование мастера для реализации одного клика

Чтобы расширить это ещё больше, я использовал эту кнопку «Новое событие» для перехода к пользовательскому мастеру (используя Custom Wizard Plugin 🧙), который, в свою очередь, генерирует блок события, чтобы пользователи получали то самое одно действие, которое им нужно. Вот файл .json, который вы можете загрузить:

create-event-wizard.json (2.3 KB)

По умолчанию установлено время по Новой Зеландии; измените часовой пояс или добавьте выпадающий список в соответствии с вашим сайтом.

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

Гораздо лучше было бы иметь возможность для пользователей сразу переходить к созданию события (в идеале со страницы /upcoming-events и/или из назначенной категории «События») в рамках самого плагина.

4 лайка

Спасибо, это правда, что я тоже ищу упрощённое решение для создания события.

Кстати, я не знаю, возможно ли это, так как я создаю игровые партии. Мне бы хотелось, чтобы пользователи нажимали кнопку «Создать игровую таблицу», затем вводили название таблицы (название темы), после этого нажимали «Далее», загружали изображение игры, снова нажимали «Далее», вводили адрес места проведения таблицы, чтобы увидеть её расположение на карте, и, наконец, нажимали «Далее» для ввода дат события, количества участников и канала чата.

Я не очень хорошо разбираюсь в Custom Wizard, поэтому не уверен, что это возможно :sweat_smile:

2 лайка

Хорошая новость в том, что мы активно работаем над улучшением этого направления.

Плохая новость в том, что у нас пока нет примерных сроков завершения этих работ :slight_smile:

5 лайков

Может ли это быть конечной точкой запроса, например:

https://domain.com/new-topic?title=My%20cool%20event%20topic&body=%5Bevent%20start%3D%222026-05-14%2012%3A00%22%20end%3D%222026-05-14%2012%3A30%22%20status%3D%22public%22%20timezone%3D%22Europe%2FLondon%22%20reminders%3D%22bumpTopic.3.days%22%5D%0APurpose%3A%20weekly%0A%5B%2Fevent%5D

Я понимаю, что таким образом нельзя предварительно заполнить ответы, поэтому это не подойдёт для цели, описанной здесь: Are there any plans to allow multiple events per thread or per post?.

Я думаю, что основная идея, которую я хотел донести, заключается в том, чтобы хранить все события темы в первом сообщении (OP), но разделять их на основные и второстепенные, подобно опросу, который также может находиться в первом сообщении.

Я бы с удовольствием посмотрел твою форму :grin:

Не уверен, обрабатывает ли твоя форма события географическое положение с помощью плагина Locate. Он работает хорошо, но есть проблема: событие не отображается на карте категории, зато оно присутствует в теме события в разделе «Посмотреть карту». Похоже, Custom Wizard пропускает какой-то шаг.

Кроме того, у нас возникнет проблема с будущим Custom Wizard, так как, кажется, он больше не поддерживается, хотя он значительно упрощает работу пользователям благодаря своим макросам и пользовательским полям.

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

Недавно выпущенная подписка на календарь, для которой @nathank добавил кнопку в своём репозитории git, могла бы учитывать все основные события или иметь возможность включения/выключения

@nathank Я с удовольствием протестирую твою JSON-форму для проверки событий.

Заранее спасибо :folded_hands::grin:

Хорошо, я добавил это в первое сообщение:

Он поддерживается, но не разрабатывается активно. Однако он был собран очень надёжно (ранее это был продукт по подписке, в создании которого я участвовал), и, надеюсь, ещё какое-то время будет доступен.

1 лайк

Спасибо @nathank за файл JSON. Не мог бы ты объяснить, почему ты ставишь «w» перед идентификаторами шагов в markdown-разметке события?

У меня по-прежнему есть небольшая ошибка с формой и плагином locate. Мне бы хотелось, чтобы кто-нибудь проверил мой JSON, так как всё работает отлично, кроме того, что событие появляется на карте вместе со всеми остальными событиями. Каждый раз мне приходится подтверждать адрес в созданной теме.

Это нужно для вставки поля «Мастер» (Wizard) в текст создаваемого сообщения.

Да, взаимодействие между Locations и Calendar & Events пока не идеальное. @merefield отлично справился с интеграцией Locations и плагина Custom Wizard, но интеграция Locations с Calendar & Events (с момента появления новой функциональности Locations) ещё не реализована.

Я бы посоветовал пока отказаться от использования плагина Locations для Calendar & Events, и если для вас важно, чтобы это работало, свяжитесь с @merefield, чтобы обсудить возможность спонсирования разработки этой функции в будущем.

2 лайка