🔧 검색 미리보기 기능 수정
- API 호출 방식 개선 (fetch 직접 사용) - HTML 응답에서 텍스트 추출 로직 추가 - 미리보기 모달 UX 개선 (ESC 키, 클릭으로 닫기) - 내용 표시 최적화 (스크롤, 워드랩) - 에러 처리 강화 (fallback to original content)
This commit is contained in:
@@ -215,15 +215,54 @@ window.searchApp = function() {
|
||||
|
||||
switch (result.type) {
|
||||
case 'document':
|
||||
// 문서 내용 API 호출
|
||||
const docContent = await this.api.get(`/documents/${result.document_id}/content`);
|
||||
content = docContent;
|
||||
case 'document_content':
|
||||
try {
|
||||
// 문서 내용 API 호출 (HTML 응답)
|
||||
const response = await fetch(`/api/documents/${result.document_id}/content`, {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${localStorage.getItem('token')}`
|
||||
}
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const htmlContent = await response.text();
|
||||
// HTML에서 텍스트만 추출
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(htmlContent, 'text/html');
|
||||
content = doc.body.textContent || doc.body.innerText || '';
|
||||
// 너무 길면 자르기
|
||||
if (content.length > 2000) {
|
||||
content = content.substring(0, 2000) + '...';
|
||||
}
|
||||
} else {
|
||||
content = result.content;
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn('문서 내용 로드 실패, 기본 내용 사용:', err);
|
||||
content = result.content;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'note':
|
||||
// 노트 내용 API 호출
|
||||
const noteContent = await this.api.get(`/note-documents/${result.id}/content`);
|
||||
content = noteContent;
|
||||
try {
|
||||
// 노트 내용 API 호출
|
||||
const noteContent = await this.api.get(`/note-documents/${result.id}/content`);
|
||||
content = noteContent;
|
||||
} catch (err) {
|
||||
console.warn('노트 내용 로드 실패, 기본 내용 사용:', err);
|
||||
content = result.content;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'memo':
|
||||
try {
|
||||
// 메모 노드 상세 정보 로드
|
||||
const memoNode = await this.api.get(`/memo-trees/nodes/${result.id}`);
|
||||
content = memoNode.content || result.content;
|
||||
} catch (err) {
|
||||
console.warn('메모 내용 로드 실패, 기본 내용 사용:', err);
|
||||
content = result.content;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user