🚧 Started to work on notifications filter

This commit is contained in:
Soulcramer 2019-03-02 22:16:24 +01:00
parent 157a5f7487
commit 86170f4604
2 changed files with 43 additions and 16 deletions

View File

@ -2,8 +2,12 @@ component Calendar(days []*utils.CalendarDay, user *arn.User)
h1.mountable Calendar h1.mountable Calendar
.corner-buttons .corner-buttons
button.action(data-trigger="click", data-action="calendarShowAddedAnimeOnly", title="Show anime in my collection") if user != nil
RawIcon("eye") 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 .week
each day in days 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 h3.weekday-name.mountable(data-mountable-type=day.Name)= day.Name
.calendar-entries .calendar-entries
each entry in day.Entries each entry in day.Entries
a.calendar-entry.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added) CalendarEntry(day, entry, 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 component CalendarEntry(day *utils.CalendarDay, entry *utils.CalendarEntry, user *arn.User)
.calendar-entry-title= entry.Anime.Title.ByUser(user) if user!= nil && user.Settings().CalendarSettings.ShowUserList == true
.calendar-entry-time-and-episode a.calendar-entry.mountable(href=entry.Anime.Link(), data-mountable-type=day.Name, data-added=entry.Added)
.calendar-entry-time.utc-date-absolute(data-date=entry.Episode.AiringDate.Start) 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-episode= "Ep: " + strconv.Itoa(entry.Episode.Number) .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)

View File

@ -1,5 +1,5 @@
import AnimeNotifier from "../AnimeNotifier" import AnimeNotifier from "../AnimeNotifier"
import { findAll } from "scripts/Utils" import {findAll} from "scripts/Utils"
// Filter anime on explore page // Filter anime on explore page
export function filterAnime(arn: AnimeNotifier, input: HTMLInputElement) { 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 elementStatus = document.getElementById("filter-status") as HTMLSelectElement
let elementType = document.getElementById("filter-type") 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 let img = element as HTMLImageElement
img.src = arn.emptyPixel() img.src = arn.emptyPixel()
img.classList.remove("element-found") img.classList.remove("element-found")
@ -32,8 +32,8 @@ export function toggleHideAddedAnime() {
// Hides anime that are already in your list. // Hides anime that are already in your list.
export function hideAddedAnime() { export function hideAddedAnime() {
for(let anime of findAll("anime-grid-cell")) { for (let anime of findAll("anime-grid-cell")) {
if(anime.dataset.added !== "true") { if (anime.dataset.added !== "true") {
continue continue
} }
@ -42,10 +42,21 @@ export function hideAddedAnime() {
} }
// Hides anime that are not in your list. // 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")) { for (let anime of findAll("calendar-entry")) {
if(anime.dataset.added === "false") { if (anime.dataset.added === "false") {
anime.classList.toggle("hidden") 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));
} }