Таймер живой темы

Этот компонент темы заменяет стандартный таймер темы timed на живой таймер обратного отсчета.

29%20PM


Ссылка на репозиторий


  • Интервал перерисовки времени можно изменить в настройках компонента в зависимости от ваших задач.

  • Отображаемое таймером время можно форматировать несколькими способами через настройки компонента темы; документацию по этому вопросу можно найти здесь.

Планы

  • Отображение таймера в заголовке рядом с названием темы.
    Я ищу конкретные предложения по UI/UX для реализации таймера в заголовке в контексте Discourse, с целью сбора средств на разработку, если проявится достаточный интерес (@darhazer @tobiaseigen)

Установка

27 лайков

Это не работает уже несколько дней. Можешь посмотреть?

1 лайк

Да, я знаю, что часть кода, который я переопределил, изменена в ядре Discourse. Я посмотрю на это примерно в середине следующей недели.

cc @angus, @Ellibereth, @darhazer

4 лайка

Только что выложил обновление компонента для исправления совместимости с последней версией Discourse.

7 лайков

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

1 лайк

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

В любом случае вы можете присоединиться к обсуждению, связанному с компонентом, здесь:

1 лайк

Я не думаю, что нам это так уж нужно. В нашем случае это скорее «приятное дополнение», чем основная функция, которую мы бы часто использовали. Хотя выглядит отлично, молодцы.

1 лайк

К сожалению, этот компонент темы ломает интерфейс таймеров тем. Количество дней, похоже, превращается в количество секунд, а синяя полоса с надписью «Ответы в этой теме автоматически удаляются через ..» обрывается. Из-за этого невозможно удалить таймер. После удаления этого компонента темы всё снова заработало.

2 лайка

Его нужно снова протереть от пыли. Я займусь этим на следующей неделе. Спасибо за сообщение. Это убедительно доказывает необходимость напоминаний через закладки.

2 лайка

Ошибка в этой теме.

1 лайк

Я уже давно собирался зайти сюда. Посмотрю в пятницу.

1 лайк

Я могу воспроизвести это. Извините, что не обратился к этому раньше.

Компонент темы никогда не тестировался с таймерами, кроме таймера закрытия темы (close topic timer), так как он создавался специально для него, но название подразумевает, что он должен работать со всеми видами таймеров тем.

Кроме того, это не должно было влиять на какую-либо другую стандартную функциональность, по крайней мере. Я работаю над исправлением и скоро вернусь с решением.

Это была моя первая работа на заказ в Discourse. Возвращает старые воспоминания.

p.s.

Я создал PR для основного модуля таймера тем, чтобы сделать его расширяемым для разработчиков плагинов и тем. Переопределение монолитного метода может быть довольно подвержено сбоям.

cc @martin

4 лайка

Спасибо за исправление, я уже объединил его в основную ветку :+1:

2 лайка

Немного не по теме, но стоит отметить на будущее:

Префикс DEV: означает, что это рефакторинг, связанный с разработкой; нам не нужно ничего добавлять в примечания к выпуску.

FIX: означает исправление ошибки, которое мы, возможно, захотим выделить в примечаниях к выпуску.

FEATURE: означает новую функцию (или удаление функции), которую мы, возможно, захотим выделить в примечаниях к выпуску.

IMPR: немного странен — мы нигде не используем этот префикс.

4 лайка

Это моя плохая память. Я ошибочно запомнил пост Джеффа, где он объясняет эти термины, но могу представить, что IMPR не входит в их число. Я буду иметь это в виду.

2 лайка

Хорошая новость в том, что после слияния код стал более расширяемым и удобным для поддержки с точки зрения разработки. Я постараюсь исправить компонент на следующей неделе.

Спасибо @sam за подсказку и @martin за слияние.

2 лайка

Это должно быть исправлено, если вы обновите компонент темы и Discourse до последних версий с пометкой tests-passed.

Кроме того, теперь должна поддерживаться работа всех остальных таймеров. Буду рад помочь, если возникнут какие-либо проблемы.