From 16853d3b94b199c96fdd5d8e21fd4c517cbda3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Mon, 11 May 2026 23:34:01 +0900 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20=D0=B8=20?= =?UTF-8?q?persistent=20workspace=20runtime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/workspace.js | 56 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/frontend/workspace.js b/frontend/workspace.js index 5f46c74..d4734be 100644 --- a/frontend/workspace.js +++ b/frontend/workspace.js @@ -11,20 +11,69 @@ function appendLog(message) { logs.scrollTop = logs.scrollHeight; } -async function workspaceApi(url, payload = {}) { +async function workspaceApi(url, payload = {}, method = 'POST') { appendLog(`API запрос: ${url}`); const response = await fetch(url, { - method: 'POST', + method, headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload) + body: method === 'GET' ? undefined : JSON.stringify(payload) }); return await response.json(); } +async function loadProjects() { + const container = document.getElementById('projectsList'); + + if (!container) { + return; + } + + appendLog('Загрузка списка проектов'); + + const data = await workspaceApi('/api/projects/list', {}, 'GET'); + + const projects = data.projects || []; + + if (projects.length === 0) { + container.innerHTML = 'Проекты отсутствуют'; + return; + } + + container.innerHTML = projects.map(project => ` +