From ecceb415cade427eb2dd19fc19ac37eb85d0fc43 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Mon, 29 Oct 2018 11:30:23 +0900 Subject: [PATCH] Added soundtrack comments --- mixins/NewPostArea.pixy | 2 +- pages/search/search.go | 3 ++- pages/search/search.pixy | 6 +++--- pages/soundtrack/soundtrack.go | 7 ++++++- pages/soundtrack/soundtrack.pixy | 23 ++++++++++++++++++++++- pages/thread/thread.pixy | 2 +- scripts/Actions/Forum.ts | 17 ++++++----------- 7 files changed, 41 insertions(+), 19 deletions(-) diff --git a/mixins/NewPostArea.pixy b/mixins/NewPostArea.pixy index 43d3212a..572ec607 100644 --- a/mixins/NewPostArea.pixy +++ b/mixins/NewPostArea.pixy @@ -3,4 +3,4 @@ component NewPostArea(user *arn.User, placeholder string) .post-author Avatar(user) - textarea#new-reply.post-content(placeholder=placeholder + "...", aria-label=placeholder) \ No newline at end of file + textarea#new-post.post-content(placeholder=placeholder + "...", aria-label=placeholder) \ No newline at end of file diff --git a/pages/search/search.go b/pages/search/search.go index 718f4939..6e2cd9bf 100644 --- a/pages/search/search.go +++ b/pages/search/search.go @@ -90,9 +90,10 @@ func Forum(ctx *aero.Context) string { func SoundTracks(ctx *aero.Context) string { term := ctx.Get("term") term = strings.TrimPrefix(term, "/") + user := utils.GetUser(ctx) tracks := search.SoundTracks(term, maxSoundTracks) - return ctx.HTML(components.SoundTrackSearchResults(tracks)) + return ctx.HTML(components.SoundTrackSearchResults(tracks, user)) } // Users search. diff --git a/pages/search/search.pixy b/pages/search/search.pixy index 1f379f62..f08311f4 100644 --- a/pages/search/search.pixy +++ b/pages/search/search.pixy @@ -32,7 +32,7 @@ component SearchResults(term string, users []*arn.User, animes []*arn.Anime, pos span Soundtracks #soundtrack-search-results - SoundTrackSearchResults(tracks) + SoundTrackSearchResults(tracks, user) //- .widget //- h3.widget-title @@ -97,14 +97,14 @@ component ForumSearchResults(posts []*arn.Post, threads []*arn.Thread, user *arn .forum-search-result-author= post.Creator().Nick .forum-search-result-sample= post.Text -component SoundTrackSearchResults(tracks []*arn.SoundTrack) +component SoundTrackSearchResults(tracks []*arn.SoundTrack, user *arn.User) if len(tracks) == 0 p.no-search-results.mountable No soundtracks found. else ul.soundtrack-search each track in tracks li.mountable(data-mountable-type="track") - a(href=track.Link())= track.Title.ByUser(nil) + a(href=track.Link())= track.Title.ByUser(user) span.soundtrack-search-anime= " - " + track.MainAnime().Title.Canonical component CompanySearchResults(companies []*arn.Company) diff --git a/pages/soundtrack/soundtrack.go b/pages/soundtrack/soundtrack.go index de1cdc80..81fa63cf 100644 --- a/pages/soundtrack/soundtrack.go +++ b/pages/soundtrack/soundtrack.go @@ -20,5 +20,10 @@ func Get(ctx *aero.Context) string { } ctx.Data = getOpenGraph(ctx, track) - return ctx.HTML(components.SoundTrackPage(track, user)) + + // Comments + posts := track.Posts() + arn.SortPostsLatestFirst(posts) + + return ctx.HTML(components.SoundTrackPage(track, posts, user)) } diff --git a/pages/soundtrack/soundtrack.pixy b/pages/soundtrack/soundtrack.pixy index b742d39b..819429f2 100644 --- a/pages/soundtrack/soundtrack.pixy +++ b/pages/soundtrack/soundtrack.pixy @@ -1,4 +1,4 @@ -component SoundTrackPage(track *arn.SoundTrack, user *arn.User) +component SoundTrackPage(track *arn.SoundTrack, posts []*arn.Post, user *arn.User) SoundTrackTabs(track, user) .soundtrack-full-page @@ -55,6 +55,27 @@ component SoundTrackPage(track *arn.SoundTrack, user *arn.User) .tags each tag in track.Tags a.tag(href="/soundtracks/tag/" + tag)= tag + + .widget.mountable + h3.widget-title Comments + + .thread + .posts + each post in posts + Postable(post.ToPostable(), user, "") + + if user != nil + if track.Locked + footer.footer.mountable + p.text-center This soundtrack is locked. + else + NewPostArea(user, "Comment") + + .buttons + if !track.Locked + button.mountable.action(data-action="createPost", data-trigger="click", data-parent-type="SoundTrack", data-parent-id=track.ID) + Icon("mail-reply") + span Reply .footer.mountable if track.EditedBy != "" diff --git a/pages/thread/thread.pixy b/pages/thread/thread.pixy index 1b91cf1b..4ba37795 100644 --- a/pages/thread/thread.pixy +++ b/pages/thread/thread.pixy @@ -18,7 +18,7 @@ component Thread(thread *arn.Thread, posts []*arn.Post, user *arn.User) .buttons if !thread.Locked - button.mountable.action(data-action="forumReply", data-trigger="click") + button.mountable.action(data-action="createPost", data-trigger="click", data-parent-type="Thread", data-parent-id=thread.ID) Icon("mail-reply") span Reply diff --git a/scripts/Actions/Forum.ts b/scripts/Actions/Forum.ts index 47f5fd04..0f0fde65 100644 --- a/scripts/Actions/Forum.ts +++ b/scripts/Actions/Forum.ts @@ -56,15 +56,15 @@ export function deletePost(arn: AnimeNotifier, element: HTMLElement) { .catch(err => arn.statusMessage.showError(err)) } -// Forum reply -export function forumReply(arn: AnimeNotifier) { - let textarea = document.getElementById("new-reply") as HTMLTextAreaElement - let thread = document.getElementById("thread") +// Create post +export function createPost(arn: AnimeNotifier, element: HTMLElement) { + let textarea = document.getElementById("new-post") as HTMLTextAreaElement + let {parentId, parentType} = element.dataset let post = { text: textarea.value, - parentId: thread.dataset.id, - parentType: "Thread", + parentId, + parentType, tags: [] } @@ -74,11 +74,6 @@ export function forumReply(arn: AnimeNotifier) { .catch(err => arn.statusMessage.showError(err)) } -// Group post -export function newGroupPost(arn: AnimeNotifier) { - // TODO: ... -} - // Create thread export function createThread(arn: AnimeNotifier) { let title = document.getElementById("title") as HTMLInputElement