diff --git a/index.html b/index.html index a0038e4..9854a81 100644 --- a/index.html +++ b/index.html @@ -10,18 +10,24 @@
- Displaying / +
+ Displaying / episodes
${episode.summary}
`; @@ -48,19 +71,15 @@ function render(episodeList) { document.getElementById("countOfEpisodes").innerText = allEpisodes.length; } -function generateOpt(allEpisodes) { +function generateEpisodeOptions(episodes) { const select = document.getElementById("select"); select.innerHTML = ""; - const optionD = document.createElement("option"); optionD.setAttribute("value", "default"); optionD.innerText = "All episodes"; select.append(optionD); - allEpisodes.forEach((episode) => { - const episodeCode = `S${episode.season - .toString() - .padStart(2, "0")}E${episode.number.toString().padStart(2, "0")}`; - + episodes.forEach((episode) => { + const episodeCode = `S${episode.season.toString().padStart(2, "0")}E${episode.number.toString().padStart(2, "0")}`; const option = document.createElement("option"); option.setAttribute("value", episode.id); option.innerText = `${episodeCode} - ${episode.name}`; @@ -71,24 +90,36 @@ function generateOpt(allEpisodes) { // Filter function for updating the searched list of episodes const searchInput = document.getElementById("q"); searchInput.addEventListener("keyup", () => { + document.getElementById("select").value = "default"; const inputValue = searchInput.value.toLowerCase(); - const filteredEpisodes = allEpisodes.filter( - (episode) => - episode.name.toLowerCase().includes(inputValue) || - episode.summary.toLowerCase().includes(inputValue) - ); - render(filteredEpisodes); + + if (searchInput.value === "") { + render(allEpisodes); + } else if (searchInput.value != "") { + let filteredEpisodes = allEpisodes.filter((episode) => + episode.name + ? episode.name.toLowerCase().includes(inputValue) + : false || episode.summary + ? episode.summary.toLowerCase().includes(inputValue) + : false + ); + render(filteredEpisodes); + + document.getElementById("countOfEpisodes").innerText = filteredEpisodes.length; + } }); const select = document.getElementById("select"); -select.addEventListener("change", () => { - const selectedValue = select.value; +select.addEventListener("change", (event) => { + document.getElementById("q").value = ""; + + const selectedValue = event.target.value; if (selectedValue === "default") { render(allEpisodes); + document.getElementById("countOfEpisodes").innerText = allEpisodes.length; } else { - const selectedEpisode = allEpisodes.find( - (episode) => episode.id === parseInt(selectedValue) - ); + const selectedEpisode = allEpisodes.find((episode) => episode.id === parseInt(selectedValue)); render([selectedEpisode]); + document.getElementById("countOfEpisodes").innerText = 1; } });