Примечания к выпуску Discourse 2.4.0.beta7

Новые функции в версии 2.4.0.beta7

Улучшения ключей API администратора

Discourse API — мощный инструмент для взаимодействия с сайтом Discourse. В последней бета-версии мы внесли ряд улучшений в систему ключей API, повысив как безопасность, так и функциональность.

  • Теперь пользователи могут создавать более одного ключа API, что позволяет отзывать отдельные ключи в случае их компрометации.
  • Ключи API теперь могут включать описание, что помогает отслеживать назначение каждого ключа.
  • Ключи можно отзывать, предотвращая их использование, без полного удаления.
  • Неиспользуемые ключи API будут удаляться через 6 месяцев бездействия. Это можно настроить через параметр сайта revoke_api_keys_days.

Приветственное сообщение для сотрудников

Как и новые пользователи, а также пользователи, достигшие уровня TL1, сотрудники теперь получают приветственное сообщение при получении прав модератора или администратора. Это сообщение приветствует пользователя в команде сотрудников, объясняет, как получить доступ к интерфейсу администратора, и содержит ссылку на Discourse Moderation Guide — отличный ресурс для новых сотрудников.

Новые параметры сайта для статуса уведомлений по тегам по умолчанию

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

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

Обновление предпочтений пользователей при изменении параметра сайта по умолчанию

Ранее при изменении параметра сайта, начинающегося с default_, изменения применялись только к новым пользователям. Существующие пользователи не затрагивались. Теперь администраторы смогут применять изменения исторически или только для новых пользователей.

Новый параметр категории: требовать наличие тегов из группы тегов для новых тем

Для сайтов, использующих группы тегов, сотрудники теперь могут требовать, чтобы все новые темы в категории содержали как минимум x тегов из определённой группы тегов перед созданием темы. Это отличный способ поддерживать упорядоченность тем.

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

Выбор основной группы пользователем

Мы добавили новый параметр сайта user selected primary groups. При включении этой опции пользователи смогут выбрать, какая группа будет для них основной. Это может быть полезно на сайтах, где основные группы предоставляют украшение аватара, и пользователи хотят иметь возможность переключать отображаемое украшение. При включении этого параметра пользователи, являющиеся членами групп, увидят новый выпадающий список выбора основной группы на вкладке «Аккаунт».

image

Настраиваемый стиль электронной почты

Сайты теперь могут настраивать внешний вид своих уведомлений по электронной почте с помощью пользовательского HTML и CSS. Новые опции настройки электронной почты доступны по адресу /admin/customize/email_style.

Поиск тем при вставке гиперссылки

При вставке ссылки в редакторе темы теперь можно искать существующие темы непосредственно в модальном окне гиперссылки.

37 лайков

Ещё больше!

Но подождите, есть ещё! Мы делаем всё возможное, чтобы выделить для вас новые функции и изменения, но изменений всегда слишком много, чтобы описать их все подробно. Для полного списка новых функций, исправлений ошибок, улучшений UX и многого другого обязательно ознакомьтесь с дополнительными функциями и исправлениями, перечисленными ниже.

Обновления безопасности

Эта бета-версия включает одно исправление безопасности для проблем, о которых сообщили наше сообщество и HackerOne.

  • Проверка разрешений при автозаполнении упоминаний

Улучшения плагинов

Заметки о пользователях

  • Исправление ошибки

Голосование

  • Исправления ошибок

Решено

  • Исправления ошибок

Patreon

  • Добавлена опциональная подсказка о пожертвованиях
  • Исправления ошибок

OAuth2 Basic

  • Улучшение текста

Data Explorer

  • Обмениваемые ссылки на отчёты
  • Исправления ошибок

Назначение

  • Новый параметр категории для добавления пункта навигационного меню «Не назначено»
  • Сортировка списка назначений по обратному дате bump (ранее — случайная)
  • Исправления ошибок

Akismet

  • Исправления ошибок
  • Рефакторинг кода

Docker Manager

  • Обновление зависимостей для устранения сообщённых уязвимостей
  • Всегда отображать ссылку на /admin/upgrade с панели управления

Переводчик

  • Исправление ошибки

Опрос RSS

  • Переименование из wellfed
  • Исправления ошибок

Onebox

  • Исправления ошибок

No Bump

  • Исправление ошибки

Ограниченные ответы

  • Первичный релиз

WP Discourse

  • Использование уникального временного ключа для DiscourseUtilities::get_discourse_categories. Эта функция возвращает больше данных, чем хранится во временном объекте, установленном для внутреннего использования плагином.
  • Исправление неверно отформатированных ключей заголовков

Zendesk

  • Исправление ошибки

Styleguide

  • Добавлена поддержка новых элементов ввода даты и времени

Политика

  • Сохранение истории принятия политики
  • Исправление ошибки

Дополнительные функции и исправления

[details=“Нажмите, чтобы развернуть”]

Новые функции

  • Загрузка переопределений переводов без использования JS eval
  • Добавлен метод «init» для дополнительных пунктов навигации
  • Возможность публикации Docker-разработки как локально, так и в сети
  • Использование alt-текста изображения вместо имени файла, если в лайтбоксах нет заголовка
  • Кнопка «Создать новую тему» на встроенной странице с параметрами
  • Прекращение обновления last_posted_at у пользователей для сообщений и шёпотов
  • Возможность отправки массовых приглашений пользователям на стадии ожидания
  • Удаление вложений и усечение поля raw для входящих писем
  • Добавление заголовка SES spam в распознаваемые заголовки спама
  • Сохранение списка тем для групповых личных сообщений
  • Редакторам вики разрешено редактировать теги для тем вики.
  • Включение URL изображения в сериализатор темы
  • Сохранение позиции прокрутки в списках личных сообщений
  • Сохранение позиции в списках личных сообщений
  • Экспериментальная скрытая настройка для резервных копий черновиков
  • Разрешение сотрудникам использовать topic_url для настройки шаблона электронной почты
  • Улучшение логики honeypot и вызова
  • Использование атрибута rel «ugc» вместе с «nofollow»
  • Добавление краткого описания сайта в заголовок страницы входа

Исправления ошибок

  • Пропуск недопустимых URL при проверке наличия аудио/видео в поисковых сниппетах
  • Добавление атрибута alt <img> для писем с резюме
  • Тонкая настройка спецификации restorer для повышения стабильности
  • Корректное отображение списка тем с тегами, когда для подкатегорий ничего не выбрано
  • Сборка с prettier для импортов
  • Разрешение доступа к переводам тем в инициализаторах
  • Фильтр FilterQueryParams изменяет состояние, которое по сути является глобальным
  • Улучшение регулярного выражения, используемого для управления размером изображений
  • Настройка мобильного режима для активного navItem не работала
  • Пропуск события размытия композитора при переключении приложений в iOS
  • Не обновлять дату created_at при повторной отправке приглашений
  • Не учитывать трафик мобильного приложения как посещения поисковых роботов
  • Нет необходимости передавать опцию cache в onebox
  • Видео с Dropbox не загружались
  • Обеспечение, чтобы меню не было слишком высоким только на настольных компьютерах
  • Предотвращение сбоя whitelisted_generic_onebox_spec с zeitwerk
  • Действие обновления должно находиться в миксине setting-component
  • Обеспечение, чтобы панель меню не была слишком высокой для экрана
  • TopicQuery плохо реагирует на подкатегории без определений
  • Не добавлять ссылку на личные сообщения в меню пользователя, если они отключены
  • Линтинг
  • Перемещение makeArray в discourse-common
  • Отсутствует импорт run
  • Не загружать CSS/JS-активы плагинов, когда они отключены
  • Непрочитанные темы не очищаются, когда шёпот является последним сообщением
  • Скрытие затихших подкатегорий для мобильных устройств
  • Нажатие клавиши Enter в формах отправляет, а не обновляет
  • Делает баннер согласия на уведомления доступным через клавиатуру и скринридер
  • Перемещение константы attachment_css_class из upload-short-url для discourse-markdown-it
  • Кэширование Discourse.system_user отдельно для каждого мульти-сайтового арендатора
  • При некоторых условиях черновик мог сообщать, что сохраняется, хотя не сохранялся
  • Теги можно фильтровать по categoryId без параметра q
  • Категории предпочтений пользователя по умолчанию не обновляются в интерфейсе настроек администратора.
  • Prettier при импорте миксина
  • Обеспечение наличия выдержки перед отображением биографии
  • Исправление валидации слага
  • Учёт пустого каталога загрузок при восстановлении резервной копии
  • Корректная генерация URL категории, когда слага пусты
  • Требование параметра q в маршруте /tags/filter/search
  • Не использовать импорты ember в красивом тексте
  • Использование модулей для хакa Ember.run.debounce при тестировании
  • Ещё больше исправлений линтинга
  • При вставке пользовательских полей с использованием ключевых слов ключ массива преобразуется в строку
  • Ещё один нестабильный jobs_base_spec.rb
  • Нестабильный jobs_base_spec.rb
  • Размещение кнопок масштабирования изображений безусловно
  • Закрытие модальных окон по клавише ESC и клику вне их области
  • Исправление ошибки при отправке ЛС на адрес электронной почты
  • Предпочтение Category.find_by_slug вместо Category.find_by(slug: …)
  • Поиск категории в TopicQuery по слага
  • Корректный ответ на поиск пользователя, когда category_id пуст
  • Настройка компонента темы не обновлялась в интерфейсе
  • Перезагрузка переводов плагинов в режиме разработки
  • При запуске мастера и использовании пользовательской темы, если base_scheme_id равен nil, использовать имя color_scheme по умолчанию
  • Разрешение хранения не уникальных строк в oauth2_user_infos
  • Обновление rack-mini-profiler
  • Скрытие затихших подкатегорий
  • Обработка случая nil для аватара, на всякий случай
  • Разрешение загрузок аватара с перенаправлением
  • Сломанные сертификаты
  • Сбой сборки с prettier
  • Отображение голосовавших в опросах в постах Oneboxed.
  • Проверка наличия понравившегося поста перед созданием уведомления
  • Правило Rubocop в спецификации restorer
  • Восстановление для не-мульти-сайта не вызывает ошибку на этапе переподключения
  • Обратная совместимость для не скомпилированных стилей CSS электронной почты
  • Не загружать участников группы, если пользователь не может их видеть.
  • Не следует отключать поля ввода темы при создании новой темы.
  • Тесты мастера были сломаны новым загрузчиком
  • Конфликт переменной контроллера Sortable
  • Исправлен тестовый набор
  • Исправление пути к модулю ImportExport
  • Переподключение в процессе восстановления подключается к правильной базе данных
  • Уведомления отсутствуют при определённых условиях
  • Уважение настройки tl3 links no follow
  • Возврат пустого аватара, когда загрузка аватара невозможна из-за размера файла
  • Исключение image_url из web_hook_topic_view_serializer
  • Предотвращение ошибок 500 из-за поиска с нулевым байтом
  • Следование перенаправлению возвращает URL, если код ответа 200
  • Не изменять размер изображения xkcd
  • Включение идентификатора пользователя в веб-хук уведомления
  • Загрузка модели пользователя, когда некоторые атрибуты отсутствуют.
  • Деление обновлений категории валидации слага идемпотентным
  • Перезагрузка только уведомлений при обновлении количества уведомлений
  • Исправления, связанные с Zeitwerk, для заданий.
  • Ограничение скорости и перехват генерации сертификатов.
  • Добавление общих расширений HTML5-медиа в теги аудио и видео onebox
  • Исправление автозаполнения упоминаний в новых темах в незащищённых категориях
  • Метод ‘only_hidden_tags_changed?’ возвращал ‘true’, даже если теги не изменились.
  • Id всегда истинен, так как был преобразован в то_i
  • D-button должен по умолчанию иметь тип button
  • Исправление генератора плагинов с zeitwerk
  • Различные исправления системы черновиков
  • Обновление Redis gem до версии 4.1.3
  • Полифилы поддержки forEach на NodeList для IE11
  • Обработка закодированных слага для подкатегорий
  • Не усекать закодированные слага
  • Отображение текстовых переопределений сайта для ключей, отличных от ‘_MF’
  • Преобразование множественных ключей в .other для проверки допустимой интерполяции
  • Обновление Redis gem до версии 4.1.3
  • Удаление патча свободы redis
  • Ещё больше исправлений закодированных слага
  • Не кодировать URL дважды
  • Больше мест для обработки закодированных слага
  • Обработка nil слага на /categories
  • Учёт nil при поиске подкатегорий
  • Исправление расчёта позиции таймлайна темы
  • Тег нельзя использовать, если он принадлежит двум группам тегов с родительским тегом
  • Использование генератора цитат в примере текста
  • Не отправлять уведомление на пустой push_url
  • Не делать вызов API уведомлений, если push_url пуст
  • Добавление миграций для исправления индекса на слагах категорий
  • Предотвращение получения фокуса кнопкой «Корзина» при отправке ввода в профиле
  • Уважение настройки private_email для письма с уведомлением о приглашении пользователя
  • Включение ссылки на тему при приглашении существующих пользователей в тему/ЛС
  • Исправление ссылки на количество строк в GitHub commit onebox
  • Public_file_server.enabled равен false в тесте
  • Добавление уникального индекса для предотвращения дублирования слага категорий
  • Category.find_by_slug
  • Не отменять закрепление поля ответа в iOS при выборе эмодзи
  • Удаление gem hiredis, который больше не нужен
  • Валидация разрешений подкатегорий
  • Валидация глубины дерева категорий
  • Перемещение уровня уведомления только когда пользователь опубликовал
  • Исправления, связанные с Zeitwerk, для заданий.
  • Обеспечение загрузки запланированных заданий.
  • Метод ‘local_cdn_url’ должен работать и для локальных относительных URL.
  • Разрешение темам загружать и предоставлять JS-файлы
  • Использование CDN-URL загрузки в предварительном просмотре композитора, если доступно.
  • Разрешение смены пароля с TOTP
  • Разрешение прокрутки панели меню поиска при отображении дополнительных результатов
  • Удаление ещё одного сломанного теста
  • Этот тест эмодзи тоже был сломан
  • Нестабильные тесты
  • Точный расчёт sub_total для reviewable_scores
  • Правильно закодированные слага при конфигурации
  • Обеспечение удаления временных файлов с диска при создании загрузки
  • Отображение правильного диффа при редактировании последовательных абзацев
  • Предотвращение создания дубликатов TopicAllowedUsers
  • Незначительные проблемы с макетом Github onebox
  • Мобильные корректировки для списка reviewable

Изменения UX

  • Поле ввода тегов предлагает обязательные теги, если ни один не выбран
  • Отображение адреса электронной почты пользователя в письме и интерфейсе «Предоставить доступ администратора»
  • Увеличение поля ввода имени группы тегов и добавление текста-заполнителя
  • Преобразование закрытия alert и модального окна в кнопки для улучшения доступности
  • Применение правильного фона к <select> на тёмных темах
  • Улучшение цитирования в iOS
  • Исправление регрессии с композитором iOS
  • Обновление стиля отключённых выпадающих списков с использованием переменных цвета
  • Стандартизация отображения тегов в результатах меню поиска
  • Ссылки панели управления ведут к списку коммитов git вместо сравнения git
  • Делает интерфейс членства в группе более понятным
  • Подчёркивание того, что локальные даты указаны в UTC в выдержках
  • Обеспечение того, чтобы информация GitHub onebox не переносилась без необходимости
  • Улучшение рендеринга нового GitHub onebox в электронных письмах
  • Добавление новой строки после закрывающего тега опроса для конструктора опросов
  • Обёртка подвала сводного письма в таблицу для лучших вариантов выравнивания
  • Включение метаданных в результаты поиска модального окна ссылки композитора
  • Добавление CSS-классов к шаблону сводного письма для более лёгкой стилизации

Производительность

  • Добавление фильтрационного индекса для баннеров
  • Добавление индекса к уведомлениям для ускорения перемещения постов
  • Прекращение уничтожения черновиков на клиенте при отправке ответов
  • Запуск дорогостоящей очистки загрузок реже
  • Кэширование количества новых пользователей в сводных письмах
  • Добавление индекса на группу в category_groups
  • Добавление уникального индекса oauth2_user_infos(user_id, provider)
  • Ускорение перемещения состояния прочтения
26 лайков