Some improvements

This commit is contained in:
Eduard Urbach 2016-12-06 12:36:31 +09:00
parent c2d9817ec5
commit 1268aa8ba6
21 changed files with 72 additions and 273 deletions

View File

@ -16,6 +16,7 @@ import (
"github.com/animenotifier/notify.moe/pages/profile" "github.com/animenotifier/notify.moe/pages/profile"
"github.com/animenotifier/notify.moe/pages/search" "github.com/animenotifier/notify.moe/pages/search"
"github.com/animenotifier/notify.moe/pages/threads" "github.com/animenotifier/notify.moe/pages/threads"
"github.com/animenotifier/notify.moe/pages/users"
) )
var app = aero.New() var app = aero.New()
@ -25,8 +26,7 @@ func main() {
app.SetStyle(components.CSS()) app.SetStyle(components.CSS())
// HTTPS // HTTPS
app.Security.Certificate, _ = ioutil.ReadFile("security/fullchain.pem") app.Security.Load("security/fullchain.pem", "security/privkey.pem")
app.Security.Key, _ = ioutil.ReadFile("security/privkey.pem")
// Layout // Layout
app.Layout = func(ctx *aero.Context, content string) string { app.Layout = func(ctx *aero.Context, content string) string {
@ -45,10 +45,7 @@ func main() {
app.Ajax("/posts/:id", posts.Get) app.Ajax("/posts/:id", posts.Get)
app.Ajax("/user/:nick", profile.Get) app.Ajax("/user/:nick", profile.Get)
app.Ajax("/airing", airing.Get) app.Ajax("/airing", airing.Get)
app.Ajax("/users", users.Get)
app.Ajax("/test", func(ctx *aero.Context) string {
return ctx.HTML(components.Test("Hello World"))
})
// Scripts // Scripts
scripts, _ := ioutil.ReadFile("temp/scripts.js") scripts, _ := ioutil.ReadFile("temp/scripts.js")

View File

@ -5,6 +5,7 @@ component Navigation
NavigationButton("Forum", "/forum", "comment") NavigationButton("Forum", "/forum", "comment")
NavigationButton("Genres", "/genres", "tags") NavigationButton("Genres", "/genres", "tags")
NavigationButton("Airing", "/airing", "rss") NavigationButton("Airing", "/airing", "rss")
NavigationButton("Users", "/users", "globe")
component NavigationButton(name string, target string, icon string) component NavigationButton(name string, target string, icon string)
a.navigation-link.ajax(href=target) a.navigation-link.ajax(href=target)

View File

@ -34,7 +34,7 @@ component Postable(post arn.Postable, viewUser *arn.User, highlightAuthorID stri
//- a.post-tool.post-edit(onclick=`$.edit("${post.ID}")`, title="Edit") //- a.post-tool.post-edit(onclick=`$.edit("${post.ID}")`, title="Edit")
//- i.fa.fa-pencil.fa-fw //- i.fa.fa-pencil.fa-fw
//- if post.Type() != "Thread" if post.Type() != "Thread"
a.post-tool.post-permalink.ajax(href=post.Link(), title="Permalink") a.post-tool.post-permalink.ajax(href=post.Link(), title="Permalink")
Icon("link") Icon("link")

View File

@ -63,5 +63,4 @@
border-radius 3px border-radius 3px
object-fit cover object-fit cover
default-transition default-transition
scale-up
shadow-up shadow-up

View File

@ -1,14 +1,12 @@
package dashboard package dashboard
import ( import (
"sort"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"github.com/animenotifier/arn" "github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components" "github.com/animenotifier/notify.moe/components"
) )
const maxPosts = 6 const maxPosts = 5
// Get ... // Get ...
func Get(ctx *aero.Context) string { func Get(ctx *aero.Context) string {
@ -18,7 +16,7 @@ func Get(ctx *aero.Context) string {
return ctx.Error(500, "Error fetching posts", err) return ctx.Error(500, "Error fetching posts", err)
} }
sort.Sort(sort.Reverse(posts)) arn.SortPostsLatestFirst(posts)
if len(posts) > maxPosts { if len(posts) > maxPosts {
posts = posts[:maxPosts] posts = posts[:maxPosts]

View File

@ -1,10 +1,21 @@
component Dashboard(posts []*arn.Post) component Dashboard(posts []*arn.Post)
h2 Dash h2 Dash
.dashboard
.dashboard-widget .dashboard-widget
h3 Airing
for i := 1; i <= 5; i++
a.dashboard-event
.dashboard-event-text
span ...
.dashboard-widget
h3 Forums
each post in posts each post in posts
a.dashboard-event.ajax(href=post.Link()) a.dashboard-event.ajax(href=post.Link())
.dashboard-event-author //- .dashboard-event-author
AvatarNoLink(post.Author()) //- AvatarNoLink(post.Author())
.dashboard-event-text .dashboard-event-text
span= post.Thread().Title span= post.Thread().Title

View File

@ -1,12 +1,18 @@
.dashboard
horizontal-wrap
justify-content space-around
.dashboard-widget .dashboard-widget
vertical vertical
align-items center align-items center
width 100%
max-width 600px
.dashboard-event .dashboard-event
vertical-wrap vertical-wrap
ui-element ui-element
margin-bottom 1rem margin-bottom 1rem
padding 0.75rem padding 0.75rem 1rem
width 100% width 100%
max-width 700px max-width 700px
@ -17,6 +23,6 @@
.dashboard-event-text .dashboard-event-text
horizontal horizontal
justify-content center justify-content flex-start
align-items center align-items center
width 100% width 100%

View File

@ -1,8 +1,6 @@
package forum package forum
import ( import (
"sort"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"github.com/animenotifier/arn" "github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components" "github.com/animenotifier/notify.moe/components"
@ -14,8 +12,7 @@ const threadsPerPage = 20
func Get(ctx *aero.Context) string { func Get(ctx *aero.Context) string {
tag := ctx.Get("tag") tag := ctx.Get("tag")
threads, _ := arn.GetThreadsByTag(tag) threads, _ := arn.GetThreadsByTag(tag)
arn.SortThreads(threads)
sort.Sort(threads)
if len(threads) > threadsPerPage { if len(threads) > threadsPerPage {
threads = threads[:threadsPerPage] threads = threads[:threadsPerPage]

View File

@ -5,6 +5,8 @@ component Forum(tag string, threads []*arn.Thread)
each thread in threads each thread in threads
ThreadLink(thread) ThreadLink(thread)
button#load-more-threads Load more
component ThreadLink(thread *arn.Thread) component ThreadLink(thread *arn.Thread)
.thread-link(data-sticky=thread.Sticky) .thread-link(data-sticky=thread.Sticky)
.post-author.thread-author .post-author.thread-author

View File

@ -0,0 +1,2 @@
#load-more-threads
margin-top 1rem

View File

@ -1,44 +0,0 @@
.forum-header
text-align left
.forum-tags
text-align left
margin-bottom 1.5rem
.thread-link
display flex
flex-flow row
width 100%
.thread-reply-count
.thread-icons
opacity 0.5
text-align right
position relative
.thread-reply-count
font-size 0.8rem
flex 1
margin 0 1rem
.thread-icons
flex 0
.thread-content-container
display flex
align-items center
width 100%
.thread-content
display flex
align-items center
justify-content flex-start
text-align left
min-height 80%
a
color rgb(32, 32, 32) !important
&:hover
color linkHoverColor !important
// .thread-icon
// font-size 0.9em

View File

@ -1,183 +0,0 @@
profileBootDuration = 2s
.profile
position relative
left content-padding * -1
top content-padding * -1
min-width calc(100% + 3rem)
padding content-padding * 2
color white
text-shadow 0px 0px 2px rgb(0, 0, 0, 0.5)
default-transition
animation-name appear
animation-duration transition-speed
overflow hidden
// &:hover
// .profile-cover
// filter brightness(28%)
@keyframes appear
0%
transform rotateX(90deg)
filter opacity(0) saturate(0) blur(10px)
100%
transform rotateX(0)
filter opacity(1) saturate(1) blur(0)
.profile-cover
position absolute
left 0
top 0
width 100%
height 100%
z-index -1
background-size cover
overflow hidden
default-transition
animation cover-animation profileBootDuration
animation-fill-mode forwards
@keyframes cover-animation
0%
filter brightness(500%) blur(5px)
100%
filter brightness(35%) blur(0)
.profile-image
border-radius 3px
width 320px !important
height 320px !important
// padding content-padding
object-fit cover
#anime-list-container
flex 1.5
// rotate-y()
// transform-origin 0% 0%
// animation rotate-y-animation profileBootDuration
// animation-fill-mode forwards
// @keyframes rotate-y-animation
// 0%
// opacity 0
// transform rotateY(90deg)
// 100%
// opacity 1
// transform rotateY(0deg)
.image-container
float left
width auto
// padding content-padding
.intro-container
float left
width auto
display flex
flex-flow column
align-items center
padding content-padding
padding-top 0
padding-left content-padding * 2
max-width 900px
// rotate-y()
.user-actions
float right
display flex
flex-flow row
justify-content center
.user-action
max-width 250px
#nick
text-align left
margin-top 0
margin-bottom 0
.profile-field
margin-bottom 0.2em
.location
// ...
.role
opacity 0.6
.list-provider-username
margin-top 0
margin-bottom 0
font-size 0.9em
.main
// ...
.alternative
opacity 0.4
.report-bug-hint
//
.loading-message
margin 0 auto
text-align center
opacity 0.4
#embedded-footer
position fixed
bottom 4em
right calc(16px + 1em)
text-align right
z-index 1
font-size 0.9em
display flex
flex-flow row
.user
display inline-block
width auto
height auto
margin-right 1em
.embedded-footer-info
display flex
flex-flow column
.embedded-footer-nick
text-align left
opacity 0.5
.embedded-footer-separator
opacity 0.2
@media only screen and (max-width: 900px)
.intro-container
margin 1em 0
padding 0
width 100%
text-align center !important
#anime-list-container
.image-container
.user-actions
width 100%
#nick
.profile-field
width 100%
text-align center
@media only screen and (min-width: 900px)
#posts
margin-left 0.5em
@media only screen and (max-width: 800px)
.airing-date-prefix
display none

View File

@ -1,2 +0,0 @@
component Test(msg string)
h1= msg

View File

@ -1,8 +1,6 @@
package threads package threads
import ( import (
"sort"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"github.com/animenotifier/arn" "github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components" "github.com/animenotifier/notify.moe/components"
@ -21,7 +19,7 @@ func Get(ctx *aero.Context) string {
return post.ThreadID == thread.ID return post.ThreadID == thread.ID
}) })
sort.Sort(replies) arn.SortPostsLatestLast(replies)
if filterErr != nil { if filterErr != nil {
return ctx.Error(500, "Error fetching thread replies", err) return ctx.Error(500, "Error fetching thread replies", err)

View File

@ -9,7 +9,7 @@
.post .post
vertical vertical
margin-bottom 1rem margin-bottom 0.75rem
> 600px > 600px
.post .post

11
pages/users/users.go Normal file
View File

@ -0,0 +1,11 @@
package users
import (
"github.com/aerogo/aero"
"github.com/animenotifier/notify.moe/components"
)
// Get ...
func Get(ctx *aero.Context) string {
return ctx.HTML(components.Users())
}

2
pages/users/users.pixy Normal file
View File

@ -0,0 +1,2 @@
component Users
h2 Users

View File

@ -18,13 +18,19 @@ input, textarea
:disabled :disabled
ui-disabled ui-disabled
// button, select button, select
// ui-element ui-element
// box-shadow 0 0 2px white, 0 -2px 5px rgba(0, 0, 0, 0.08) inset max-width 600px
// :focus padding 0.6rem 1rem
// color rgb(0, 0, 0) margin 0 auto
// box-shadow 0 0 6px alpha(mainColor, 20%) // box-shadow 0 0 2px white, 0 -2px 5px rgba(0, 0, 0, 0.08) inset
// border 1px solid mainColor // :active
// background-color black
// color white
// :focus
// color rgb(0, 0, 0)
// // box-shadow 0 0 6px alpha(mainColor, 20%)
// border 1px solid main-color
// input[type="submit"]:hover, // input[type="submit"]:hover,
// button:hover // button:hover

View File

@ -10,16 +10,16 @@
h1 h1
font-size 1.5rem font-size 1.5rem
line-height 2em line-height 1.5em
h2 h2
font-size 1.3rem font-size 1.3rem
line-height 2em line-height 1.5em
font-weight normal font-weight normal
h3 h3
font-size 1.1rem font-size 1.1rem
line-height 2em line-height 1.5em
font-weight normal font-weight normal
:hover :hover

View File

@ -18,8 +18,6 @@ mixin grid-cell
margin 0.5rem margin 0.5rem
scale-up
mixin grid-text mixin grid-text
vertical vertical
width 100% width 100%

View File

@ -25,7 +25,7 @@ mixin ui-element
:hover :hover
border ui-hover-border border ui-hover-border
background ui-hover-background background ui-hover-background
box-shadow outline-shadow-medium // box-shadow outline-shadow-medium
mixin ui-disabled mixin ui-disabled
background-color ui-disabled-color background-color ui-disabled-color