component AnimeLists(animeLists map[string]*arn.AnimeList, viewUser *arn.User, user *arn.User, uri string) ProfileHeader(viewUser, user, uri) h1.page-title.anime-list-owner= viewUser.Nick + "'s collection" if len(animeLists[arn.AnimeListStatusWatching].Items) == 0 && len(animeLists[arn.AnimeListStatusCompleted].Items) == 0 && len(animeLists[arn.AnimeListStatusPlanned].Items) == 0 && len(animeLists[arn.AnimeListStatusHold].Items) == 0 && len(animeLists[arn.AnimeListStatusDropped].Items) == 0 p.no-data.mountable= viewUser.Nick + " hasn't added any anime yet." else if len(animeLists[arn.AnimeListStatusWatching].Items) > 0 .anime-list-container h3.status-name Watching AnimeList(animeLists[arn.AnimeListStatusWatching], viewUser, user) if len(animeLists[arn.AnimeListStatusCompleted].Items) > 0 .anime-list-container h3.status-name Completed AnimeList(animeLists[arn.AnimeListStatusCompleted], viewUser, user) if len(animeLists[arn.AnimeListStatusPlanned].Items) > 0 .anime-list-container h3.status-name Planned AnimeList(animeLists[arn.AnimeListStatusPlanned], viewUser, user) if len(animeLists[arn.AnimeListStatusHold].Items) > 0 .anime-list-container h3.status-name On hold AnimeList(animeLists[arn.AnimeListStatusHold], viewUser, user) if len(animeLists[arn.AnimeListStatusDropped].Items) > 0 .anime-list-container h3.status-name Dropped AnimeList(animeLists[arn.AnimeListStatusDropped], viewUser, user) //- for status, animeList := range animeLists //- h3= status //- AnimeList(animeList, user) component AnimeList(animeList *arn.AnimeList, viewUser *arn.User, user *arn.User) table.anime-list tbody each item in animeList.Items tr.anime-list-item(title=item.Notes, data-api="/api/animelist/" + animeList.UserID + "/update/" + item.AnimeID) td.anime-list-item-name a.ajax(href=item.Link(animeList.User().Nick))= item.Anime().Title.Canonical if user != nil && item.Status == arn.AnimeListStatusWatching && item.Anime().EpisodeByNumber(item.Episodes + 1) != nil td.anime-list-item-actions for _, link := range item.Anime().EpisodeByNumber(item.Episodes + 1).Links a(href=link, title="Watch episode " + toString(item.Episodes + 1) + " on twist.moe", target="_blank", rel="noopener") RawIcon("eye") //- a(href=arn.Nyaa.GetLink(item.Anime()), title="Search on Nyaa", target="_blank", rel="noopener") //- RawIcon("download") td.anime-list-item-airing-date if item.Status == arn.AnimeListStatusWatching && item.Anime().UpcomingEpisode() != nil span.utc-airing-date(data-start-date=item.Anime().UpcomingEpisode().Episode.AiringDate.Start, data-end-date=item.Anime().UpcomingEpisode().Episode.AiringDate.End, data-episode-number=item.Anime().UpcomingEpisode().Episode.Number) td.anime-list-item-episodes .anime-list-item-episodes-watched .action(contenteditable=utils.SameUser(user, viewUser), data-field="Episodes", data-type="number", data-trigger="focusout", data-action="save")= item.Episodes if item.Status == arn.AnimeListStatusWatching .plus-episode.action(data-action="increaseEpisode", data-trigger="click") + .anime-list-item-episodes-separator / .anime-list-item-episodes-max= item.Anime().EpisodeCountString() //- .anime-list-item-episodes-edit //- a.ajax(href=, title="Edit anime") //- RawIcon("pencil") td.anime-list-item-rating(title="Overall rating") .action(contenteditable=utils.SameUser(user, viewUser), data-field="Rating.Overall", data-type="number", data-trigger="focusout", data-action="save")= utils.FormatRating(item.Rating.Overall) //- td.anime-list-item-rating(title="Story rating") //- .action(contenteditable=utils.SameUser(user, viewUser), data-field="Rating.Story", data-type="number", data-trigger="focusout", data-action="save")= fmt.Sprintf("%.1f", item.Rating.Story) //- td.anime-list-item-rating(title="Visuals rating") //- .action(contenteditable=utils.SameUser(user, viewUser), data-field="Rating.Visuals", data-type="number", data-trigger="focusout", data-action="save")= fmt.Sprintf("%.1f", item.Rating.Visuals) //- td.anime-list-item-rating(title="Soundtrack rating") //- .action(contenteditable=utils.SameUser(user, viewUser), data-field="Rating.Soundtrack", data-type="number", data-trigger="focusout", data-action="save")= fmt.Sprintf("%.1f", item.Rating.Soundtrack)