70 lines
2.1 KiB
TypeScript
Raw Normal View History

2018-04-02 05:34:16 +00:00
import AnimeNotifier from "../AnimeNotifier"
2018-07-05 16:52:58 +00:00
import { findAll } from "scripts/Utils"
2017-11-07 16:46:39 +00:00
// Filter anime on explore page
2019-04-22 09:06:50 +00:00
export function filterAnime(arn: AnimeNotifier, _: HTMLInputElement) {
2019-04-22 06:02:51 +00:00
let root = document.getElementById("filter-root") as HTMLElement
2018-03-23 00:43:45 +00:00
2018-04-02 05:44:11 +00:00
let elementYear = document.getElementById("filter-year") as HTMLSelectElement
2018-04-13 15:55:52 +00:00
let elementSeason = document.getElementById("filter-season") as HTMLSelectElement
2018-04-02 05:44:11 +00:00
let elementStatus = document.getElementById("filter-status") as HTMLSelectElement
let elementType = document.getElementById("filter-type") as HTMLSelectElement
2017-11-07 16:46:39 +00:00
for(let element of findAll("anime-grid-image")) {
let img = element as HTMLImageElement
2018-03-20 22:58:37 +00:00
img.src = arn.emptyPixel()
img.classList.remove("element-found")
2018-03-20 22:58:37 +00:00
img.classList.remove("element-color-preview")
2018-03-14 02:50:39 +00:00
}
2018-03-23 00:43:45 +00:00
let year = elementYear.value || "any"
2018-04-13 15:55:52 +00:00
let season = elementSeason.value || "any"
2018-03-23 00:43:45 +00:00
let status = elementStatus.value || "any"
let type = elementType.value || "any"
2018-04-13 15:55:52 +00:00
arn.diff(`${root.dataset.url}/${year}/${season}/${status}/${type}`)
}
2018-07-05 16:52:05 +00:00
// Toggle hiding added anime.
2018-11-16 07:46:56 +00:00
export function toggleHideAddedAnime() {
2018-07-05 16:52:05 +00:00
hideAddedAnime()
}
// Hides anime that are already in your list.
export function hideAddedAnime() {
for(let anime of findAll("anime-grid-cell")) {
2018-07-05 16:55:04 +00:00
if(anime.dataset.added !== "true") {
continue
}
anime.classList.toggle("anime-grid-cell-hide")
}
2017-12-03 18:08:05 +00:00
}
// Hides anime that are not in your list.
export async function calendarShowAddedAnimeOnly(arn: AnimeNotifier, element: HTMLInputElement) {
let calendar = document.getElementById("calendar")
if(!calendar || calendar.dataset.showAddedAnimeOnly === undefined) {
return
}
// Toggling the switch will trigger the CSS rules
if(calendar.dataset.showAddedAnimeOnly === "true") {
calendar.dataset.showAddedAnimeOnly = "false"
} else {
calendar.dataset.showAddedAnimeOnly = "true"
}
// Save the state in the database
let showAddedAnimeOnly = calendar.dataset.showAddedAnimeOnly === "true"
let apiEndpoint = arn.findAPIEndpoint(element)
try {
await arn.post(apiEndpoint, {
"Calendar.ShowAddedAnimeOnly": showAddedAnimeOnly
})
} catch(err) {
arn.statusMessage.showError(err)
}
2017-11-07 16:46:39 +00:00
}