const del = document.querySelector("#film-table")
del.addEventListener('click', async(event) => {
const target = event.target;
const row = target.closest('tr');
const id = Number(row.dataset.id);
if(target.textContent ==="Удалить") {
const GET = await fetch(`https://sb-film.cc/films/${id}`, {
method: "DELETE",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
}
renderTable()
})function handleFormSubmit(e) {
e.preventDefault();
const title = document.getElementById("title").value;
const genre = document.getElementById("genre").value;
const releaseYear = document.getElementById("releaseYear").value;
const isWatched = document.getElementById("isWatched").checked;
const film = {
title: title,
genre: genre,
releaseYear: releaseYear,
isWatched: isWatched,
};
addFilm(film);
}
async function addFilm(film) {
// const films = JSON.parse(localStorage.getItem("films")) || [];
// films.push(film);
// localStorage.setItem("films", JSON.stringify(films));
// console.log(film);
await fetch("https://sb-film.cc/films", {
method: "POST",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
},
body: JSON.stringify(film),
});
renderTable();
}
async function renderTable() {
// const films = JSON.parse(localStorage.getItem("films")) || [];
const filmsResponse = await fetch("https://sb-film.cc/films", {
headers: {
email: "ovikdevil@gmail.com",
},
});
const films = await filmsResponse.json();
const filmTableBody = document.getElementById("film-tbody");
// Clear table body first
filmTableBody.innerHTML = "";
// Then add new rows
films.forEach((film, index) => {
const row = document.createElement("tr");
row.dataset.id = film.id;
row.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td >
<button class="delete">${"Удалить"}</button>
</td>
`;
filmTableBody.appendChild(row);
});
}
const NameFilm = document.querySelector('.NameFilm')
const GenreFilm = document.querySelector('.GenreFilm')
const YearReleaseFilm = document.querySelector('.YearReleaseFilm')
const isWatched = document.querySelector('#city')
NameFilm.addEventListener('input', async (event) => {
const target = event.target.value;
const GET = await fetch(`https://sb-film.cc/films`, {
method: "GET",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
let X = await GET.json();
function filterByPrefix(X, target) {
const lowerQuery = target.toLowerCase();
return X.filter(item =>
item.title.toLowerCase().startsWith(lowerQuery)
);
}
let sort = filterByPrefix(X, target);
const filmTableBody = document.getElementById("film-tbody");
filmTableBody.innerHTML = '';
sort.forEach((film, index) => {
let FilterRow = document.createElement("tr");
FilterRow.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td >
<button class="delete">${"Удалить"}</button>
</td>
`;
filmTableBody.appendChild(FilterRow);
})});
GenreFilm.addEventListener('input', async (event) => {
const target = event.target.value;
const GET = await fetch(`https://sb-film.cc/films`, {
method: "GET",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
let X = await GET.json();
function filterByPrefix(X, target) {
const lowerQuery = target.toLowerCase();
return X.filter(item =>
item.genre.toLowerCase().startsWith(lowerQuery)
);
}
let sort = filterByPrefix(X , target);
const filmTableBody = document.getElementById("film-tbody");
filmTableBody.innerHTML = '';
sort.forEach((film, index) => {
let FilterRow = document.createElement("tr");
FilterRow.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td >
<button class="delete">${"Удалить"}</button>
</td>
`;
filmTableBody.appendChild(FilterRow);
})});
YearReleaseFilm.addEventListener('input', async (event) => {
const target = event.target.value;
const GET = await fetch(`https://sb-film.cc/films`, {
method: "GET",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
let X = await GET.json();
function filterByPrefix(X, target) {
const lowerQuery = target.toLowerCase();
return X.filter(item =>
item.releaseYear.toLowerCase().startsWith(lowerQuery)
);
}
let sort = filterByPrefix(X , target);
const filmTableBody = document.getElementById("film-tbody");
filmTableBody.innerHTML = '';
sort.forEach((film, index) => {
let FilterRow = document.createElement("tr");
FilterRow.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td >
<button class="delete">${"Удалить"}</button>
</td>
`;
filmTableBody.appendChild(FilterRow);
})});
isWatched.addEventListener('change', async (event) => {
event.preventDefault();
const target = event.target.value;
const GET = await fetch(`https://sb-film.cc/films`, {
method: "GET",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
let X = await GET.json();
function filterByPrefix(X, target) {
if(target === 'Да') {
return X.filter(item =>
item.isWatched == true
)};
if(target ==='Нет') {
return X.filter(item =>
item.isWatched == false
)};
if(target === 'Все'){
return X
}
}
let sort = filterByPrefix(X , target);
const filmTableBody = document.getElementById("film-tbody");
filmTableBody.innerHTML = '';
sort.forEach((film, index) => {
let FilterRow = document.createElement("tr");
FilterRow.innerHTML = `
<td>${film.title}</td>
<td>${film.genre}</td>
<td>${film.releaseYear}</td>
<td>${film.isWatched ? "Да" : "Нет"}</td>
<td >
<button class="delete">${"Удалить"}</button>
</td>
`;
filmTableBody.appendChild(FilterRow);
}) });
const del = document.querySelector("#film-table")
del.addEventListener('click', async(event) => {
const target = event.target;
const row = target.closest('tr');
const id = Number(row.dataset.id);
if(target.textContent ==="Удалить") {
const GET = await fetch(`https://sb-film.cc/films/${id}`, {
method: "DELETE",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
}
renderTable()
})
const delAll = document.querySelector("#form-select-del")
delAll.addEventListener('click', async(event) => {
const target = event.target.textContent;
if(target === 'Удалить всё') {
const GET = await fetch(`https://sb-film.cc/films`, {
method: "DELETE",
headers: {
"Content-Type": "application/json",
email: "ovikdevil@gmail.com",
}
});
}
renderTable()
})
document
.getElementById("film-form")
.addEventListener("submit", handleFormSubmit);
// Display films on load
renderTable(); tbody.addEventListener('click', e => {
const target = e.target;
const SpanGenre = document.querySelector('#SpanGenre');
const InputGenre = document.querySelector('#InputGenre');
const Edit = document.querySelector('.Edit');
const Update = document.querySelector('.Update');
if (target.classList.contains('Edit')) {
Edit.style.display = "none";
Update.style.display = "inline-block";
SpanGenre.style.display = 'none';
InputGenre.style.display = 'inline-block';
} else if (target.classList.contains('Update')) {
SpanGenre.textContent = InputGenre.value;
Edit.style.display = "inline-block";
Update.style.display = "none";
SpanGenre.style.display = 'inline-block';
InputGenre.style.display = 'none';
}
});
тут проблема