Atualização automática: 2026-05-18 22:23:50
This commit is contained in:
@@ -178,13 +178,70 @@ function updateScoutStatus(status) {
|
|||||||
// DESIGNER AGENT - Redesign Ultra-Moderno
|
// DESIGNER AGENT - Redesign Ultra-Moderno
|
||||||
// ============================================
|
// ============================================
|
||||||
|
|
||||||
|
async function loadDesignerClonesSelect() {
|
||||||
|
const inputUrl = document.getElementById('designUrl');
|
||||||
|
if (!inputUrl) return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch('/api/clones');
|
||||||
|
const result = await response.json();
|
||||||
|
if (!result.success || !result.data?.clones) return;
|
||||||
|
|
||||||
|
const clones = result.data.clones;
|
||||||
|
|
||||||
|
// Criar o select
|
||||||
|
const select = document.createElement('select');
|
||||||
|
select.id = 'designerCloneSelect';
|
||||||
|
select.className = 'form-control mb-3';
|
||||||
|
select.style.cssText = 'background: rgba(255, 255, 255, 0.05); border: 1px solid var(--ai-border-glass); color: #f3f4f6; border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; font-family: "Inter", sans-serif; cursor: pointer; width: 100%;';
|
||||||
|
|
||||||
|
let optionsHtml = '<option value="">-- Selecione um site já clonado para Redesign --</option>';
|
||||||
|
clones.forEach(c => {
|
||||||
|
const dateStr = c.cloneInfo?.clonedAt ? new Date(c.cloneInfo.clonedAt).toLocaleDateString('pt-BR') : '';
|
||||||
|
optionsHtml += `<option value="${c.id}">${c.baseUrl} ${dateStr ? `(Clonado em ${dateStr})` : ''}</option>`;
|
||||||
|
});
|
||||||
|
select.innerHTML = optionsHtml;
|
||||||
|
|
||||||
|
// Inserir antes do inputUrl
|
||||||
|
inputUrl.parentNode.insertBefore(select, inputUrl);
|
||||||
|
|
||||||
|
// Adicionar evento para desabilitar/limpar o input de URL quando um clone é selecionado
|
||||||
|
select.addEventListener('change', () => {
|
||||||
|
if (select.value) {
|
||||||
|
inputUrl.value = '';
|
||||||
|
inputUrl.placeholder = 'Site selecionado acima. (Ou limpe o select para usar URL nova)';
|
||||||
|
inputUrl.disabled = true;
|
||||||
|
agentsState.designer.currentClone = {
|
||||||
|
directory: 'cloned-sites/' + select.value,
|
||||||
|
name: select.value.split('_')[0],
|
||||||
|
url: 'https://' + select.value.split('_')[0]
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
inputUrl.disabled = false;
|
||||||
|
inputUrl.placeholder = 'https://exemplo.com (Para clonar novo site)';
|
||||||
|
agentsState.designer.currentClone = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Erro ao carregar lista de clones no Designer:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function startDesign() {
|
async function startDesign() {
|
||||||
const clone = agentsState.designer.currentClone;
|
const selectEl = document.getElementById('designerCloneSelect');
|
||||||
if (!clone) {
|
const urlEl = document.getElementById('designUrl');
|
||||||
// Try to get from URL input
|
|
||||||
const url = document.getElementById('designUrl')?.value?.trim();
|
// Se escolheu na droplist
|
||||||
|
if (selectEl && selectEl.value) {
|
||||||
|
agentsState.designer.currentClone = {
|
||||||
|
directory: 'cloned-sites/' + selectEl.value,
|
||||||
|
name: selectEl.value.split('_')[0],
|
||||||
|
url: 'https://' + selectEl.value.split('_')[0]
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
const url = urlEl?.value?.trim();
|
||||||
if (!url) {
|
if (!url) {
|
||||||
showAgentError('Designer', 'Nenhum site selecionado. Use o Scout ou insira uma URL.');
|
showAgentError('Designer', 'Selecione um site já clonado na lista ou insira uma URL válida.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
agentsState.designer.currentClone = { url, name: 'Site selecionado' };
|
agentsState.designer.currentClone = { url, name: 'Site selecionado' };
|
||||||
@@ -194,23 +251,29 @@ async function startDesign() {
|
|||||||
updateDesignerStatus('🚀 Iniciando redesign ultra-moderno...');
|
updateDesignerStatus('🚀 Iniciando redesign ultra-moderno...');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Step 1: Clone the site
|
let directory = agentsState.designer.currentClone.directory;
|
||||||
updateDesignerStatus('📥 Clonando site original...');
|
|
||||||
const cloneResult = await cloneSite(agentsState.designer.currentClone.url);
|
|
||||||
|
|
||||||
if (!cloneResult.success) {
|
// Se NÃO escolheu na droplist (ou seja, se passou URL nova), faz o clone do zero!
|
||||||
throw new Error(cloneResult.error || 'Falha ao clonar');
|
if (!directory) {
|
||||||
|
updateDesignerStatus('📥 Clonando site original...');
|
||||||
|
const cloneResult = await cloneSite(agentsState.designer.currentClone.url);
|
||||||
|
|
||||||
|
if (!cloneResult.success) {
|
||||||
|
throw new Error(cloneResult.error || 'Falha ao clonar');
|
||||||
|
}
|
||||||
|
|
||||||
|
directory = cloneResult.data?.directory || cloneResult.data?.path || cloneResult.directory;
|
||||||
|
agentsState.designer.currentClone.directory = directory;
|
||||||
|
updateDesignerStatus('✅ Site clonado com sucesso');
|
||||||
|
} else {
|
||||||
|
updateDesignerStatus('📂 Usando site já clonado do storage...');
|
||||||
}
|
}
|
||||||
|
|
||||||
const directory = cloneResult.data?.directory || cloneResult.data?.path || cloneResult.directory;
|
|
||||||
agentsState.designer.currentClone.directory = directory;
|
|
||||||
updateDesignerStatus('✅ Site clonado com sucesso');
|
|
||||||
|
|
||||||
// Step 2: Apply ultra-modern redesign
|
// Step 2: Apply ultra-modern redesign
|
||||||
updateDesignerStatus('🎨 Aplicando redesign ultra-moderno...');
|
updateDesignerStatus('🎨 Aplicando redesign ultra-moderno com IA...');
|
||||||
const redesignResult = await applyUltraModernRedesign(directory);
|
const redesignResult = await applyUltraModernRedesign(directory);
|
||||||
|
|
||||||
updateDesignerStatus('✨ Redesign concluído!');
|
updateDesignerStatus('✨ Redesign concluído com sucesso!');
|
||||||
showDesignerPreview(redesignResult.previewUrl);
|
showDesignerPreview(redesignResult.previewUrl);
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -527,5 +590,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
btn.addEventListener('click', () => switchAgentTab(btn.dataset.tab));
|
btn.addEventListener('click', () => switchAgentTab(btn.dataset.tab));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Carregar a droplist de clones do Designer
|
||||||
|
loadDesignerClonesSelect();
|
||||||
|
|
||||||
console.log('✅ BrainSteel Web Agents initialized');
|
console.log('✅ BrainSteel Web Agents initialized');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user