Синхронизация с API: support_api_base из конфига, заголовки при создании тикета, убран неиспользуемый poll

This commit is contained in:
root
2026-05-14 10:35:36 +00:00
parent 306bcc8f51
commit c92eccfc41
4 changed files with 13 additions and 7 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<name>f7support</name> <name>f7support</name>
<summary>Support ticket client for F7cloud (F7cloud-compatible)</summary> <summary>Support ticket client for F7cloud (F7cloud-compatible)</summary>
<description>f7support client app for creating and viewing support tickets.</description> <description>f7support client app for creating and viewing support tickets.</description>
<version>0.1.2</version> <version>0.1.3</version>
<licence>AGPL</licence> <licence>AGPL</licence>
<author>f7support team</author> <author>f7support team</author>
<namespace>F7Support</namespace> <namespace>F7Support</namespace>
+6 -3
View File
@@ -260,7 +260,7 @@
const node = messageList.querySelector(`[data-f7-msg-id="${id}"]`); const node = messageList.querySelector(`[data-f7-msg-id="${id}"]`);
if (node) hydrateClientAttachments(node); if (node) hydrateClientAttachments(node);
messageList.scrollTop = messageList.scrollHeight; messageList.scrollTop = messageList.scrollHeight;
if (msg.author_role === "support" && state.currentTicket) { if (clientReadReceiptsEnabled && msg.author_role === "support" && state.currentTicket) {
markClientTicketRead(state.currentTicket).catch(() => {}); markClientTicketRead(state.currentTicket).catch(() => {});
} }
} }
@@ -775,7 +775,7 @@
"X-F7cloud-Server": serverAddress, "X-F7cloud-Server": serverAddress,
}, },
}); });
if (!response.ok) throw new Error("Не удалось получить токены"); if (!response.ok) throw new Error("Не удалось загрузить список обращений");
state.tickets = await response.json(); state.tickets = await response.json();
renderTickets(); renderTickets();
} }
@@ -956,7 +956,10 @@
try { try {
const response = await fetch(`${apiBase}/api/client/tickets`, { const response = await fetch(`${apiBase}/api/client/tickets`, {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, headers: {
"Content-Type": "application/json",
...clientIdentityHeaders(),
},
body: JSON.stringify({ ...payload, duplicate }), body: JSON.stringify({ ...payload, duplicate }),
signal: controller.signal, signal: controller.signal,
}); });
+5 -1
View File
@@ -32,7 +32,11 @@ class PageController extends Controller {
$baseUrl = $this->urlGenerator->getBaseUrl(); $baseUrl = $this->urlGenerator->getBaseUrl();
$serverHost = parse_url($baseUrl, PHP_URL_HOST) ?: 'localhost'; $serverHost = parse_url($baseUrl, PHP_URL_HOST) ?: 'localhost';
$supportApiBase = 'https://support.f7cloud.ru'; // База REST API поддержки (без завершающего слэша). Переопределение: occ config:app:set f7support support_api_base --value=https://...
$supportApiBase = trim($this->config->getAppValue('f7support', 'support_api_base', 'https://support.f7cloud.ru'));
if ($supportApiBase === '') {
$supportApiBase = 'https://support.f7cloud.ru';
}
$supportParts = parse_url($supportApiBase); $supportParts = parse_url($supportApiBase);
$supportApiOrigin = ($supportParts['scheme'] ?? 'https') . '://' . ($supportParts['host'] ?? ''); $supportApiOrigin = ($supportParts['scheme'] ?? 'https') . '://' . ($supportParts['host'] ?? '');
+1 -2
View File
@@ -5,6 +5,5 @@
data-server-address="<?php p($_['serverAddress']); ?>" data-server-address="<?php p($_['serverAddress']); ?>"
data-support-api-base="<?php p($_['supportApiBase']); ?>" data-support-api-base="<?php p($_['supportApiBase']); ?>"
data-support-ws-base="<?php p($_['supportWsBase'] ?? ''); ?>" data-support-ws-base="<?php p($_['supportWsBase'] ?? ''); ?>"
data-client-read-receipts="<?php p($_['clientReadReceipts'] ?? '0'); ?>" data-client-read-receipts="<?php p($_['clientReadReceipts'] ?? '0'); ?>">
data-messages-poll-ms="5000">
</div> </div>