2.8.0.beta3: Выбор пользователем значка аватара, индикатор последнего посещения темы, нативный выбор файлов и многое другое

Новые функции в версии 2.8.0.beta3

Выбор значка аватара пользователем

Пользователи, входящие в несколько групп, теперь могут выбрать значок аватара, который хотят отображать, в своих настройках, вместо того чтобы полагаться на автоматически назначаемый значок, основанный на их основной группе. Значки аватара поддерживают как иконки Font Awesome, так и пользовательские изображения.

Добавление индикатора последнего посещения на страницу темы

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

Использование нативного диалога выбора файлов

При загрузке файла в редактор Discourse теперь использует нативный диалог выбора файлов вместо отображения пользовательского модального окна. Discourse также передаёт операционной системе поддерживаемые расширения файлов, чтобы пользователям не нужно было думать о том, что разрешено. Помимо кнопки загрузки, пользователи по-прежнему могут копировать/вставлять и перетаскивать файлы для загрузки в редакторе.

Области действия API-ключа для редактирования постов

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

Улучшение процесса добавления пользователей в группу

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

Оптимизация изображений на стороне клиента

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

Сейчас сайты могут включить настройку composer_media_optimization_image_enabled, чтобы сжимать изображение на устройстве пользователя (компьютер, телефон или планшет) перед загрузкой.

Подробнее читайте в нашем блоге:

Улучшения истории наказаний

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

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

Модальные окна «Заглушить/Приостановить» автоматически заполняются значениями по умолчанию, но при этом модераторы по-прежнему могут выбирать и переопределять значения как обычно.

Первое заглушение/приостановка: первое значение. Второе заглушение/приостановка: второе значение и так далее.


Улучшения доступности

  • Корректировка правил заголовков в списках тем
  • Убрано помечание нескольких меток форм как применимых к одному элементу
  • Добавлены метки там, где это необходимо

Дополнительные функции

В этой бета-версии столько новых функций, что мы не можем описать их все. Ниже приведены некоторые дополнительные примечательные функции. Полный список новых функций доступен в следующем посте.

  • Настройка, позволяющая модераторам менять владельца поста
  • Приглашения теперь работают с существующими пользователями
  • Предупреждение, если приглашённый пользователь не может увидеть тему
  • Добавлены журналы действий сотрудников для отслеживаемых слов
  • Добавлено многоразовое поле для пользователей
  • Добавлена настройка slow_mode_prevents_editing.
  • Сотрудники могут получать напоминания о ожидающих пользователях чаще.
  • Подтверждение модального окна жалобы по CTRL + ENTER и CMD + ENTER
  • Параллельная загрузка в S3 для ускорения восстановления резервных копий
  • Блокировка необязательна при удалении пользователя из очереди проверки
  • Добавлен просмотр сообщений для всех официальных предупреждений пользователя
  • Добавлен фильтр групп в каталоге пользователей
28 лайков

Ещё больше!

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

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

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

  • Обход проверок FinalDestination с помощью канонических ссылок Onebox
  • Обеспечивает корректное использование таймаутов при подключении
  • Очистка данных YouTube Onebox (CVE-2021-32764)
    • Эта уязвимость затрагивает только сайты, отключившие или изменившие политику безопасности контента по умолчанию (content-security-policy)

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

Assign

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

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

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

  • Обработка некорректных исходных данных при миграции из CF
  • Миграция из CF в таблицу выполнялась некорректно
  • Поля автоматизации теперь используют одно и то же свойство значения
  • Кнопка «Назначить тему» не работала

OAuth2 Basic

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

  • Получение пользовательских атрибутов из данных пользователя.

Akismet

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

  • Блокировка при удалении пользователя теперь является опциональной

Calendar

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

  • Использование новых имён атрибутов для flair
  • Исправление задачи constants и запуск обновления
  • Выравнивание аватара приглашённого в Safari 15
  • Гем Holidays больше не требуется в Sidekiq.

Data Explorer

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

  • Добавлена отсутствующая строка
  • Перевод заголовков столбцов в таблице запросов

User Card Badges

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

  • Столбец изображения теперь называется image_upload в ядре

Anonymous Moderators

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

  • update_attributes! был удалён в Rails 6.1

Solved

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

  • Отображение сообщения об образовании в редакторе при ответе на решённую тему

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

  • Обратная совместимость для более старых версий Discourse

Изменения UX

  • Исправлено выравнивание решения на мобильных устройствах

Brightcove

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

  • Удаление видео при удалении постов

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

  • ApiError должен сохранять свой статус
  • Избегание конфликтов с другими плагинами

Encrypt

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

  • Поиск на стороне клиента в зашифрованных темах

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

  • Добавлено обходное решение для бага IndexedDb в Safari
  • Возврат пустой идентичности при сбое загрузки
  • Отклонение промиса, если идентичность не может быть загружена
  • Использование размера файла как запасного варианта для поиска информации о файле
  • Предотвращение сбоя при пустых результатах поиска
  • Усиление процесса расшифровки зашифрованных результатов
  • Заполнение всех полей, используемых для сериализации
  • Использование Session вместо sessionStorage
  • Замена использования глобального объекта Discourse

Performance

  • Предзагрузка тегов, если включено
  • Предзагрузка данных шифрования пользователей и тем
  • Загрузка только первых постов для кэша поиска

BCC

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

  • Предотвращение сбоя, когда user.name равен nil

Code Review

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

  • Не парсить эмодзи в сообщениях коммитов
  • Разрешить точки в именах репозиториев
  • Отсутствовали переводы для bad_github_X
  • Корректная обработка ошибок GitHub API в конфигурации плагина

Subscriptions

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

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

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

  • Сессии новых пользователей перенаправлялись некорректно на сайтах с требованием входа
  • Ограничение доступа модераторов к функциям администрирования Subscriptions

Изменения UX

  • Скрытие кнопки кампании при завершении цели

Reactions

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

  • Попытки иметь событие шина сообщений только на уровне темы
  • Достаточно полагаться на событие уровня темы :acted
  • Очистка подписок MessageBus при навигации между темами

Category Experts

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

  • Настройка для кнопок в списке тем, ведущих к постам

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

  • Не показывать кнопку одобрения для приостановленных пользователей
  • Ожидание загрузки для отображения количества одобрений
  • Не выдавать ошибку при отправке личного сообщения
  • Удаление пользовательских полей из неподтверждённых постов, когда пользователь удаляется как эксперт

Crowd

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

  • Добавлены переводы для имени метода и заголовка кнопки

Automation

Первый выпуск:

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

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

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

  • Обновление существующих пользователей при изменении уведомлений по умолчанию группы.
  • Добавлена возможность награждать значок несколько раз пользователям с помощью Bulk Award
  • Загрузчик изображений Uppy с UppyUploadMixin
  • Добавлен тег title для страницы деталей группы
  • Добавлен фильтр по периодам в маршруте топ-тем для тегов.
  • Перекодирование безопасно, запускается для файлов >` 500 КБ
  • Использование задания SMTP группы и почтового отправителя вместо изменения UserNotifications
  • Отображение эмодзи на метках GitHub при создании Onebox для задачи.
  • Настройка максимального числа избранных
  • Добавлено больше столбцов в исходящий EmailLog
  • Улучшение обработки стека истории при ошибках сервера
  • Использование адаптивных размеров изображений в потоке постов
  • Открытие модального окна редактирования закладки при нажатии на кнопку закладки на уровне темы
  • Добавление деталей последнего обновления в интерфейс настроек SMTP/IMAP группы
  • Согласование выбора даты в интерфейсе закладок и таймера темы с другими выборами даты
  • Добавлен мета-тег OpenGraph типа website
  • Добавление upgrade-insecure-requests в CSP при включённом force_https

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

  • Добавлен порядок для выводимых тегов ссылок на стили
  • Проблемы с выбором избранных значков
  • Активы для страницы тестов темы не сжаты
  • Проблемы с пользовательскими иконками в темах
  • Удалена кнопка для отклонения сообщений об ошибках темы
  • Исправление сетки user/badges
  • Ошибка мемоизации в UserLookup и рефакторинг
  • Использование массива для хранения лучшей ссылки для каждого Onebox
  • Использование Terser для минификации даже при отсутствии uglify-js
  • Не пытаться загружать значки, если их больше нет
  • Потоки электронной почты иногда не группируются для группового SMTP
  • Использование rem для размеров шрифтов в заголовках постов
  • Не использовать изображения user_generated как аватары в контенте Oneboxed Twitter
  • Не приводить к нижнему регистру «все группы» в выпадающем списке
  • Разрешить заглавные буквы в автоматических именах групп
  • Не показывать недопустимую опцию в выборе flair
  • Установка группы flair пользователя как основной группы
  • Различные исправления строк перевода
  • Предложение текущего имени пользователя для стейджированных пользователей
  • Схема Admin_user_response
  • Использование created_at, если last_posted_at равен null
  • Отображение правильных дат в временной шкале темы
  • Прокрутка вверх на страницах значков
  • Разрешение стейджированным пользователям выбирать своё имя пользователя
  • Живая смена логотипов при изменении цветовых схем в настройках пользователя
  • Различные исправления строк перевода
  • Разрешение пользователю очистить свою группу flair
  • Can_admin_group должно быть true при создании новой группы.
  • Обработка провайдеров хранилища, не реализующих ACL
  • Не интерпретировать обратные ссылки в содержимом электронной почты
  • Не оборачивать заголовок flair в выборщик
  • Не предотвращать запуск других таймеров темы при ошибке
  • Проверка типа существующих reviewables при создании нового reviewable
  • Исправление сообщения об ошибке для задачи rake fix_missing_s3
  • Установка CSP base-uri в self
  • Задача fix_missing_s3 завершается неудачей при неудачной загрузке (часть 2)
  • Не останавливать задачу fix_missing_s3, если сохранение загрузки не удалось
  • Сохранение порядка при обновлении уведомлений
  • Обработка SMTPServerBusy для групповой SMTP-рассылки
  • Умножение допустимости лимитов для собственных сертификатов discobot
  • Опрос не показывал всех голосовавших
  • Обработка крайних случаев для задания групповой SMTP-рассылки
  • Уважение personal_email_time_window_seconds в групповом SMTP
  • Построение URL для цитат с использованием номера поста, а не ID поста
  • Загрузка категории при наличии атрибута category_id.
  • Не перезагружать всю таблицу каталога при изменении ввода имени пользователя
  • Неверное определение ссылки в bootstrap-json
  • Обновление ключей локализации для логов отслеживаемых слов
  • Удаление старых таймеров тем напоминаний
  • Отображение пустых наборов результатов поиска
  • Делание нетранзакционной миграции идемпотентной
  • Установка класса на ссылки цветовых схем в bootstrap
  • Перестановка и скрытие опций таймера темы
  • Компиляция дочерних тем несколько раз (часть 2).
  • Переименование терминологии ninja edit в grace period
  • Раннее обнаружение сбоев декодирования в конвейере оптимизации изображений
  • Обнаружение сбоев изменения размера в клиентской оптимизации изображений
  • Не переводить название TrustLevel при генерации ссылок
  • Опечатка в discourse
  • Возврат функции добавления пользователя группы по электронной почте
  • Не закрывать объединённую тему, если первый пост не был объединён
  • Очистка соответствующего кэша при обновлении настроек шрифта
  • Пользователи TL4 не могут удалять чужие посты
  • Не перенаправлять на тему, которую пользователь не может видеть
  • Игнорирование канонической ссылки на localhost
  • Компиляция дочерних тем несколько раз.
  • Проблема при отправке пользовательского поля []
  • Всегда отображать количество тем
  • Использование абсолютного URL при перенаправлении пути SVG спрайта.
  • Обеспечение неприменения опций графиков к другим режимам
  • Включение user_field_ids в URL пагинации для элементов каталога
  • Некоторые административные отчёты (особенно резервные копии) не отображались
  • Не вызывать ‘set’ в уничтоженном компоненте таблицы каталога
  • Получение всех групп для выпадающего списка каталога пользователей
  • Нестабильный search-spec
  • Удаление устаревшего кода таймера темы
  • Обработка сбоя декодирования изображения при оптимизации изображений в редакторе
  • Удаление лишнего отступа из модального окна «Поделиться темой»
  • Удаление слова/фразы только при нажатии на иконку «x»
  • Кнопка закладки на уровне темы
  • Не показывать «В ответ на» для групповых SMTP-писем
  • Отсутствующая иконка редактирования категории.
  • Улучшение отображения участников в групповых SMTP-письмах
  • Заполнение topic_id для EmailLog
  • Массивы CF, заполненные nil, не удалялись
  • Перевод столбца каталога плагинов на мобильных устройствах
  • Следование перенаправлениям для inline/mini onebox
  • Всегда сериализовать правильные атрибуты для DirectoryItems
  • Увеличение максимального числа избранных значков до 6
  • Перевод заголовков таблицы в списке администраторов пользователей
  • Ручное обновление атрибутов DirectoryItemSerializer при изменении столбца каталога
  • Проверка всех миграций на удалённые столбцы/таблицы во время восстановления
  • URL «Загрузить больше пользователей» уважает параметр группы
  • Работа избранных с множественным награждением значками
  • Игнорирование отсутствующих загрузок в настройках темы
  • Абсолютный путь для directory-columns.json
  • Игнорирование постов, требующих одобрения, при подсчёте reviewables.
  • Задача rake fix_missing_s3 могла завершиться неудачей из-за отсутствующей загрузки
  • ShrinkUploadedImage был сломан с момента cb12a721
  • Обеспечение применения среднего значения к последнему незавершённому сегменту
  • Установка случайных значений для digest_attempted_at
  • Предпросмотр компонентов темы сломан, когда компонент не имеет SCSS.
  • Удаление дублирующегося ключа хэша add_unsubscribe_link
  • Отображение страницы detailed_404 при ответах 403
  • Отображение количества ссылок только один раз для oneboxes
  • Пользователи TL4 могут видеть свои удалённые посты
  • Уменьшение размера изображения в последнюю очередь при сохранении загрузок
  • Корректная реализация среднего значения для отчётов
  • Генерация нескольких ссылок для целей, не относящихся к темам.
  • Стили цветовых схем не загружаются, если не установлена тема по умолчанию.
  • Предотвращение воскрешения старых тем через ответ по электронной почте для групповых почтовых ящиков с включённым SMTP
  • Удаление заголовка List-Unsubscribe при использовании группового SMTP
  • Не отображать дважды пользователя, изменившего голос
  • Не проверять дублирующиеся ссылки в Onebox
  • Добавление границ слов для замены и тега отслеживаемых слов
  • Обновление raw поста из ответа сервера
  • Мобильная разметка для административного интерфейса отслеживаемых слов
  • Обеспечение того, что validValues является массивом
  • Не добавлять заголовки рассылки в групповые SMTP-письма
  • Кнопка «Отклонить» для новых сочетаний клавиш не работает
  • Правильное удаление и повторное создание столбца для directory_columns
  • Использование правильного свойства для ссылки на встроенный пост jump-up
  • Разрешить загрузку SVG, если размеры являются дробной частью единицы
  • Проблема с БД после отката миграции
  • Добавление нескольких автоматических тегов в административном интерфейсе отслеживаемых слов
  • Переводы заголовков таблицы в каталоге участников группы
  • Предотвращение принудительного перехода в несуществующий режим
  • Повторная отправка только ожидающих приглашений
  • Уничтожение приглашений анонимизированных электронных писем
  • Обеспечение того, что данные не сворачиваются несколько раз
  • Перемещение allow_unknown_sender_topic_replies за пределы блока SMTP/IMAP
  • Убедиться, что reset-new для отслеживаемых не ограничивается per_page count
  • Ember CLI терял некоторые предзагруженные данные
  • Сортировка списков файлов для обеспечения согласованного хэша предкомпиляции активов
  • Кнопка закладки на уровне темы перестает работать, если выбрать «Нет» в модальном окне подтверждения очистки всех закладок
  • Компонент avatar-flair должен корректно обрабатывать отсутствие информации о группе
  • Пропуск неудачных тестов для редактора
  • Мгновенное обновление raw и cooked после редактирования
  • Убедиться, что topic_user.bookmarked синхронизирован в большем количестве мест
  • Валидация загрузки после вызова события “before_upload_creation”
  • Уважение настройки nofollow в ссылках на избранные темы.
  • Обновление потока постов после обновлений постов на месте
  • Некоторые абсолютные ссылки вызывали полную перезагрузку страницы
  • Отображение настроек электронной почты группы, если включен только SMTP
  • Корректировка стиля первого уведомления
  • Понижение приоритета категории редактора при навигации
  • Не отображать элемент user-avatar-flair, когда у пользователя нет flair
  • Нестабильные тесты JavaScript с фальшивыми таймерами
  • Нажатие на URL с другим префиксом URL не работало
  • Не перезагружать пост, если raw присутствует
  • Не удаётся загрузить bootstrap с ember-cli, когда включено login_required
  • Правильное подключение ссылки на ответ к посту при отправке групповой почты
  • Ошибка линтера: count не определён
  • Множество тестов плагинов использовали старые, несовместимые с Ember API CLI
  • Не блокировать пакет SVG спрайтов, если файл отсутствует
  • Тесты темы должны работать в продакшене
  • Ошибки при загрузке защищённых загрузок, когда защищённые загрузки отключены

Изменения UX

  • Остановка переполнения мобильной onebox imgur/google photo
  • Убедиться, что на странице значков всегда есть отступ
  • Улучшение согласованности модального окна «Поделиться»
  • Перемещение спиннера подтверждения пропуска авторизации внутрь тела модального окна.
  • Добавление кнопки копирования для публичного ключа темы
  • Улучшение ссылки на страницу настроек на вкладках «Новые» и «Непрочитанные»
  • Добавление состояния успеха для кнопки копирования
  • Исправление z-index для предупреждения о новой теме
  • Перевод типа действия в ошибке регулярного выражения отслеживаемых слов
  • Проблемы с макетом строки последнего посещения темы.
  • Удаление фонового изображения после загрузки
  • Удаление верхней границы на маленьком действии после строки последнего посещения.
  • Использование переключателя массового выбора списка тем для списка сообщений пользователей.
  • Согласование размера эмодзи для oneboxed GH задач с короткими тегами.
  • Возможность выбора содержимого опроса
  • Корректировка отступов в панели администратора
  • Добавление «Обработка загрузки» в область статуса редактора во время оптимизации загрузки
  • Горизонтальная прокрутка вверху каталога пользователей (при необходимости)
  • Корректировка строки временной метки в Twitter onebox
  • Улучшение стиля цитат в электронных письмах
  • Добавление уведомления, когда отслеживаемые слова являются регулярными выражениями
  • Улучшение отступов для мобильных уведомлений
  • Упрощение выбора чекбокса массового выбора
  • Исправление отступов мобильных уведомлений
  • Упрощение скрытия эмодзи при регистрации
  • Скрытие столбцов электронной почты при выборе «Скрыть электронные письма»
  • Улучшение зума/навигации в галерее lightbox
  • Исправление макета перехода к посту на мобильных устройствах
  • Исправление выравнивания кнопки прогресс-бара на мобильных устройствах
  • Ежедневное автоматическое группирование менее чем за 34 дня вместо 30
  • Использование кнопки вместо якоря в панели отфильтрованных ответов
  • Удаление ссылки на форму обратной связи в настройках
  • Улучшение сообщения об ошибке удаления пользователя и возврат правильного количества постов.
  • Улучшения для перестановки категорий
  • Добавлена подсказка о том, что теги могут быть включены в группы тегов

Performance

  • Улучшение производительности обновления topic_user.liked при перемещении постов
  • Улучшение производительности post_timing при перемещении постов
  • Оптимизация заполнения topic_id
  • Кэширование категорий в модели Site (часть 3).
  • Удаление n+1 в каталоге пользователей
  • Обновление статуса защищённых загрузок поста в задании
  • Эager загрузка ассоциаций Темы в Stylesheet Manager.
  • Кэширование категорий в модели Site (часть 2).
  • Кэширование категорий в модели Site.
  • Удаление лишнего запроса PG.
  • Выполнение фильтрации пользователей в SQL
  • Избегание бессмысленного запроса PG, когда у темы нет переменных.
  • Анимация request animation frame
19 лайков