From 0a59a5706be511365d265db2439c0a9a5b6f8a71 Mon Sep 17 00:00:00 2001 From: Macbook Date: Thu, 12 Mar 2026 21:38:46 +0300 Subject: [PATCH] release 1.2 --- .DS_Store | Bin 8196 -> 8196 bytes README.md | 3 --- content.js | 35 ++++++++++++++++++++++++++--------- documents.js | 11 ++++++++++- singing.js | 2 +- 5 files changed, 37 insertions(+), 14 deletions(-) delete mode 100644 README.md diff --git a/.DS_Store b/.DS_Store index 2ebd6f5c74705950ea0e1e8027ccb859e1eaed5b..48a7cf483ba8fdbe633eeb7586db425a74dc1b24 100644 GIT binary patch delta 40 wcmZp1XmOa}&&aniU^hP_-)0^GCzj0(BJIo*8;mxyOMGM5tS@?lX<~yu019gjR{#J2 delta 70 zcmZp1XmOa}&&a { }); -async function loadPageData() { +async function loadStorageData() { storageData = await chrome.storage.local.get(dataType); + const userData = await chrome.storage.local.get(userDataType); storageData.userData = userData[userDataType]; +} - if (!storageData || !storageData.metaData || Object.keys(storageData.metaData).length === 0) { - console.log(`[EXT][content] no data for ${dataType}, injecting...`); - injectScript(`${dataType}.js`); - } else { - console.log(`[EXT][content] metadata already exists in storage`); +async function updateStorageData() { + if (!storageData.metaData || !storageData.userData) { + await loadStorageData(); } } +async function loadPageData() { + console.log(`[EXT][content] renew data for ${dataType}, injecting...`); + injectScript(`${dataType}.js`); + + await loadStorageData(); +} + function isDocumentsPage() { return ( location.href.includes('/clients/') && @@ -89,6 +98,8 @@ window.addEventListener('message', async (event) => { return; } + await updateStorageData(); + // Получаем данные из storage if (!storageData.metaData) { window.postMessage({ @@ -171,6 +182,8 @@ window.addEventListener('message', async (event) => { } }, '*'); + await updateStorageData(); + // Фильтруем документы по номерам const filteredDocs = storageData.metaData.docs.filter(doc => event.data.payload.docNumbers.includes(parseInt(doc.number, 10)) @@ -223,10 +236,10 @@ window.addEventListener('message', async (event) => { }, 0); } - // В content.js, в основном обработчике window.addEventListener добавьте: - // ОБРАБОТЧИК ПОДГОТОВКИ ДОКУМЕНТОВ (используем существующие метаданные) if (event.data.type === 'prepareDocuments') { + await updateStorageData(); + // Проверяем наличие метаданных if (!storageData.metaData) { window.postMessage({ @@ -287,6 +300,8 @@ window.addEventListener('message', async (event) => { // ОБРАБОТЧИК ПРОВЕРКИ ПРАВ НА ОТЗЫВ if (event.data.type === 'checkRevokePermission') { + await updateStorageData(); + const hasPermission = String(storageData.userData?.id) === String(event.data.payload.userIdLpu); window.postMessage({ @@ -328,6 +343,8 @@ window.addEventListener('message', async (event) => { // ОБРАБОТЧИК ПОИСКА ПОЛУЧАТЕЛЕЙ ПО ТЕЛЕФОНУ if (event.data.type === 'searchRecipients') { + await updateStorageData(); + const data = { ...event.data.payload, idPatientMis: storageData.metaData.patient.idPatientMis diff --git a/documents.js b/documents.js index 69bac0b..2bc1632 100644 --- a/documents.js +++ b/documents.js @@ -708,10 +708,19 @@ const tableRows = data.map((singing, index) => { // Определяем последний статус const commonStatuses = singing.statuses.filter(s => s.idPatientMis === null); - const lastStatus = commonStatuses.reduce((max, status) => + let lastStatus = commonStatuses.reduce((max, status) => status.id > max.id ? status : max , commonStatuses[0] || singing.statuses[0]); + + if (!lastStatus) { + lastStatus = { + category: 'processing', + description: 'Неизвестный статус', + created_at: singing.created_at + } + } + const statusClass = getStatusClass(lastStatus.category); const statusIcon = getStatusIcon(lastStatus.category); const statusColor = lastStatus.category === 'completed' ? '#67C23A' : diff --git a/singing.js b/singing.js index 7fc34ea..ce540b8 100644 --- a/singing.js +++ b/singing.js @@ -700,7 +700,7 @@ addBtn.style.cssText = 'height: 24px; padding: 0 8px;'; // Проверяем, не добавлен ли уже этот получатель - const alreadyAdded = recipients.some(r => r.id === person.id); + const alreadyAdded = recipients.some(r => r.idPatientMis === person.idPatientMis); if (alreadyAdded) { addBtn.disabled = true; addBtn.classList.add('is-disabled');