feat: PDF/HTML 폴더 분리 및 필터링 개선
- 업로드 시 HTML과 PDF를 별도 폴더에 저장 (/documents/, /pdfs/) - 프론트엔드 필터링을 폴더 경로 기준으로 단순화 - PDF 삭제 시 외래키 참조 해제 로직 추가 - book-documents.js, book-editor.js 필터링 통일 - HTML 문서 목록에서 PDF 완전 분리
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
window.bookDocumentsApp = () => ({
|
||||
// 상태 관리
|
||||
documents: [],
|
||||
availablePDFs: [],
|
||||
bookInfo: {},
|
||||
loading: false,
|
||||
error: '',
|
||||
@@ -73,15 +74,38 @@ window.bookDocumentsApp = () => ({
|
||||
const allDocuments = await window.api.getDocuments();
|
||||
|
||||
if (this.bookId === 'none') {
|
||||
// 서적 미분류 문서들
|
||||
this.documents = allDocuments.filter(doc => !doc.book_id);
|
||||
// 서적 미분류 HTML 문서들만 (폴더로 구분)
|
||||
this.documents = allDocuments.filter(doc =>
|
||||
!doc.book_id &&
|
||||
doc.html_path &&
|
||||
!doc.pdf_path?.includes('/pdfs/') // pdfs 폴더에 있는 건 제외
|
||||
);
|
||||
|
||||
// 서적 미분류 PDF 문서들 (매칭용)
|
||||
this.availablePDFs = allDocuments.filter(doc =>
|
||||
!doc.book_id &&
|
||||
doc.pdf_path &&
|
||||
doc.pdf_path.includes('/pdfs/') // PDF는 pdfs 폴더에 저장됨
|
||||
);
|
||||
|
||||
this.bookInfo = {
|
||||
title: '서적 미분류',
|
||||
description: '서적에 속하지 않은 문서들입니다.'
|
||||
};
|
||||
} else {
|
||||
// 특정 서적의 문서들
|
||||
this.documents = allDocuments.filter(doc => doc.book_id === this.bookId);
|
||||
// 특정 서적의 HTML 문서들만 (폴더로 구분)
|
||||
this.documents = allDocuments.filter(doc =>
|
||||
doc.book_id === this.bookId &&
|
||||
doc.html_path &&
|
||||
!doc.pdf_path?.includes('/pdfs/') // pdfs 폴더에 있는 건 제외
|
||||
);
|
||||
|
||||
// 특정 서적의 PDF 문서들 (매칭용)
|
||||
this.availablePDFs = allDocuments.filter(doc =>
|
||||
doc.book_id === this.bookId &&
|
||||
doc.pdf_path &&
|
||||
doc.pdf_path.includes('/pdfs/') // PDF는 pdfs 폴더에 저장됨
|
||||
);
|
||||
|
||||
if (this.documents.length > 0) {
|
||||
// 첫 번째 문서에서 서적 정보 추출
|
||||
@@ -107,6 +131,18 @@ window.bookDocumentsApp = () => ({
|
||||
}
|
||||
|
||||
console.log('📚 서적 문서 로드 완료:', this.documents.length, '개');
|
||||
console.log('📕 사용 가능한 PDF:', this.availablePDFs.length, '개');
|
||||
|
||||
// 디버깅: 문서들의 original_filename 확인
|
||||
console.log('🔍 문서들 확인:');
|
||||
this.documents.slice(0, 5).forEach(doc => {
|
||||
console.log(`- ${doc.title}: ${doc.original_filename}`);
|
||||
});
|
||||
|
||||
console.log('🔍 PDF들 확인:');
|
||||
this.availablePDFs.slice(0, 5).forEach(doc => {
|
||||
console.log(`- ${doc.title}: ${doc.original_filename}`);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('서적 문서 로드 실패:', error);
|
||||
this.error = '문서를 불러오는데 실패했습니다: ' + error.message;
|
||||
@@ -125,6 +161,15 @@ window.bookDocumentsApp = () => ({
|
||||
window.open(`/viewer.html?id=${documentId}&from=book`, '_blank');
|
||||
},
|
||||
|
||||
// 서적 편집 페이지 열기
|
||||
openBookEditor() {
|
||||
if (this.bookId === 'none') {
|
||||
alert('서적 미분류 문서들은 편집할 수 없습니다.');
|
||||
return;
|
||||
}
|
||||
window.location.href = `book-editor.html?bookId=${this.bookId}`;
|
||||
},
|
||||
|
||||
// 문서 수정
|
||||
editDocument(doc) {
|
||||
// TODO: 문서 수정 모달 또는 페이지로 이동
|
||||
|
||||
Reference in New Issue
Block a user