f7support: опрос доски тикетов, скролл чата, непрочитанные

- Периодический опрос списка тикетов (tickets_poll_ms, по умолчанию 3 с), пока вкладка видима.

- Параметр конфига tickets_poll_ms (3000–120000 мс) и data-messages-poll-ms в шаблоне.

- Надёжный скролл вниз при открытии чата и после загрузки вложений.

- Учёт has_unread как true/1/"1"/"true" для индикатора на карточке.
This commit is contained in:
root
2026-05-14 14:52:02 +03:00
parent b52655c26b
commit 866a64d413
3 changed files with 60 additions and 4 deletions
+10
View File
@@ -50,6 +50,15 @@ class PageController extends Controller {
// Отключить вызовы с клиента: occ config:app:set f7support client_read_receipts --value=0
$clientReadReceipts = $this->config->getAppValue('f7support', 'client_read_receipts', '0');
// Интервал опроса списка тикетов (мс), чтобы подтягивать has_unread без WebSocket. occ: f7support tickets_poll_ms
$ticketsPollMs = (int)$this->config->getAppValue('f7support', 'tickets_poll_ms', '3000');
if ($ticketsPollMs < 3000) {
$ticketsPollMs = 3000;
}
if ($ticketsPollMs > 120000) {
$ticketsPollMs = 120000;
}
Util::addStyle('f7support', 'f7support');
Util::addScript('f7support', 'main');
@@ -60,6 +69,7 @@ class PageController extends Controller {
'supportApiOrigin' => $supportApiOrigin,
'supportWsBase' => $supportWsBase,
'clientReadReceipts' => $clientReadReceipts,
'ticketsPollMs' => (string)$ticketsPollMs,
]);
}
}