diff --git a/pages/calendar/calendar.pixy b/pages/calendar/calendar.pixy index e04749af..83d47db6 100644 --- a/pages/calendar/calendar.pixy +++ b/pages/calendar/calendar.pixy @@ -2,8 +2,12 @@ component Calendar(days []*utils.CalendarDay, user *arn.User) h1.mountable Calendar .corner-buttons - button.action(data-trigger="click", data-action="calendarShowAddedAnimeOnly", title="Show anime in my collection") - RawIcon("eye") + if user != nil + button.action(data-trigger="click", data-action="calendarShowAddedAnimeOnly", data-api="/api/settings/" + user.ID, title="Show anime in my collection") + RawIcon("eye") + else + button.action(data-trigger="click", data-action="calendarShowAddedAnimeOnly", title="Show anime in my collection") + RawIcon("eye") .week each day in days @@ -11,10 +15,22 @@ component Calendar(days []*utils.CalendarDay, user *arn.User) h3.weekday-name.mountable(data-mountable-type=day.Name)= day.Name .calendar-entries each entry in day.Entries - a.calendar-entry.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) - img.calendar-entry-image.lazy(data-src=entry.Anime.ImageLink("small"), data-webp="true", data-color=entry.Anime.AverageColor(), alt=entry.Anime.Title.ByUser(user)) - .calendar-entry-info - .calendar-entry-title= entry.Anime.Title.ByUser(user) - .calendar-entry-time-and-episode - .calendar-entry-time.utc-date-absolute(data-date=entry.Episode.AiringDate.Start) - .calendar-entry-episode= "Ep: " + strconv.Itoa(entry.Episode.Number) \ No newline at end of file + CalendarEntry(day, entry, user) + +component CalendarEntry(day *utils.CalendarDay, entry *utils.CalendarEntry, user *arn.User) + if user!= nil && user.Settings().CalendarSettings.ShowUserList == true + a.calendar-entry.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) + img.calendar-entry-image.lazy(data-src=entry.Anime.ImageLink("small"), data-webp="true", data-color=entry.Anime.AverageColor(), alt=entry.Anime.Title.ByUser(user)) + .calendar-entry-info + .calendar-entry-title= entry.Anime.Title.ByUser(user) + .calendar-entry-time-and-episode + .calendar-entry-time.utc-date-absolute(data-date=entry.Episode.AiringDate.Start) + .calendar-entry-episode= "Ep: " + strconv.Itoa(entry.Episode.Number) + else + a.calendar-entry.hidden.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) + img.calendar-entry-image.lazy(data-src=entry.Anime.ImageLink("small"), data-webp="true", data-color=entry.Anime.AverageColor(), alt=entry.Anime.Title.ByUser(user)) + .calendar-entry-info + .calendar-entry-title= entry.Anime.Title.ByUser(user) + .calendar-entry-time-and-episode + .calendar-entry-time.utc-date-absolute(data-date=entry.Episode.AiringDate.Start) + .calendar-entry-episode= "Ep: " + strconv.Itoa(entry.Episode.Number) \ No newline at end of file diff --git a/scripts/Actions/Explore.ts b/scripts/Actions/Explore.ts index a8fcdce4..c863e3fb 100644 --- a/scripts/Actions/Explore.ts +++ b/scripts/Actions/Explore.ts @@ -1,5 +1,5 @@ import AnimeNotifier from "../AnimeNotifier" -import { findAll } from "scripts/Utils" +import {findAll} from "scripts/Utils" // Filter anime on explore page export function filterAnime(arn: AnimeNotifier, input: HTMLInputElement) { @@ -10,7 +10,7 @@ export function filterAnime(arn: AnimeNotifier, input: HTMLInputElement) { let elementStatus = document.getElementById("filter-status") as HTMLSelectElement let elementType = document.getElementById("filter-type") as HTMLSelectElement - for(let element of findAll("anime-grid-image")) { + for (let element of findAll("anime-grid-image")) { let img = element as HTMLImageElement img.src = arn.emptyPixel() img.classList.remove("element-found") @@ -32,8 +32,8 @@ export function toggleHideAddedAnime() { // Hides anime that are already in your list. export function hideAddedAnime() { - for(let anime of findAll("anime-grid-cell")) { - if(anime.dataset.added !== "true") { + for (let anime of findAll("anime-grid-cell")) { + if (anime.dataset.added !== "true") { continue } @@ -42,10 +42,21 @@ export function hideAddedAnime() { } // Hides anime that are not in your list. -export function calendarShowAddedAnimeOnly() { - for(let anime of findAll("calendar-entry")) { - if(anime.dataset.added === "false") { +export function calendarShowAddedAnimeOnly(arn: AnimeNotifier, element: HTMLInputElement) { + for (let anime of findAll("calendar-entry")) { + if (anime.dataset.added === "false") { anime.classList.toggle("hidden") } } + + const anime = document.getElementsByClassName("calendar-entry").item(0) + const showUserList = !anime.classList.contains("hidden") + + let obj = { + "CalendarSettings.ShowUserList": showUserList + } + + let apiEndpoint = arn.findAPIEndpoint(element); + arn.post(apiEndpoint, obj) + .catch(err => arn.statusMessage.showError(err)); } \ No newline at end of file