diff --git a/pages/calendar/calendar.pixy b/pages/calendar/calendar.pixy index e04749af..92285085 100644 --- a/pages/calendar/calendar.pixy +++ b/pages/calendar/calendar.pixy @@ -2,8 +2,9 @@ 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-slash") .week each day in days @@ -11,10 +12,20 @@ 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 == false && !entry.Added + a.calendar-entry.hidden.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) + CalendarView(day, entry, user) + else + a.calendar-entry.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) + CalendarView(day, entry, user) + +component CalendarView(day *utils.CalendarDay, entry *utils.CalendarEntry, user *arn.User) + 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 4f257535..a67dbcc6 100644 --- a/scripts/Actions/Explore.ts +++ b/scripts/Actions/Explore.ts @@ -42,10 +42,21 @@ export function hideAddedAnime() { } // Hides anime that are not in your list. -export function calendarShowAddedAnimeOnly() { +export function calendarShowAddedAnimeOnly(arn: AnimeNotifier, element: HTMLInputElement) { for(let anime of findAll("calendar-entry")) { if(anime.dataset.added === "false") { anime.classList.toggle("hidden") } } + + const showUserList = !Array.from(document.getElementsByClassName("calendar-entry")) + .some(value => value.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