Implemented new frontpage
This commit is contained in:
parent
9c900ec01b
commit
4ce0bed52c
7
main.go
7
main.go
@ -110,6 +110,13 @@ func configure(app *aero.Application) *aero.Application {
|
|||||||
app.Ajax("/user/:nick/animelist/dropped", animelist.FilterByStatus(arn.AnimeListStatusDropped))
|
app.Ajax("/user/:nick/animelist/dropped", animelist.FilterByStatus(arn.AnimeListStatusDropped))
|
||||||
app.Ajax("/user/:nick/animelist/anime/:id", animelistitem.Get)
|
app.Ajax("/user/:nick/animelist/anime/:id", animelistitem.Get)
|
||||||
|
|
||||||
|
// Anime list
|
||||||
|
app.Ajax("/animelist/watching", home.FilterByStatus(arn.AnimeListStatusWatching))
|
||||||
|
app.Ajax("/animelist/completed", home.FilterByStatus(arn.AnimeListStatusCompleted))
|
||||||
|
app.Ajax("/animelist/planned", home.FilterByStatus(arn.AnimeListStatusPlanned))
|
||||||
|
app.Ajax("/animelist/hold", home.FilterByStatus(arn.AnimeListStatusHold))
|
||||||
|
app.Ajax("/animelist/dropped", home.FilterByStatus(arn.AnimeListStatusDropped))
|
||||||
|
|
||||||
// Search
|
// Search
|
||||||
app.Ajax("/search", search.Get)
|
app.Ajax("/search", search.Get)
|
||||||
app.Ajax("/search/:term", search.Get)
|
app.Ajax("/search/:term", search.Get)
|
||||||
|
@ -95,4 +95,4 @@
|
|||||||
display none !important
|
display none !important
|
||||||
|
|
||||||
.fill-screen
|
.fill-screen
|
||||||
min-height calc(100vh - nav-height - content-padding * 2 - 1rem - 43px - 23px)
|
min-height calc(100vh - content-padding * 2 - 1rem - 43px - 23px)
|
39
pages/home/animelist.go
Normal file
39
pages/home/animelist.go
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package home
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/aerogo/aero"
|
||||||
|
"github.com/animenotifier/arn"
|
||||||
|
"github.com/animenotifier/notify.moe/components"
|
||||||
|
"github.com/animenotifier/notify.moe/pages/frontpage"
|
||||||
|
"github.com/animenotifier/notify.moe/utils"
|
||||||
|
)
|
||||||
|
|
||||||
|
// FilterByStatus returns a handler for the given anime list item status.
|
||||||
|
func FilterByStatus(status string) aero.Handle {
|
||||||
|
return func(ctx *aero.Context) string {
|
||||||
|
user := utils.GetUser(ctx)
|
||||||
|
|
||||||
|
if user == nil {
|
||||||
|
return frontpage.Get(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
return AnimeList(ctx, user, status)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// AnimeList sends the anime list with the given status for given user.
|
||||||
|
func AnimeList(ctx *aero.Context, user *arn.User, status string) string {
|
||||||
|
viewUser := user
|
||||||
|
animeList := viewUser.AnimeList()
|
||||||
|
|
||||||
|
if animeList == nil {
|
||||||
|
return ctx.Error(http.StatusNotFound, "Anime list not found", nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
animeList.PrefetchAnime()
|
||||||
|
animeList.Sort()
|
||||||
|
|
||||||
|
return ctx.HTML(components.Home(animeList.FilterStatus(status), viewUser, user, status))
|
||||||
|
}
|
@ -1,10 +1,9 @@
|
|||||||
package home
|
package home
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"github.com/animenotifier/arn"
|
||||||
|
|
||||||
"github.com/aerogo/aero"
|
"github.com/aerogo/aero"
|
||||||
"github.com/animenotifier/notify.moe/components"
|
|
||||||
"github.com/animenotifier/notify.moe/pages/frontpage"
|
"github.com/animenotifier/notify.moe/pages/frontpage"
|
||||||
"github.com/animenotifier/notify.moe/utils"
|
"github.com/animenotifier/notify.moe/utils"
|
||||||
)
|
)
|
||||||
@ -17,15 +16,5 @@ func Get(ctx *aero.Context) string {
|
|||||||
return frontpage.Get(ctx)
|
return frontpage.Get(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
viewUser := user
|
return AnimeList(ctx, user, arn.AnimeListStatusWatching)
|
||||||
animeList := viewUser.AnimeList()
|
|
||||||
|
|
||||||
if animeList == nil {
|
|
||||||
return ctx.Error(http.StatusNotFound, "Anime list not found", nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
animeList.PrefetchAnime()
|
|
||||||
animeList.Sort()
|
|
||||||
|
|
||||||
return ctx.HTML(components.Home(animeList.Watching(), animeList.User(), user, "watching"))
|
|
||||||
}
|
}
|
||||||
|
@ -619,6 +619,11 @@ export class AnimeNotifier {
|
|||||||
let newScroll = 0
|
let newScroll = 0
|
||||||
let finalScroll = Math.max(target.offsetTop - contentPadding, 0)
|
let finalScroll = Math.max(target.offsetTop - contentPadding, 0)
|
||||||
let scrollDistance = finalScroll - oldScroll
|
let scrollDistance = finalScroll - oldScroll
|
||||||
|
|
||||||
|
if(scrollDistance > 0 && scrollDistance < 4) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
let timeStart = Date.now()
|
let timeStart = Date.now()
|
||||||
let timeEnd = timeStart + duration
|
let timeEnd = timeStart + duration
|
||||||
|
|
||||||
|
@ -66,6 +66,6 @@ nav-height = 3.11rem
|
|||||||
typography-margin = 0.4rem
|
typography-margin = 0.4rem
|
||||||
|
|
||||||
// Timings
|
// Timings
|
||||||
fade-speed = 300ms
|
fade-speed = 250ms
|
||||||
transition-speed = 200ms
|
transition-speed = 200ms
|
||||||
mountable-transition-speed = 300ms
|
mountable-transition-speed = 250ms
|
||||||
|
@ -82,21 +82,21 @@
|
|||||||
.extra-navigation
|
.extra-navigation
|
||||||
display block
|
display block
|
||||||
|
|
||||||
@media screen and (max-device-height: 500px)
|
// @media screen and (max-device-height: 500px)
|
||||||
#navigation
|
// #navigation
|
||||||
vertical
|
// vertical
|
||||||
height 100%
|
// height 100%
|
||||||
padding content-padding 0
|
// padding content-padding 0
|
||||||
|
|
||||||
#container
|
// #container
|
||||||
horizontal
|
// horizontal
|
||||||
|
|
||||||
.extra-navigation
|
// .extra-navigation
|
||||||
display block
|
// display block
|
||||||
|
|
||||||
#sidebar-toggle,
|
// #sidebar-toggle,
|
||||||
.hide-landscape
|
// .hide-landscape
|
||||||
display none !important
|
// display none !important
|
||||||
|
|
||||||
#search
|
// #search
|
||||||
display none
|
// display none
|
Loading…
Reference in New Issue
Block a user