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

Ещё больше!

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

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

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

  • Возврат случайно отменённого коммита:
  • Обеспечение того, чтобы embed_url содержал корректный http(s) URI
  • Выполнение ERB в пользовательском стиле электронной почты
  • Обновление jQuery до версии 3.5.0

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

Множество плагинов

  • Добавлен плагин rubocop-discourse
  • Исправления ошибок
    • Мы исправили множество ошибок во многих наших плагинах

Encrypt (Шифрование)

  • Удаление инструкций по ответу по электронной почте из уведомлений о зашифрованных личных сообщениях — ответ не поддерживается

Policy (Политика)

  • Уведомления о напоминании о политике теперь имеют высокий приоритет — используется зелёный значок уведомления вместо синего

Font Awesome Pro

Интеграция чата

  • Добавлен GroupMe в качестве поддерживаемого провайдера чата

Knowledge Explorer (Исследователь знаний)

  • Отображение статуса закрытия темы на скрытых страницах

Affiliate (Партнёрская программа)

  • Добавлена поддержка URL поиска

Data Explorer (Исследователь данных)

  • Добавлены дополнительные запросы

Assign (Назначение)

  • Уведомления о назначении теперь имеют высокий приоритет — используется зелёный значок уведомления вместо синего
  • Отображение аватара назначенного пользователя в кнопке и выпадающем списке

Subscriptions (Подписки)

  • Использование моделей для хранения данных
    • Это позволяет плагину отображать только информацию о подписках, созданную в Discourse. Хранение данных о подписках ограничено внешними идентификаторами, генерируемыми Stripe, чтобы мы могли взаимодействовать с API.

Zoom

  • Добавлена возможность использования join URL вместо SDK
  • Добавлена возможность обновления заголовка/даты записей прошедших вебинаров

Voting (Голосование)

  • Перемещение архивированных голосов при слиянии тем

Code Review (Рецензирование кода)

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

Discourse Hub App (Android и iOS)

  • Добавлена поддержка новых уведомлений высокого приоритета (например, закладки с напоминаниями)
  • Улучшена доступность кнопок
  • Исправлена проблема с пустым экраном в некоторых редких случаях при возврате в приложение из фона

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

Нажмите, чтобы развернуть

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

  • Добавлена настройка для отключения автоматической установки правил CORS в бакетах S3
  • Постоянные ссылки для тегов
  • Настройка категории для фильтра списка по умолчанию
  • Обновление выдержки из темы при пересоздании сообщения автора темы (OP)
  • Добавлена настройка сайта для максимальной длины выдержки из темы
  • Добавлена опция cookie с атрибутом SameSite ‘None’ для возможности кросс-доменных систем
  • Экспорт Composer.serializeToTopic в клиентском API плагинов
  • Увеличение допустимой длительности загрузки
  • Добавлена конечная точка для отдельных SVG-иконок
  • Добавление структурированных данных в соответствии с рекомендациями Google
  • Введение ключа переопределения только для сотрудников для discourse-presence
  • Добавление заголовка noindex на страницы тегов
  • Разрешение аутентификации через параметры для UserApiKeys
  • Разрешение плагинам регистрировать обратный вызов для игнорирования DraftSequence
  • Канонический URL по умолчанию
  • Передача экземпляра revisor в событие DiscourseEvent post_edited
  • Добавление заголовка noindex на страницы бейджей, групп и /my
  • Разрешение индексации страниц Google для их последующего удаления
  • Добавление заголовка no_index, если роботы отключены
  • Фильтрация настроек по плагину
  • Ужестчение правил ограничения скорости для функции «Забыли пароль»
  • Исключение заглушенных категорий из списка тем «Топ»
  • Опциональное удаление закладки при отправке напоминания
  • Включение позиции категории при экспорте категорий
  • Onebox для видео с Reddit
  • Onebox для видео с Facebook
  • Nokogumbo

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

  • Улучшение скрипта уменьшения размера изображений
  • Возврат false, если URL загрузки является недопустимой ссылкой mailto
  • Редактура предупреждения о доминирующей теме
  • Ошибка параллельного доступа при создании миниатюр тем
  • Не возвращать ошибку 500, если домен недопустим при добавлении домена автоматического членства
  • Не разрешать тег с именем ‘none’
  • Правильное блокирование нечеловеческих пользователей в системе черновиков
  • Включение lazyYT-container в HTML обработанного сообщения
  • В документации использовалась неверная функция
  • Стили электронной почты оценивались в неправильном порядке
  • При создании нового личного сообщения имя пользователя/группы должно быть регистронезависимым
  • Нет необходимости во втором приведении к нижнему регистру
  • Пропуск разового задания для групп с недопустимым URL эмблемы
  • Не использовать столбец flair_url в качестве запасного
  • Сохранение заголовка композера и ответа при переключении на личное сообщение
  • Удаление пользователя не удалялось, если у него был заголовок
  • Карточка группы не отображается, если пользователь не может видеть её участников
  • Явный вызов метода getURL для предотвращения переопределения контекста this
  • Выравнивание двойных кнопок на мобильных устройствах
  • Лучшее выравнивание кнопок подвала темы между браузерами
  • Мы не создаём объект Post, если отправленное сообщение отклонено. Нам нужно подсчитывать элементы рецензирования напрямую.
  • Живая перезагрузка CSS в режиме разработки
  • Удаление внешнего ключа доступа к сообщениям из загрузок
  • Поле ввода тегов сообщает, что теги необязательны, когда они обязательны
  • Разрешение использования client_id приложения GitHub для конфигурации OAuth
  • Обеспечение регистронезависимости выбора категории
  • Добавление отсутствующих тегов в заголовок опубликованной страницы
  • Грантер бейджей был отключён по умолчанию
  • Sidekiq использует _forim_session
  • Отображение счётчиков сотрудников, если количество отклонённых сообщений — единственное значение для отображения
  • Запросы не регистрировались корректно
  • Путь должен быть addon, а не app
  • Разрешение работы устаревания с Ember CLI
  • Select-kit находился не в том месте
  • Обновление default_template.html
  • guidFor не является частью Ember.Object
  • Не параметризовать tag_id
  • Не вызывать сбой при попытке разобрать недопустимые или не-ASCII URL
  • Отправка веб-хуков для флагов
  • Не устанавливать значение по умолчанию для веб-хуков без событий
  • Миграции не должны завершаться ошибкой, если база данных частично мигрирована
  • Переключение discobot на получение аватара из Gravatar
  • Удаление всех связанных данных при удалении пользователя
  • Свойство has_been_uploaded? хранилища S3 не учитывало путь к бакету S3
  • Восстановление резервных копий могло завершиться ошибкой для дампов базы данных > 8 ГиБ
  • Проверка backtrace и backtrace_locations перед попыткой вывода ошибки
  • Описание для категории ‘uncategorized’ было пустым
  • Отображение полезного сообщения при запуске плагина без backtrace
  • GroupArchivedMessage принадлежит Group, а не User
  • Применение flex для topic-footer-main-buttons
  • Объединение миграции закладок с пользователями для избежания потери записей пользователей
  • Рандомизация имени файла при создании из фикстуры
  • Использование папки /tmp/pid для хранения файлов фикстур
  • Обновление версии rack с 2.0.8 до 2.2.2
  • Восстановление резервной копии не очищало кэш переопределений переводов
  • Отмена нескольких переопределений переводов не очищала кэш
  • Улучшения и исправление регрессии с category-selector
  • Более надёжная и последовательная загрузка date-picker
  • Обеспечение отсутствия загрузки изображений при сериализации миниатюр темы
  • Разрешение удаления таймера темы с типом delete_replies
  • Обеспечение вызова hide при уничтожении карточки
  • Не удалять стоп-слова при использовании английского языка
  • Выделение reset_last_seen_cache! в user_spec
  • Переключение действия композера не обновляет содержимое действий композера
  • Компонент всё ещё использовался data explorer
  • Включение CSS-активов плагина при предварительном просмотре тем
  • Отображение заголовка в заголовке sk, если выбранное имя отсутствует
  • Корректное увеличение версии API плагина
  • Использование URL CDN для миниатюр тем
  • Разрешение миграций сообщений с использованием #change для выполнения небезопасной миграции
  • Всегда возвращать 0 для текущего DraftSequence нечеловеческого пользователя
  • Выпуск WebAPK был сломан из-за иконок ярлыков
  • Случайный сбой user_spec
  • Обход ошибки сервера WebAPK с изображениями без размеров
  • Не вычислять черновик для ботов на маршруте индекса категорий
  • Применение цитирования кода без подсветки синтаксиса
  • Использование правильных иконок для меню ярлыка приложения
  • Запуск тестов cookie только после входа в систему
  • Разрешение загрузки миниатюр lazy-yt через pull_hotlinked_images
  • Удаление старой миграции
  • Не вычислять черновик для (ро)ботов :robot: в списке тем
  • Специфическая ошибка электронной почты для ответов на дайджест-письма
  • Обнаружение Wayback Machine по user agent
  • Загрузка локали первым в приложении wizard
  • Обновление mini racer для корректных дампов кучи
  • Никогда не сохранять черновик, пока он сохраняется
  • Не публиковать присутствие при вводе, если композер не открыт
  • Предотвращение прокрутки Safari при закрытии композера
  • Предотвращение запроса ThemeField дважды в SvgSprite.bundle
  • Присутствие композера показывает пользователя как редактирующего при ответе
  • Ограничение функции ввода в discourse-presence
  • Возврат URL /bookmarks к списку тем и добавление аватаров авторов закладок
  • Обработка отсутствующего возврата URL SSO провайдером
  • Предотвращение конфликтов имён столбцов в коде reviewable
  • Обеспечение правильного вычисления часового пояса для текущего пользователя в предварительном просмотре
  • Добавление типа для иконок меню ярлыка
  • Не выбрасывать исключение, если TopicLink не может быть создан
  • Добавление отсутствующих маршрутов RSS в белый список параметров API
  • Отображение кнопки «Настройки», если у плагина есть настройки
  • Безусловное сохранение черновиков увеличивает последовательность
  • Удаление лишних обратных слешей в регулярном выражении
  • Добавление tabindex=-1 на ссылки постов в tabLoc
  • Улучшение доступности навигации подвала на мобильных устройствах
  • Установка заголовка для кнопки уведомлений
  • Множественные улучшения schema.org
  • Заголовок должен пытаться использовать label перед name
  • Обработка удалённой темы при генерации миниатюр
  • Отображение имени категории в предварительном просмотре бейджа при редактировании
  • Предотвращение рендеринга topic-category, если он пуст
  • Остановка ошибочного очищения заголовка
  • Заголовок по умолчанию пуст при открытии
  • Решение проблем с «Следующий понедельник» для закладок, не работающих в некоторых локалях
  • CurrentUser теперь должен передаваться в resolveTimezone для решения проблем с локальным временем карточки пользователя
  • ESC для закрытия пустого черновика темы композера
  • Ввод в модальном окне закладок
  • Поддержка транспиляции js в плагинах с корневым админ-папкой
  • Некоторые корректировки интерфейса таблицы
  • Не запускать событие user_updated для пользователей-ботов
  • Удаление устаревшего URI.escape
  • Не разрешать null-опции для менеджера закладок
  • Миграция для установки столбца NOT NULL для delete_when_reminder_sent в закладках
  • Неверный класс CSS
  • Скобки были неверными, что приводило к всегда истинному выражению
  • preload-store был удалён
  • Улучшение позиционирования sk на мобильных устройствах внутри модального окна
  • Отображение кнопки «Закладка» для тем личных сообщений
  • Улучшение логики расчёта таймлайна темы
  • Корректное имя пользователя в уведомлении об редактировании для личных сообщений
  • Использование default_locale в подстановках локали вызывало проблемы
  • Сделать can_invite_to_forum устойчивым к вмешательству плагинов
  • Отображение даты закрытия опроса в местном времени
  • Preload-store был перемещён
  • Конечная дата диапазонов в HTML-предварительном просмотре была неверной
  • Изменение расчёта общего количества непрочитанных уведомлений в дайджест-письме пользователя
  • Discobot не был создан с нашим пользовательским аватаром
  • Сохранение блоков кода при цитировании
  • Нестабильные тесты. Из-за переходов CSS непрозрачность может быть ещё не 0
  • Исправление обёртки кнопок с большими кнопками
  • Избегание использования временной таблицы при миграции базы данных URL изображений
  • Решение проблем валидации Schema.org
  • Применение sameWidth с ширины экрана 450px
  • Предварительный выбор «Позже сегодня» при редактировании закладки, если время совпадает
  • Отказ PostgreSQL был сломан из-за маскирования исключений Rails
  • Улучшение стиля дайджест-письма в Outlook 2016
  • Возврат к использованию наблюдателя для поддержки загрузки большего количества уведомлений

Изменения UX

  • Удаление живого предварительного просмотра тем в пользу обновления
  • Имя пользователя вместо username для заголовка ссылки профиля
  • Добавление заголовка для ссылки профиля пользователя
  • Более последовательные стили мобильных баннеров/уведомлений, очистка CSS
  • Перемещение editFirstPost в тегируемые личные сообщения в выпадающем списке на мобильных устройствах
  • Удаление текста из кнопок закладки и поделиться для личных сообщений
  • Переименование «Редактировать сообщение» в «Редактировать»
  • Удаление жирного шрифта из текста бейджа категории
  • Улучшение поведения загрузки кнопки уведомлений темы
  • Добавление визуальной обратной связи при изменении уровня уведомлений темы
  • Удаление стрелки из кнопки уведомлений
  • Разрешение кэширования безопасных URL медиа в течение короткого периода времени
  • Отображение стрелки только в выпадающих списках кнопок подвала темы
  • Разрешение выпадающему списку отображать стрелку
  • Загрузка изображений YouTube более высокого разрешения, где доступно
  • Фокус на имени категории при редактировании категории
  • Добавление скопированного текста после нажатия кнопки копирования
  • Лучшая иконка действия композера при создании новой темы
  • Добавление символа в отчёт TL3, если количество ответов на тему ограничено
  • Не использовать маленькие изображения onebox как изображения постов/тем
  • Ограничение изменений клавиатуры модального окна iOS для композера
  • Введение действий композера при редактировании сообщения
  • Не отключать кнопку «Создать учётную запись» и отображать сообщение об ошибке для обязательных полей
  • Исправление жёстко заданного значения в описании бейджа Crazy in Love
  • Улучшение отображения сообщения валидации настройки сайта
  • Удаление подчеркивания из элементов del и ins
  • Предотвращение наложения таймлайна на кнопки подвала темы
  • Улучшение выравнивания и согласованности кнопки закрытия баннера и уведомления
  • Исправление позиционирования модального окна, когда клавиатура iOS видна
  • Корректировка меню администратора для лучшего соответствия коротким (горизонтальным) видам экрана
  • Удаление верхнего отступа из описания onebox Reddit
  • Удаление жирного шрифта для уменьшения акцента на именах категорий в посещённых темах
  • Исправление выравнивания времени на страницах активности пользователя
  • Добавление префиксного свойства, чтобы Firefox также получал табы с 4 пробелами в коде
  • Попытка более эффективного использования доступного пространства с sk
  • Настройки удаления закладки
  • Улучшение интерфейса второго фактора

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

  • Избегание обхода DOM в loadScript
  • Удаление внешних ключей из закладок
  • Обеспечение выполнения полной сборки мусора в контекстах
  • Дематериализация topic_reply_count
  • Избегание состояний гонки при создании ссылок на темы
  • Избегание выполнения одного и того же запроса дважды
  • Избегание обращения к базе данных при получении последовательности черновика пользователя-бота
  • Уменьшение эксклюзивной блокировки при изменении таблиц
  • Перемещение получения аватара в hijack для сертификата discobot
33 лайка