diff --git a/pages/anime/anime.pixy b/pages/anime/anime.pixy index f6e9f5af..2fb8f62e 100644 --- a/pages/anime/anime.pixy +++ b/pages/anime/anime.pixy @@ -25,10 +25,10 @@ component AnimeMainColumn(anime *arn.Anime, listItem *arn.AnimeListItem, tracks AnimeGenres(anime) AnimeActions(anime, listItem, user) - AnimeCharacters(anime) - AnimeRelations(anime, user) - AnimeTracks(anime, tracks) - AnimeEpisodes(anime, episodes, user) + AnimeCharacters(anime, user, false) + AnimeRelations(anime, user, false) + AnimeTracks(anime, tracks, user, false) + AnimeEpisodes(anime, episodes, user, false) component AnimeSideColumn(anime *arn.Anime, friends []*arn.User, listItems map[*arn.User]*arn.AnimeListItem, user *arn.User) AnimeTrailer(anime) @@ -143,20 +143,6 @@ component AnimeGenres(anime *arn.Anime) a.anime-genre.mountable(href="/genre/" + strings.ToLower(genre), data-mountable-type="footer") span= genre -component AnimeRelations(anime *arn.Anime, user *arn.User) - if anime.Relations() != nil && len(anime.Relations().Items) > 0 - section.anime-section.mountable - h3.anime-section-name Relations - .anime-relations - each relation in anime.Relations().Items - if relation.Anime() != nil - a.anime-relation.mountable(href=relation.Anime().Link(), title=relation.Anime().Title.ByUser(user), data-mountable-type="relation") - img.anime-relation-image.lazy(data-src=relation.Anime().ImageLink("small"), data-webp="true", data-color=relation.Anime().AverageColor(), alt=relation.Anime().Title.ByUser(user)) - .anime-relation-type= relation.HumanReadableType() - .anime-relation-year - if relation.Anime().StartDate != "" - span= relation.Anime().StartDate[:4] - component AnimeTrailer(anime *arn.Anime) if len(anime.Trailers) > 0 && anime.Trailers[0].Service == "Youtube" && anime.Trailers[0].ServiceID != "" section.anime-section.mountable diff --git a/pages/anime/characters.go b/pages/anime/characters.go index e03b8462..22da7b25 100644 --- a/pages/anime/characters.go +++ b/pages/anime/characters.go @@ -3,6 +3,8 @@ package anime import ( "net/http" + "github.com/animenotifier/notify.moe/utils" + "github.com/animenotifier/notify.moe/components" "github.com/aerogo/aero" @@ -12,11 +14,12 @@ import ( // Characters ... func Characters(ctx *aero.Context) string { id := ctx.Get("id") + user := utils.GetUser(ctx) anime, err := arn.GetAnime(id) if err != nil { return ctx.Error(http.StatusNotFound, "Anime not found", err) } - return ctx.HTML(components.AnimeCharacters(anime)) + return ctx.HTML(components.AnimeCharacters(anime, user, true)) } diff --git a/pages/anime/characters.pixy b/pages/anime/characters.pixy index 2cf9174b..dae1bf9a 100644 --- a/pages/anime/characters.pixy +++ b/pages/anime/characters.pixy @@ -1,11 +1,15 @@ -component AnimeCharacters(anime *arn.Anime) - //- AnimeTabs(anime) +component AnimeCharacters(anime *arn.Anime, user *arn.User, standAlonePage bool) + if standAlonePage + h1.mountable + a(href=anime.Link())= anime.Title.ByUser(user) if anime.Characters() != nil && len(anime.Characters().Items) > 0 - .anime-section - h3.anime-section-name Characters + .anime-section.mountable + h3.anime-section-name + a(href=anime.Characters().Link()) Characters + .characters each character in anime.Characters().Items - if character.Role == "main" && character.Character() != nil + if (character.Role == "main" || standAlonePage) && character.Character() != nil .mountable(data-mountable-type="character") Character(character.Character()) \ No newline at end of file diff --git a/pages/anime/episodes.go b/pages/anime/episodes.go index 4ca5ede6..cdbd5b81 100644 --- a/pages/anime/episodes.go +++ b/pages/anime/episodes.go @@ -21,5 +21,5 @@ func Episodes(ctx *aero.Context) string { return ctx.Error(http.StatusNotFound, "Anime not found", err) } - return ctx.HTML(components.AnimeEpisodes(anime, anime.Episodes().Items, user)) + return ctx.HTML(components.AnimeEpisodes(anime, anime.Episodes().Items, user, true)) } diff --git a/pages/anime/episodes.pixy b/pages/anime/episodes.pixy index 6f63353e..295d13fd 100644 --- a/pages/anime/episodes.pixy +++ b/pages/anime/episodes.pixy @@ -1,7 +1,13 @@ -component AnimeEpisodes(anime *arn.Anime, episodes []*arn.AnimeEpisode, user *arn.User) +component AnimeEpisodes(anime *arn.Anime, episodes []*arn.AnimeEpisode, user *arn.User, standAlonePage bool) + if standAlonePage + h1.mountable + a(href=anime.Link())= anime.Title.ByUser(user) + if len(episodes) > 0 .anime-section.mountable - h3.anime-section-name Episodes + h3.anime-section-name + a(href=anime.Episodes().Link()) Episodes + .episodes each episode in episodes a.episode.mountable(href=anime.Link() + "/episode/" + strconv.Itoa(episode.Number), data-mountable-type="episode", data-available=episode.Available()) diff --git a/pages/anime/relations.go b/pages/anime/relations.go new file mode 100644 index 00000000..e3e8a455 --- /dev/null +++ b/pages/anime/relations.go @@ -0,0 +1,24 @@ +package anime + +import ( + "net/http" + + "github.com/aerogo/aero" + "github.com/animenotifier/arn" + "github.com/animenotifier/notify.moe/components" + "github.com/animenotifier/notify.moe/utils" +) + +// Relations ... +func Relations(ctx *aero.Context) string { + user := utils.GetUser(ctx) + id := ctx.Get("id") + + anime, err := arn.GetAnime(id) + + if err != nil { + return ctx.Error(http.StatusNotFound, "Anime not found", err) + } + + return ctx.HTML(components.AnimeRelations(anime, user, true)) +} diff --git a/pages/anime/relations.pixy b/pages/anime/relations.pixy new file mode 100644 index 00000000..59cc1948 --- /dev/null +++ b/pages/anime/relations.pixy @@ -0,0 +1,19 @@ +component AnimeRelations(anime *arn.Anime, user *arn.User, standAlonePage bool) + if standAlonePage + h1.mountable + a(href=anime.Link())= anime.Title.ByUser(user) + + if anime.Relations() != nil && len(anime.Relations().Items) > 0 + section.anime-section.mountable + h3.anime-section-name + a(href=anime.Relations().Link()) Relations + + .anime-relations + each relation in anime.Relations().Items + if relation.Anime() != nil + a.anime-relation.mountable(href=relation.Anime().Link(), title=relation.Anime().Title.ByUser(user), data-mountable-type="relation") + img.anime-relation-image.lazy(data-src=relation.Anime().ImageLink("small"), data-webp="true", data-color=relation.Anime().AverageColor(), alt=relation.Anime().Title.ByUser(user)) + .anime-relation-type= relation.HumanReadableType() + .anime-relation-year + if relation.Anime().StartDate != "" + span= relation.Anime().StartDate[:4] \ No newline at end of file diff --git a/pages/anime/tracks.go b/pages/anime/tracks.go index 48da67df..014dea3e 100644 --- a/pages/anime/tracks.go +++ b/pages/anime/tracks.go @@ -3,6 +3,8 @@ package anime import ( "net/http" + "github.com/animenotifier/notify.moe/utils" + "github.com/animenotifier/notify.moe/components" "github.com/aerogo/aero" @@ -12,6 +14,7 @@ import ( // Tracks ... func Tracks(ctx *aero.Context) string { id := ctx.Get("id") + user := utils.GetUser(ctx) anime, err := arn.GetAnime(id) @@ -23,5 +26,5 @@ func Tracks(ctx *aero.Context) string { return !track.IsDraft && len(track.Media) > 0 && arn.Contains(track.Tags, "anime:"+anime.ID) }) - return ctx.HTML(components.AnimeTracks(anime, tracks)) + return ctx.HTML(components.AnimeTracks(anime, tracks, user, true)) } diff --git a/pages/anime/tracks.pixy b/pages/anime/tracks.pixy index a7b754d1..1939acb0 100644 --- a/pages/anime/tracks.pixy +++ b/pages/anime/tracks.pixy @@ -1,7 +1,12 @@ -component AnimeTracks(anime *arn.Anime, tracks []*arn.SoundTrack) +component AnimeTracks(anime *arn.Anime, tracks []*arn.SoundTrack, user *arn.User, standAlonePage bool) + if standAlonePage + h1.mountable + a(href=anime.Link())= anime.Title.ByUser(user) + if len(tracks) > 0 .anime-section.mountable - h3.anime-section-name Tracks + h3.anime-section-name + a(href="/anime/" + anime.ID + "/tracks") Tracks .soundtracks.anime-soundtracks each track in tracks diff --git a/pages/editlog/editlog.go b/pages/editlog/editlog.go index 1e7d4d23..965d9a04 100644 --- a/pages/editlog/editlog.go +++ b/pages/editlog/editlog.go @@ -14,7 +14,7 @@ import ( const ( entriesFirstLoad = 120 - entriesPerScroll = 30 + entriesPerScroll = 40 ) // Get edit log. diff --git a/pages/editlog/editlog.pixy b/pages/editlog/editlog.pixy index 41a53b87..49c31c41 100644 --- a/pages/editlog/editlog.pixy +++ b/pages/editlog/editlog.pixy @@ -11,61 +11,74 @@ component EditLogPage(entries []*arn.EditLogEntry, nextIndex int, viewUser *arn. LoadMore(nextIndex) component EditLog(entries []*arn.EditLogEntry, user *arn.User) - table.edit-log - thead - tr.mountable - th.text-center Action - th User - th Object - th Key - th Old - th New - th Date - tbody#load-more-target - EditLogScrollable(entries, user) + #load-more-target.edit-log + .edit-log-header.mountable + .edit-log-icon Action + .edit-log-user User + .edit-log-object Object + .edit-log-key Key + .edit-log-value Old + .edit-log-value New + .edit-log-date Date + + EditLogScrollable(entries, user) component EditLogScrollable(entries []*arn.EditLogEntry, user *arn.User) each entry in entries - tr.mountable - td - .edit-log-icon(title=entry.Action) - if entry.Action == "create" - .edit-log-create - RawIcon("plus") - else if entry.Action == "delete" - .edit-log-delete - RawIcon("minus") - else if entry.Action == "edit" || entry.Action == "arrayAppend" || entry.Action == "arrayRemove" - .edit-log-change - RawIcon("pencil") - - if entry.Action == "arrayAppend" + .edit-log-entry.mountable + .edit-log-icon(title=entry.Action) + if entry.Action == "create" + .edit-log-create + RawIcon("plus") + else if entry.Action == "delete" + .edit-log-delete + RawIcon("minus") + else if entry.Action == "edit" || entry.Action == "arrayAppend" || entry.Action == "arrayRemove" + .edit-log-change + RawIcon("pencil") + + if entry.Action == "arrayAppend" + .edit-log-sub-icon.edit-log-add + RawIcon("plus-square") + else if entry.Action == "arrayRemove" + .edit-log-sub-icon.edit-log-remove + RawIcon("minus-square") + else + if entry.OldValue == "" && entry.NewValue != "" .edit-log-sub-icon.edit-log-add - RawIcon("plus-square") - else if entry.Action == "arrayRemove" + RawIcon("plus-circle") + else if entry.OldValue != "" && entry.NewValue == "" .edit-log-sub-icon.edit-log-remove - RawIcon("minus-square") - else - if entry.OldValue == "" && entry.NewValue != "" - .edit-log-sub-icon.edit-log-add - RawIcon("plus-circle") - else if entry.OldValue != "" && entry.NewValue == "" - .edit-log-sub-icon.edit-log-remove - RawIcon("minus-circle") + RawIcon("minus-circle") - td - .edit-log-user - Avatar(entry.User()) - td.edit-log-object - if strings.HasPrefix(arn.GetObjectTitle(entry.ObjectType, entry.ObjectID), "