2.9.0.beta3: Вставка GIF, новый стиль страницы категорий, улучшения для скрытых категорий и многое другое

Новые функции в 2.9.0.beta3

Вставка GIF-анимаций в редактор

Ранее, если пользователь копировал gif с веб-сайта в буфер обмена и пытался вставить его в редактор, мы вставляли только статичный один кадр (изображение) оригинального gif. Теперь мы корректно определяем наличие gif в буфере обмена и вставляем его в редактор, как и ожидалось.

Новый стиль страницы категорий: подкатегории с избранными темами

Подсветка просроченных напоминаний о закладках

Напоминания о закладках, сработавшие в прошлом, теперь выделяются красным цветом на вкладке закладок пользователя.

Опция загрузки аватара при наличии выбираемых аватаров

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

Только выбираемые аватары:

Выбираемые аватары и загруженные аватары

Централизованный интерфейс 2FA

Поддержка двухфакторной аутентификации (2FA) в Discourse значительно расширилась с момента её первоначального внедрения. Изначально поддерживался только TOTP (постоянно меняющиеся 6-значные коды), и только для входа в систему. Сегодня мы поддерживаем TOTP, ключи безопасности (включая биометрию) и резервные коды, а 2FA используется для проверки при выполнении других действий, помимо входа. Каждое из этих изменений увеличивало техническую сложность системы 2FA, дойдя до того, что существовало 5 различных реализаций интерфейса :exploding_head:. В версии beta3 мы стандартизировали и централизовали 2FA, создав единый интерфейс для всех методов 2FA. Этот новый интерфейс будет внедрен во все места использования 2FA в течение следующих нескольких бета-версий.

Отключение подкатегорий при отключении родительской категории

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

Масштабирование дневных лимитов флагов

Аналогично лайкам и правкам, максимальное количество флагов, которое пользователь может выставить в день, теперь увеличивается по мере роста уровня доверия пользователя.

Обновлённое модальное окно «Поделиться постом»

Мы обновили модальное окно, которое появляется при нажатии на временную метку поста.

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

  • Добавлена ссылка на оригинальное изображение в лайтбоксе
  • API для создания связанной учётной записи пользователя
  • Приоритизация порядка поиска групп на основе совпадения префикса
  • Добавлена кнопка полноэкранного режима для блоков кода
  • Автоматическое выделение URL для публикации
  • Отображение состояния посещения темы на странице поиска
  • Добавлено событие user_promoted в вебхуки
  • Переименование массового действия «Сбросить прочитанное» в «Отложить»
  • Разрешить модераторам массово менять владельца
  • Отображение ошибки при некорректном приглашении в тему
  • Новый плагин API для проверки использования загрузки
27 лайков

Ещё больше!

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

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

Анимированные аватары

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

  • Сделать gifsicle опциональной зависимостью
  • Приостанавливать анимацию при потере фокуса

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

  • Обрезка при установленной утилите gifsicle
  • Порядок методов алиасов

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

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

  • Улучшено случайное назначение поста

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

  • Добавлен отсутствующий заголовок уведомления
  • Новому типу уведомления требуется ещё одна строка интернационализации (i18n)
  • Новому типу уведомления требуются строки интернационализации (i18n)
  • Переиспользован метод запроса темы для поиска тем группы

Изменения UX

  • Рефакторинг списка тем

Zendesk

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

  • Спецификация создания тикета

Discourse Chat

Функции
  • Ограничение уникальных реакций-эмодзи до 30 на сообщение
  • Вставка ссылки с помощью сочетания клавиш в редакторе
  • Удаление функции перемещения в тему
  • Удаление каналов чата
  • Включение реакций в цитаты архива чата
  • Настройки для минимальной длины сообщения и отключения вложений
  • Закрытие/открытие канала чата
  • Новая настройка для определения реакций-эмодзи по умолчанию
  • Повторная попытка неудачного архивирования
  • Настройка чувствительности блокировки дублирующихся сообщений
  • Архивирование каналов чата
  • Автоматическая фокусировка редактора при нажатии клавиши на полной странице
  • Добавлена настройка сайта chat_default_channel_id
  • Разрешить использование BBCode [chat] внутри сообщений чата
  • Добавление сочетаний клавиш чата в модальное окно справки
  • Автоматическое молчание пользователей по флагам
  • Статусы каналов чата
  • Автоматическое молчание пользователей, превысивших лимит запросов
  • Кнопка быстрого молчания для персонала и блокировка взаимодействия заглушенных пользователей с чатом
  • Использование имени файла загрузки для отрывка ответа, если сообщение пустое
  • Разрешить использование BBCode [quote] в сообщениях чата
  • Подсветка блоков кода для сообщений чата
  • Бесконечная прокрутка вниз
  • Добавление простых сочетаний клавиш редактора
  • Уведомление пользователей о сообщении чата при цитировании
  • Ограничение скорости отправки сообщений с кнопкой повторной отправки
  • Цитирование в чате
Исправления ошибок
  • Вставка ссылки с активным выделением текста не работала
  • Операции с DOM должны выполняться после рендеринга
  • Обеспечено использование доступного пространства элементом chat-composer-details
  • Обеспечено отмена редактирования при смене канала
  • Не фокусировать чат автоматически при нажатии ?
  • Копирование цитат чата в буфер обмена ломается в Safari
  • Не выдавать ошибку, если пользователь больше не существует
  • Неправильное игнорирование «липкой» прокрутки после получения сообщений
  • Обеспечено наличие только одного действия с сообщением на мобильных устройствах
  • Возвращать только открытые каналы для быстрого селектора
  • Мы сравнивали объект пользователя и его идентификатор
  • Индикатор непрочитанных сообщений отображается только при необходимости
  • Использование аналогичных стилей для chat-emoji-avatar, как для chat-user-avatar
  • Использование системного пользователя для тем и постов архива
  • Использование правильной настройки chat_allow_uploads
  • Отображение последних 3 использованных эмодзи для недавних реакций
  • Перемещение индикатора непрочитанных в заголовок канала чата
  • Обеспечено, что tc-reply-display занимает необходимое пространство
  • Использование отдельного хранилища эмодзи в чате только для реакций
  • Очистка непрочитанных при архивировании канала
  • Автоматическое заглавие предложений на мобильных устройствах
  • Полностраничный режим не перехватывает пробел
  • Селектор каналов чата не работал для входящих вебхуков
  • Guardian can_rebake? ломал конечную точку пересборки основного поста
  • Улучшения инструмента архивирования
  • Уточнения инструмента архивирования каналов
  • Это всегда оценивалось как истина
  • Конвертация эмодзи в Unicode в push-уведомлениях
  • Вложенность локали для настройки сайта chat_default_channel_id
  • Перемещение кнопки настроек канала в список просмотра каналов
  • Откат события keyUp для chat-composer до keyDown
  • Отображение удаленных сообщений, если есть права модерации
  • Возможность перехода по вкладке и нажатия Enter на заголовке чата
  • Обеспечено, что тело страницы не прокручивается при вставке списка каналов
  • Обеспечено правильное отображение онлайн-флаера в ответах
  • Сохранение загрузок с ассоциированным ChatUpload
  • Возможность реакции на ранее подготовленное сообщение
  • Новая прямая ошибка при создании из-за canModifyMessages
  • Не разворачивать удаленные сообщения при прокрутке вверх
  • Фокус в редакторе после нажатия кнопки «Редактировать сообщение»
  • Всегда использовать темный цвет для фона при загрузке
  • Callback загрузки, возвращаемый из метода
  • Блокировка большего количества элементов интерфейса при предварительном просмотре канала
  • Не создавать ошибочное сообщение чата из события вебхука
  • Реакции пользователя правильно помечаются как reacted
Изменения UX
  • Центрирование заголовка канала на мобильных устройствах
  • Гораздо более специфичные уведомления об упоминаниях в чате
  • Уменьшение ширины круга is-online
  • Реализация индикатора присутствия в виде круга вместо пузыря
  • Согласованность уведомлений чата
  • Откат изменений отступов для .chat-channel-title
  • Повторное применение отступов каналов на мобильных устройствах
  • Улучшение поведения иконки при видимом чате
  • Рестайлинг страницы просмотра каналов
  • Корректировка стилей, удаление кнопки выхода из чата
  • Добавление визуального элемента при перетаскивании файлов для загрузки в чат
  • Увеличение целевой области для загрузок в чат
  • Удаление зазора уведомления для дополнительных типов уведомлений
  • Небольшое исправление отступов
  • Исправление несоответствий стилей при цитировании в чате
  • Небольшие исправления шрифта, ширины и иконок
Производительность
  • Удаление двух ненужных вложенных div для каждого сообщения
  • Устранение проблемы n+1 для сообщений in_reply_to
Доступность
  • Добавление роли region и атрибутов aria-label для важных областей чата

Голосование

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

  • Добавление столбца второго порядка сортировки для сохранения порядка при постраничном выводе.

BBB

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

  • Исправление совместимости после изменения в ядре

Календарь

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

  • Добавление праздничного флаера в чат
  • Добавлена поддержка часовых поясов (для повторяющихся и непериодических событий)
  • Добавлен отчет «В данный момент отсутствую»

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

  • Обеспечено, что клиент отправляет UTC на бэкенд
  • Отсутствующий перевод для отчета «В данный момент отсутствую»
  • Применение последних определений праздников
  • Обеспечена перезагрузка пользовательских полей в спецификации
  • Исправление скрытых недель календаря в месячном представлении
  • Удаление стрелки, даже если вокруг нее нет пробелов
  • Валидация повторяемости

Solved

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

  • Регрессия инициализатора
  • Обновление пользовательских полей и удаление дублирующегося fabricator

Encrypt

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

  • Проверка подписи с использованием криптографических примитивов
  • Не выдавать ошибку, если отсутствует currentRouteName
  • Улучшение ясности инструкции «Создать бумажные ключи»

Изменения UX

  • Небольшие обновления стиля кнопок редактора

Kolide

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

  • Обновление содержимого личного сообщения (PM) предупреждения пользователя после уничтожения устройства.
  • Назначение владельца устройства из предупреждения группы Discourse в личном сообщении.

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

  • Заголовок Content-Type обязателен для методов PUT в API Kolide.

Code Review

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

  • Разрешить повторный импорт удаленных тем
  • Валидация настройки code_review_default_parent_category
  • Отображение ошибки, если плагин не настроен
  • Экранирование трейлеров Git перед заменой ссылок
  • Не переиспользовать клиентов GraphQL

RSS-опрос

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

  • Быстрый отказ, если пользователь nil

Подписки

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

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

Cakeday

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

  • Не отключать эмодзи дня рождения, если cakeday отключен.

Zoom

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

  • Исправление совместимости после изменения в ядре

Reactions

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

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

Доступность

  • Обеспечено четкое отображение фокуса на кнопке реакции

Автоматизация

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

  • Реализация поля поста
  • Добавлена поддержка аргументов при использовании %%REPORT%%
  • Разрешено вставка отчетов с использованием синтаксиса плейсхолдеров
  • Добавлена поддержка скрипта вебхука Zapier
  • Совпадение заголовка темы в скрипте автоответчика

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

  • GroupField может быть уничтожен в середине инициализации
  • Продолжение #b17235b, ломающее форму
  • Не парсить дату, если нет start_date/end_date
  • Обеспечено, что мы не останавливаемся на первом пустом результате
  • Предотвращение запуска автоматизации, когда это не нужно в нескольких случаях
  • Обеспечено, что мы не упадем, если URL не указан

Изменения UX

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

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

  • Предотвращение ненужной работы в автоответчике как можно скорее

Docs

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

  • Удаление ссылки на share-popup

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

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

  • Использование правильного идентификатора в подсказке потока транскрипта
  • Использование правильного текста для «всех категорий»

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

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

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

  • Разрешить reviewables переопределять заголовок типа оценки.
  • Обновление иконок push-уведомлений
  • Включение индексации канонических URL
  • Использование канонических ссылок в ленте posts.rss
  • Добавление nofollow к альтернативной ссылке RSS в темах и категориях
  • Добавление нового типа списка настроек сайта с именем и значениями
  • Использование Postgres unaccent для игнорирования диакритических знаков
  • Возврат идентификаторов geoname из MaxMindDb
  • Добавление ENV для контроля ошибок themes:update
  • Замена всплывающего окна публикации в соцсети модальным окном
  • Отключение индексации неканонических страниц по умолчанию
  • Добавление настроек для масштабирования лимита ежедневных флагов
  • Использование нового выбора темы для модального окна приглашения

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

  • Не вызывать ошибку, если заголовок не может быть просканирован
  • Обеспечение корректной работы фильтров подкатегорий «все/ни одна» с тегами
  • Возврат ошибки 404 для недопустимых маршрутов /tags/c/...
  • Добавление replaceAll в browser-detect
  • Персонал не должен иметь возможность отправлять личные сообщения группам, которые «Никто» не может месседжить
  • При использовании Ember CLI код администратора плагина не загружался в тестах
  • Сброс последнего отправленного для существующих закладок
  • Импорт тестов Ember, снова
  • Записи тестов Ember в discourse-loader
  • Показывать опции закладок по умолчанию при редактировании
  • Удаление гонки запросов для пользователей администратора
  • Пропуск оптимизации памяти сборки ember-cli для нескольких задач rake
  • Всегда включать первого автора при конвертации в личное сообщение
  • Не запускать файлы чанков Ember CLI через babel дважды
  • Несоответствия навигации по потоку сообщений J/K
  • Возврат nil при неудаче RetrieveTitle.crawl
  • Обновление параметра id маршрута темы
  • Инвалидация кэша настроек сайта во всех экземплярах
  • Обновление уведомлений почтового ящика группы при архивировании/разархивировании
  • Применение проверок заблокированных доменов onebox при каждом перенаправлении
  • Ошибочный переход к сообщению в Firefox
  • Включение пути монтирования движка для областей API, добавленных плагинами
  • Разрешить администраторам изменять список игнорируемых пользователей
  • Отображать только первую указанную цену
  • Сделать reply-ids публичными, исправив опечатку
  • Показ HTML 404 на /posts/:id/raw и /p/:id
  • Обновление и пересборка использования старого централизованного сервиса аватаров
  • Предотвращение самоссылки discoveryTopics на discoveryTopics
  • Лучшее обнаружение и логирование файлов размером 0
  • Поддержка новой разметки на страницах продуктов Amazon
  • IOS пока не имеет работающих push-уведомлений
  • Сохранение имен классов ошибок отклонения электронной почты для журналов входящей почты
  • Корректное уведомление подписчиков с post_action_destroyer
  • Расчет стыковки — включение смещения main
  • Косвенно заглушенные категории для состояния отслеживания темы
  • Небольшое исправление отступа для кода на весь экран
  • Настройка фильтра эмодзи из начального автозаполнения
  • Убедиться, что html_raw поднят в пользовательской функции обработки markdown
  • На мобильных устройствах переполнение элементов управления постом, если кнопок много
  • Соблюдение окна охлаждения при редактировании помеченной темы
  • Новая косвенно заглушенная категория
  • Избегать валидаций при удалении постов
  • Перемещение movable_avatars_mode_validator_spec в новый каталог
  • Использование текстового описания категории в выборе категории
  • Санитизация параметров, предоставленных действиям пользователя
  • Сессионные куки подпапки разработки
  • Не предупреждать об пустом .discourse-compatibility
  • Не продвигать последовательность черновиков при редактировании заголовка темы
  • Соблюдение направления текста внутри цитат
  • Показывать кнопку приглашения, если пользователей можно пригласить
  • Показывать ссылки с 0 кликами в разделе лучших ссылок
  • Разрешить отсутствие категории, если по умолчанию она отсутствует
  • Использование свежих значений настроек темы при компиляции стилей
  • Обеспечение правильного добавления и удаления классов категорий/тегов
  • Соответствие EmailLog#bounce_error_code RFC
  • Увеличение FinalDestination MAX_REQUEST_SIZE_BYTES
  • Подсчет кликов по ссылкам с параметрами запроса
  • ReplyByEmailAddressValidator должен использовать EmailAddressValidator
  • Обновление атрибута can_see_members после выхода из группы.
  • Обработка значений nil в DistributedCache#defer_get_set
  • Не принимать диакритические знаки в слаг, если generation_method == ‘ascii’
  • Загрузка коротких URL загрузок только один раз
  • Невозможность фильтрации каталога пользователей при сортировке по полю пользователя.
  • Не увеличивать счетчик приглашений для текущего пользователя
  • Redis может быть недоступен при инициализации Redis
  • Показ тегов — скрыть подвал «нет тем», пока есть темы
  • Миграция постов для исправления пользовательских эмодзи с безопасным URL
  • Обновление логики application_helper, теперь что Ember CLI по умолчанию
  • Обеспечение согласованности хеша SHA1 для кэша JavaScript темы

Изменения UX

  • Изменения стиля глобального баннера
  • Скрытие блока флаера аватара группы, если он пуст
  • Настройка размера, положения и цвета значка «новый»
  • Разрешить уменьшение d-editor
  • Представление печати всегда показывает 0 голосов, скрыть его
  • Исправление смещенного аватара
  • Добавление описания на страницу 2FA при добавлении новых администраторов
  • Различение уведомления «электронная почта отключена» для «да» и «не персонал»
  • Удаление индикатора загрузки из выбора эмодзи
  • Изменение функций цвета для соответствия оригинальным функциям primary и tertiary
  • Улучшение областей касания временной шкалы
  • Добавление discourse-follow в официальный список плагинов
  • Отображение значка количества постов, даже если у пользователя только два поста.
  • Исправление выравнивания в полном поиске по странице
  • Изменения в гайде стилей и добавление переменных цвета
  • Изменение стиля кнопки массовой отправки приглашений администратором
  • Добавление «обновить» в сообщение об ошибке темы
  • Предотвращение переполнения меню пользователя на крошечных экранах
  • Контроль пробелов в списке тем категорий
  • Использование autocomplete=“off” для выбора даты
  • Улучшение текста default_code_lang

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

  • Исправление n+1 для категорий + избранных тем
  • Избегание перехода по ссылкам в RSS-лентах тем
  • Подписка на /new только при входе в систему
  • Выполнение всего кэшированного подсчета в фоновом режиме
  • Обновление message_bus до 4.2
  • Использование общего сообщения для ответов на отслеживаемые темы
  • Загрузка всех общих паролей за один раз
  • Уменьшение anon_polling_interval до соответствия long_polling_interval
  • Обновление message_bus до 4.1
  • Пропуск запуска ‘auto_leave’ во время каждого метода PresenceChannel
  • Введение кэша эмодзи сайта/глобального
  • Уменьшение количества вызовов EXPIRE от CachedCounting
  • Использование Redis SET EX GET вместо LUA-скрипта для подсчета
  • Завершение процесса rake во время ember build
  • Обновление ember-auto-import и webpack

Доступность

  • Фокусировка на последней просмотренной теме в списках тем
  • Использование динамического масштабирования шрифта на устройствах iOS
24 лайка