diff --git a/apps/ui/js/wizard.js b/apps/ui/js/wizard.js index 423d48e..f308f21 100644 --- a/apps/ui/js/wizard.js +++ b/apps/ui/js/wizard.js @@ -144,9 +144,9 @@ if (window.CrankDiagnostics && typeof window.CrankDiagnostics.bootstrap === 'fun var METHOD_CALLOUTS = { GET: null, DELETE: null, - POST: { icon: 'info', text: { en: 'POST selected — body encoding required. In step 4 you will define the JSON schema for the body payload. Crank will automatically serialize MCP tool arguments into the format you specify.', ru: 'Выбран POST — требуется кодирование тела запроса. На шаге 4 вы зададите JSON-схему для body payload. Crank автоматически сериализует аргументы MCP-инструмента в выбранный формат.' } }, - PUT: { icon: 'info', text: { en: 'PUT selected — full-resource replacement. The request body must contain a complete resource representation. Define the body schema in step 4.', ru: 'Выбран PUT — полная замена ресурса. Request body должен содержать полное представление ресурса. Задайте body schema на шаге 4.' } }, - PATCH: { icon: 'info', text: { en: 'PATCH selected — partial update. Only include the fields you want to modify in the body schema defined in step 4.', ru: 'Выбран PATCH — частичное обновление. В body schema на шаге 4 включайте только те поля, которые хотите изменить.' } }, + POST: { icon: 'info', text: { en: { title: 'POST selected — body encoding required.', body: 'In step 4 you will define the JSON schema for the body payload. Crank will automatically serialize MCP tool arguments into the format you specify.' }, ru: { title: 'Выбран POST — требуется кодирование тела запроса.', body: 'На шаге 4 вы зададите JSON-схему для body payload. Crank автоматически сериализует аргументы MCP-инструмента в выбранный формат.' } } }, + PUT: { icon: 'info', text: { en: { title: 'PUT selected — full-resource replacement.', body: 'The request body must contain a complete resource representation. Define the body schema in step 4.' }, ru: { title: 'Выбран PUT — полная замена ресурса.', body: 'Request body должен содержать полное представление ресурса. Задайте body schema на шаге 4.' } } }, + PATCH: { icon: 'info', text: { en: { title: 'PATCH selected — partial update.', body: 'Only include the fields you want to modify in the body schema defined in step 4.' }, ru: { title: 'Выбран PATCH — частичное обновление.', body: 'В body schema на шаге 4 включайте только те поля, которые хотите изменить.' } } }, }; function selectMethod(btn) { @@ -159,9 +159,22 @@ function selectMethod(btn) { if (info) { var lang = localStorage.getItem('crank_lang') || 'en'; var text = typeof info.text === 'string' ? info.text : (info.text[lang] || info.text.en); - callout.innerHTML = - '' + - '' + text + ''; + callout.innerHTML = ''; + var icon = buildIconSvg( + (window.APP_BASE || '') + 'icons/general/info-circle.svg#icon', + 15, + 15 + ); + icon.style.flexShrink = '0'; + icon.style.color = 'var(--accent)'; + callout.appendChild(icon); + + var content = document.createElement('span'); + var title = document.createElement('strong'); + title.textContent = text.title; + content.appendChild(title); + content.appendChild(document.createTextNode(' ' + text.body)); + callout.appendChild(content); callout.style.display = 'flex'; } else { callout.style.display = 'none';