Revert "Исправление открытия чата: не закрывать при сбое опроса списка, сохранять активную карточку"
This reverts commit 083eae4059.
This commit is contained in:
+11
-21
@@ -91,10 +91,6 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function ticketApiPath(ticketNumber) {
|
|
||||||
return encodeURIComponent(String(ticketNumber ?? ""));
|
|
||||||
}
|
|
||||||
|
|
||||||
function revokeAttachmentUrls() {
|
function revokeAttachmentUrls() {
|
||||||
for (const u of state.blobUrls) {
|
for (const u of state.blobUrls) {
|
||||||
try {
|
try {
|
||||||
@@ -953,9 +949,6 @@
|
|||||||
await refreshLastMessageSignaturesStaggered();
|
await refreshLastMessageSignaturesStaggered();
|
||||||
updateBoardUnreadFingerprints();
|
updateBoardUnreadFingerprints();
|
||||||
renderTickets();
|
renderTickets();
|
||||||
if (state.chatModalOpen && state.currentTicket != null) {
|
|
||||||
reapplyActiveTicketCard(state.currentTicket);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function partitionClientTickets(list) {
|
function partitionClientTickets(list) {
|
||||||
@@ -1022,24 +1015,22 @@
|
|||||||
const tnSel = String(ticketNumber).replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
const tnSel = String(ticketNumber).replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
||||||
const card = document.querySelector(`.f7-ticket-card[data-ticket-number="${tnSel}"]`);
|
const card = document.querySelector(`.f7-ticket-card[data-ticket-number="${tnSel}"]`);
|
||||||
if (card) card.classList.add("f7-ticket-card--active");
|
if (card) card.classList.add("f7-ticket-card--active");
|
||||||
showError("");
|
|
||||||
openChatModal(ticket);
|
openChatModal(ticket);
|
||||||
delete state.ticketUnreadByLastMsg[String(ticketNumber)];
|
delete state.ticketUnreadByLastMsg[String(ticketNumber)];
|
||||||
try {
|
try {
|
||||||
await fetchMessages();
|
await fetchMessages();
|
||||||
|
await fetchTickets();
|
||||||
|
const row = state.tickets.find((x) => x.ticket_number === ticketNumber);
|
||||||
|
if (row) row.has_unread = false;
|
||||||
|
renderTickets();
|
||||||
|
reapplyActiveTicketCard(ticketNumber);
|
||||||
|
void markClientTicketRead(ticket.ticket_number);
|
||||||
|
connectTicketSocket(ticket.ticket_number);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
showError(e.message || "Не удалось загрузить сообщения");
|
showError(e.message || "Не удалось загрузить сообщения");
|
||||||
disconnectTicketSocket();
|
disconnectTicketSocket();
|
||||||
await closeChatModal();
|
await closeChatModal();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
const row = state.tickets.find((x) => x.ticket_number === ticketNumber);
|
|
||||||
if (row) row.has_unread = false;
|
|
||||||
renderTickets();
|
|
||||||
reapplyActiveTicketCard(ticketNumber);
|
|
||||||
void markClientTicketRead(ticket.ticket_number);
|
|
||||||
connectTicketSocket(ticket.ticket_number);
|
|
||||||
fetchTickets().catch(() => {});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderTickets() {
|
function renderTickets() {
|
||||||
@@ -1061,8 +1052,7 @@
|
|||||||
|
|
||||||
async function fetchMessages() {
|
async function fetchMessages() {
|
||||||
if (!state.currentTicket) return;
|
if (!state.currentTicket) return;
|
||||||
const tn = ticketApiPath(state.currentTicket);
|
const response = await fetch(`${apiBase}/api/client/tickets/${state.currentTicket}/messages`, {
|
||||||
const response = await fetch(`${apiBase}/api/client/tickets/${tn}/messages`, {
|
|
||||||
headers: clientIdentityHeaders(),
|
headers: clientIdentityHeaders(),
|
||||||
});
|
});
|
||||||
if (!response.ok) throw new Error("Не удалось загрузить сообщения");
|
if (!response.ok) throw new Error("Не удалось загрузить сообщения");
|
||||||
@@ -1072,7 +1062,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function fetchClientAttachmentBlob(attachmentId) {
|
async function fetchClientAttachmentBlob(attachmentId) {
|
||||||
const url = `${apiBase}/api/client/tickets/${ticketApiPath(state.currentTicket)}/attachments/${encodeURIComponent(String(attachmentId))}`;
|
const url = `${apiBase}/api/client/tickets/${state.currentTicket}/attachments/${attachmentId}`;
|
||||||
const res = await fetch(url, { headers: clientIdentityHeaders() });
|
const res = await fetch(url, { headers: clientIdentityHeaders() });
|
||||||
if (!res.ok) throw new Error("attachment");
|
if (!res.ok) throw new Error("attachment");
|
||||||
return res.blob();
|
return res.blob();
|
||||||
@@ -1236,7 +1226,7 @@
|
|||||||
}
|
}
|
||||||
if (!text && file) text = `📎 ${file.name}`;
|
if (!text && file) text = `📎 ${file.name}`;
|
||||||
|
|
||||||
const response = await fetch(`${apiBase}/api/client/tickets/${ticketApiPath(state.currentTicket)}/messages`, {
|
const response = await fetch(`${apiBase}/api/client/tickets/${state.currentTicket}/messages`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: {
|
headers: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
@@ -1253,7 +1243,7 @@
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("message_id", String(created.id));
|
form.append("message_id", String(created.id));
|
||||||
form.append("file", file);
|
form.append("file", file);
|
||||||
const attRes = await fetch(`${apiBase}/api/client/tickets/${ticketApiPath(state.currentTicket)}/attachments`, {
|
const attRes = await fetch(`${apiBase}/api/client/tickets/${state.currentTicket}/attachments`, {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
headers: clientIdentityHeaders(),
|
headers: clientIdentityHeaders(),
|
||||||
body: form,
|
body: form,
|
||||||
|
|||||||
Reference in New Issue
Block a user