-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
88 lines (76 loc) · 3.06 KB
/
app.js
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
document.addEventListener("DOMContentLoaded", function () {
const dataList = document.getElementById("baru");
const formBaru = document.getElementById("baru");
const formCari = document.querySelector("form[action='']");
// Menangani penambahan buku baru
formBaru.addEventListener("submit", function (event) {
event.preventDefault();
const inputJudul = document.getElementById("judul").value;
const inputPenulis = document.getElementById("penulis").value;
const inputTahun = document.getElementById("tahun").value;
const checkBoxSelesai = document.getElementById("selesai").checked;
const newData = {
id: +new Date(), // Menggunakan timestamp sebagai id
title: inputJudul,
author: inputPenulis,
year: inputTahun,
isComplete: checkBoxSelesai,
};
let storedData = localStorage.getItem("storedData");
if (!storedData) {
storedData = [];
} else {
storedData = JSON.parse(storedData);
}
storedData.push(newData);
localStorage.setItem("storedData", JSON.stringify(storedData));
// Reset form setelah ditambahkan
formBaru.reset();
// Tampilkan buku baru di daftar
renderBook(newData);
});
// Mengambil data dari localStorage saat halaman dimuat
renderBooksFromLocalStorage();
// Menangani pencarian buku
formCari.addEventListener("submit", function (event) {
event.preventDefault();
const query = document.getElementById("cari").value.toLowerCase();
// Lakukan sesuatu dengan hasil pencarian
// Misalnya, tampilkan buku yang sesuai dengan query
});
// Fungsi untuk merender buku ke dalam daftar
function renderBook(book) {
const listItem = document.createElement("div"); // Buat elemen div baru
listItem.classList.add("cards"); // Tambahkan kelas ke elemen div
listItem.innerHTML = `
<div class="card-data">
<span><strong style="color: ${book.isComplete ? "blue" : "green"};"> ${
book.isComplete ? "Selesai dibaca" : "Belum dibaca"
}</strong></span>
<h1 class="card-head">${book.title}</h1>
<h2 class="card-sub-head">${book.author}</h2>
<p class="card-text">${book.year}</p>
<div class="group-btn">
<button class="btn-info simpan">Simpan</button>
<button class="btn-info hapus" data-id="${book.id}">Hapus</button>
</div>
</div>
`;
dataList.appendChild(listItem);
}
// Fungsi untuk merender buku dari localStorage saat halaman dimuat
function renderBooksFromLocalStorage() {
const storedData = JSON.parse(localStorage.getItem("storedData")) || [];
storedData.forEach(renderBook);
}
// Menangani penghapusan buku
dataList.addEventListener("click", function (event) {
if (event.target.classList.contains("hapus")) {
const id = event.target.dataset.id;
let storedData = JSON.parse(localStorage.getItem("storedData")) || [];
storedData = storedData.filter((book) => book.id !== parseInt(id));
localStorage.setItem("storedData", JSON.stringify(storedData));
event.target.closest(".card-data").remove();
}
});
});