Merge pull request #217 from soulcramer:notification_filter

Made the show/hide anime not in my list persistent
This commit is contained in:
Eduard Urbach 2019-04-27 19:38:36 +09:00 committed by GitHub
commit 09b002147d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 10 deletions

View File

@ -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,7 +12,17 @@ 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
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)

View File

@ -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));
}