Установка таймера темы может привести к катастрофическому сбою

Разве это не страшно?

Как воспроизвести

  1. Создайте черновик темы.
  2. Укажите целевую категорию и заполните содержимое.
  3. Установите таймер публикации на более поздний срок, не заметив, что целевая категория пуста; сохраните всё равно (вы не заметили проблему).
  4. Заметив, что что-то не так, попробуйте снова установить таймер темы с правильной категорией.
  5. Прокрутите вниз, чтобы созерцать последствия, и закройте вкладку до того, как перегрузка памяти убьёт ваш браузер.

Что произошло

Настало время отправить этот пресс-релиз. У черновика было 19 версий, он был чистым, всё, что нам нужно было сделать, — опубликовать его. Будучи разумными людьми, мы выбрали вариант «Опубликовать позже» с помощью таймера темы. Так что: Установить таймер темыЗапланировать публикацию — здесь целевая категория отсутствовала (возможно, см. Schedule Topic - Possible Bug), но я этого не заметил, поэтому выбрал произвольную дату и сохранил. В результате появилось уведомление о «отсутствующей категории».

Тогда я сказал: «Ладно, начнём сначала». Убрал уведомление, снова нажал «Установить таймер темы», выбрал правильную категорию — и бац. Худшее состояние Discourse за всю историю: система не отвечает, при прокрутке вниз заголовок повторяется. Я перезагрузил вкладку, закрыл её, очистил локальное хранилище, перезапустил браузер Firefox — ничего не помогло. У моего коллеги ещё был доступ к таймеру темы, поэтому он попробовал. Но как только тема обновилась, возникла та же ситуация.

Что должно произойти

  • При установке таймера темы целевая категория должна автоматически выбираться в выпадающем меню.
  • Таймер темы должен устанавливаться корректно.

Как я это исправил

  1. Открыл «монстр-вкладку».
  2. Скопировал содержимое.
  3. Закрыл вкладку.
  4. Открыл новый черновик.
  5. Вставил содержимое.
  6. Сохранил, установил таймер темы с правильной категорией…
  7. Перешёл в список черновиков тем, выбрал черновик-монстр и удалил его.
2 лайка

Извините, @hellekin, в этой функции действительно было несколько ошибок :grimacing:

5 лайков