-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts.js
More file actions
118 lines (97 loc) · 4.4 KB
/
Copy pathscripts.js
File metadata and controls
118 lines (97 loc) · 4.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
document.addEventListener('DOMContentLoaded', () => {
// 슬라이더 관련 코드
const slider = document.querySelector('.slider');
const slides = document.querySelectorAll('.slide');
let currentSlide = 0;
const totalSlides = slides.length;
document.querySelector('.next-slide').addEventListener('click', () => {
currentSlide = (currentSlide + 1) % totalSlides;
updateSliderPosition();
});
document.querySelector('.prev-slide').addEventListener('click', () => {
currentSlide = (currentSlide - 1 + totalSlides) % totalSlides;
updateSliderPosition();
});
function updateSliderPosition() {
slider.style.transform = `translateX(-${currentSlide * 100}%)`;
}
// 일기 섹션 관련 코드
const journalForm = document.getElementById('journalForm');
const journalEntries = document.getElementById('journalEntries');
const journalDetailForm = document.getElementById('journalDetailForm');
const journalDetailSection = document.getElementById('journal-detail');
const detailDate = document.getElementById('detail-date');
const detailEntry = document.getElementById('detail-entry');
const updateEntryButton = document.getElementById('updateEntry');
const deleteEntryButton = document.getElementById('deleteEntry');
const cancelEditButton = document.getElementById('cancelEdit');
// Simulated login state (replace with real authentication logic)
const isLoggedIn = false;
let savedEntries = JSON.parse(localStorage.getItem('journalEntries')) || [];
let currentEntryIndex = null;
function renderEntries() {
journalEntries.innerHTML = '<h3>저장된 일기</h3>';
savedEntries.forEach((entry, index) => {
const entryElement = document.createElement('div');
entryElement.className = 'journal-entry';
entryElement.innerHTML = `
<h4>${entry.date}</h4>
<p>${entry.text.substring(0, 100)}...</p>
<button class="btn-view" data-index="${index}">보기 및 수정</button>
`;
journalEntries.appendChild(entryElement);
});
}
journalForm.addEventListener('submit', (e) => {
e.preventDefault();
if (!isLoggedIn) {
alert("로그인이 필요한 기능입니다. 로그인 후 다시 시도하세요.");
window.location.href = "#home"; // Redirect to home
return;
}
const date = document.getElementById('date').value;
const text = document.getElementById('entry').value;
const newEntry = { date, text };
savedEntries.push(newEntry);
localStorage.setItem('journalEntries', JSON.stringify(savedEntries));
journalForm.reset();
renderEntries();
});
journalEntries.addEventListener('click', (e) => {
if (e.target.classList.contains('btn-view')) {
if (!isLoggedIn) {
alert("로그인이 필요한 기능입니다. 로그인 후 다시 시도하세요.");
window.location.href = "#home"; // Redirect to home
return;
}
currentEntryIndex = e.target.getAttribute('data-index');
const entry = savedEntries[currentEntryIndex];
detailDate.value = entry.date;
detailEntry.value = entry.text;
journalDetailSection.style.display = 'block';
window.scrollTo({
top: journalDetailSection.offsetTop,
behavior: 'smooth'
});
}
});
updateEntryButton.addEventListener('click', () => {
savedEntries[currentEntryIndex] = {
date: detailDate.value,
text: detailEntry.value
};
localStorage.setItem('journalEntries', JSON.stringify(savedEntries));
renderEntries();
journalDetailSection.style.display = 'none';
});
deleteEntryButton.addEventListener('click', () => {
savedEntries.splice(currentEntryIndex, 1);
localStorage.setItem('journalEntries', JSON.stringify(savedEntries));
renderEntries();
journalDetailSection.style.display = 'none';
});
cancelEditButton.addEventListener('click', () => {
journalDetailSection.style.display = 'none';
});
renderEntries();
});