From 68901ac25ecc4e88b287562a6012f4e76aad11c5 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Sun, 15 Oct 2017 21:11:12 +0200 Subject: [PATCH] Added soundtrack drafts --- pages/soundtrack/edit.go | 5 +++-- pages/soundtracks/soundtracks.go | 5 ++++- pages/soundtracks/soundtracks.pixy | 14 ++++++++++---- scripts/Actions.ts | 8 ++++++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/pages/soundtrack/edit.go b/pages/soundtrack/edit.go index dd72b80d..94569065 100644 --- a/pages/soundtrack/edit.go +++ b/pages/soundtrack/edit.go @@ -94,9 +94,10 @@ func RenderField(b *bytes.Buffer, v *reflect.Value, field reflect.StructField, i if field.Name == "IsDraft" { if fieldValue.Bool() { b.WriteString(`
`) - } else { - b.WriteString(`
`) } + // else { + // b.WriteString(`
`) + // } } case "[]*arn.ExternalMedia": for sliceIndex := 0; sliceIndex < fieldValue.Len(); sliceIndex++ { diff --git a/pages/soundtracks/soundtracks.go b/pages/soundtracks/soundtracks.go index 11dee8b2..bac4310c 100644 --- a/pages/soundtracks/soundtracks.go +++ b/pages/soundtracks/soundtracks.go @@ -6,12 +6,15 @@ import ( "github.com/aerogo/aero" "github.com/animenotifier/arn" "github.com/animenotifier/notify.moe/components" + "github.com/animenotifier/notify.moe/utils" ) const maxTracks = 9 // Get renders the soundtracks page. func Get(ctx *aero.Context) string { + user := utils.GetUser(ctx) + tracks, err := arn.FilterSoundTracks(func(track *arn.SoundTrack) bool { return !track.IsDraft && len(track.Media) > 0 }) @@ -26,5 +29,5 @@ func Get(ctx *aero.Context) string { tracks = tracks[:maxTracks] } - return ctx.HTML(components.SoundTracks(tracks)) + return ctx.HTML(components.SoundTracks(tracks, user)) } diff --git a/pages/soundtracks/soundtracks.pixy b/pages/soundtracks/soundtracks.pixy index 0d175189..7791a875 100644 --- a/pages/soundtracks/soundtracks.pixy +++ b/pages/soundtracks/soundtracks.pixy @@ -1,10 +1,16 @@ -component SoundTracks(tracks []*arn.SoundTrack) +component SoundTracks(tracks []*arn.SoundTrack, user *arn.User) h1 Soundtracks .music-buttons - a.button.action(data-action="newSoundTrack", data-trigger="click") - Icon("plus") - span Add soundtrack + if user != nil + if user.DraftIndex().SoundTrackID == "" + button.action(data-action="newSoundTrack", data-trigger="click") + Icon("plus") + span Add soundtrack + else + a.button.ajax(href="/soundtrack/" + user.DraftIndex().SoundTrackID + "/edit") + Icon("pencil") + span Edit draft .sound-tracks each track in tracks diff --git a/scripts/Actions.ts b/scripts/Actions.ts index 65ec77fb..de2db6d8 100644 --- a/scripts/Actions.ts +++ b/scripts/Actions.ts @@ -199,7 +199,7 @@ export function createThread(arn: AnimeNotifier) { export function newSoundTrack(arn: AnimeNotifier, button: HTMLButtonElement) { arn.post("/api/new/soundtrack", "") .then(response => response.json()) - .then(response => console.log(response)) + .then(track => arn.app.load(`/soundtrack/${track.id}/edit`)) .catch(err => arn.statusMessage.showError(err)) } @@ -208,7 +208,7 @@ export function publish(arn: AnimeNotifier, button: HTMLButtonElement) { let endpoint = arn.findAPIEndpoint(button) arn.post(endpoint + "/publish", "") - .then(() => arn.reloadContent()) + .then(() => arn.app.load(arn.app.currentPath.replace("/edit", ""))) .catch(err => arn.statusMessage.showError(err)) } @@ -356,6 +356,10 @@ export function arrayAppend(arn: AnimeNotifier, element: HTMLElement) { // Remove element from array export function arrayRemove(arn: AnimeNotifier, element: HTMLElement) { + if(!confirm("Are you sure you want to remove this element?")) { + return + } + let field = element.dataset.field let index = element.dataset.index let apiEndpoint = arn.findAPIEndpoint(element)