// ===== modals.js 맨 첫줄에 추가 =====
function updateDomainSectionVisibility() {
const section = document.getElementById('domainSection');
if (!section) return;
const hasFolder = typeof folderPath !== 'undefined' && folderPath && folderPath.trim() !== '';
const hasLinks = typeof referenceLinks !== 'undefined' && referenceLinks && referenceLinks.length > 0;
section.style.display = (hasFolder || hasLinks) ? 'block' : 'none';
}
// ===== 폴더 모달 =====
function openFolderModal() {
document.getElementById('folderModal').classList.add('active');
document.getElementById('folderPath').focus();
}
function closeFolderModal() {
document.getElementById('folderModal').classList.remove('active');
}
function submitFolder() {
const path = document.getElementById('folderPath').value.trim();
if (!path) {
alert('폴더 경로를 입력해주세요.');
return;
}
folderPath = document.getElementById('folderPath').value;
closeFolderModal();
updateInputStatus();
setStatus('폴더 경로 설정됨', true);
// 서버에 폴더 검토 요청
fetch('/api/check-folder', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ folder_path: folderPath })
})
.then(r => r.json())
.then(data => {
if (data.success) {
document.getElementById('totalCount').textContent = data.total + '개';
document.getElementById('okCount').textContent = data.ok + '개 ✓';
document.getElementById('unknownCount').textContent = data.unknown + '개';
// 미확인 파일 목록
const listEl = document.getElementById('unknownFilesList');
if (listEl && data.unknown_list) {
listEl.innerHTML = data.unknown_list
.map(name => `
${name}
`)
.join('');
}
} else {
document.getElementById('totalCount').textContent = '오류';
alert('폴더 검토 실패: ' + (data.error || ''));
}
})
.catch(err => {
document.getElementById('totalCount').textContent = '오류';
console.error('[Folder]', err);
});
updateDomainSectionVisibility();
if (typeof onFolderSetComplete === 'function') {
onFolderSetComplete();
}
}
function toggleUnknownFiles() {
document.getElementById('unknownFilesBox').classList.toggle('show');
}
function openFolder() {
alert('폴더 열기는 Engine이 실행 중일 때만 가능합니다.');
}
// ===== 링크 모달 =====
function openLinkModal() {
document.getElementById('linkModal').classList.add('active');
}
function closeLinkModal() {
document.getElementById('linkModal').classList.remove('active');
}
function addLinkInput() {
const container = document.getElementById('linkInputList');
const input = document.createElement('input');
input.type = 'text';
input.className = 'link-input';
input.placeholder = 'https://...';
input.style = 'width:100%; padding:10px; border-radius:6px; border:1px solid var(--ui-border); background:var(--ui-bg); color:var(--ui-text); font-size:12px; margin-bottom:8px;';
container.appendChild(input);
}
function submitLinks() {
const inputs = document.querySelectorAll('#linkInputList .link-input');
referenceLinks = [];
inputs.forEach(input => {
const val = input.value.trim();
if (val) referenceLinks.push(val);
});
closeLinkModal();
updateInputStatus();
if (referenceLinks.length > 0) {
setStatus(`참고 링크 ${referenceLinks.length}개 설정됨`, true);
}
updateDomainSectionVisibility();
if (typeof onFolderSetComplete === 'function') {
onFolderSetComplete();
}
}
// ===== HTML 모달 =====
function openHtmlModal() {
document.getElementById('htmlModal').classList.add('active');
document.getElementById('htmlContent').focus();
}
function closeHtmlModal() {
document.getElementById('htmlModal').classList.remove('active');
}
function submitHtml() {
const html = document.getElementById('htmlContent').value.trim();
if (!html) {
alert('HTML을 입력해주세요.');
return;
}
inputContent = html;
closeHtmlModal();
updateInputStatus();
setStatus('HTML 입력 완료', true);
updateDomainSectionVisibility();
}