New style for groups
This commit is contained in:
@ -26,7 +26,7 @@ func Edit(ctx *aero.Context) string {
|
||||
member = group.FindMember(user.ID)
|
||||
}
|
||||
|
||||
return ctx.HTML(components.GroupTabs(group, member, user) + editform.Render(group, "Edit group", user))
|
||||
return ctx.HTML(components.GroupHeader(group, member, user) + editform.Render(group, "Edit group", user))
|
||||
}
|
||||
|
||||
// EditImage renders the form to edit the group images.
|
||||
|
@ -1,17 +1,6 @@
|
||||
component GroupFeed(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
GroupTabs(group, member, user)
|
||||
|
||||
.group-header
|
||||
if group.Name != ""
|
||||
h1.group-page-name.mountable= group.Name
|
||||
else
|
||||
h1.group-page-name.mountable untitled
|
||||
|
||||
if group.Tagline != ""
|
||||
p.group-page-tagline.mountable= group.Tagline
|
||||
else
|
||||
p.group-page-tagline.mountable no tagline yet
|
||||
GroupHeader(group, member, user)
|
||||
|
||||
.group-view
|
||||
.group-feed
|
||||
Comments(group, user)
|
||||
Comments(group, user)
|
@ -7,8 +7,43 @@
|
||||
.group-feed
|
||||
flex 1
|
||||
|
||||
.group-avatar-container
|
||||
display flex
|
||||
justify-content center
|
||||
|
||||
.group-avatar
|
||||
width 280px
|
||||
height 280px
|
||||
border-radius ui-element-border-radius
|
||||
object-fit cover
|
||||
|
||||
.group-header
|
||||
margin-bottom content-padding
|
||||
vertical
|
||||
cover-image-container
|
||||
align-items center
|
||||
|
||||
.group-header-intro
|
||||
vertical
|
||||
align-self center
|
||||
align-items center
|
||||
margin-top content-padding
|
||||
|
||||
> 800px
|
||||
.group-header
|
||||
horizontal
|
||||
|
||||
.group-header-intro
|
||||
margin-top 0
|
||||
margin-left calc(content-padding * 2)
|
||||
align-self flex-start
|
||||
align-items flex-start
|
||||
|
||||
.group-page-name
|
||||
margin-top 0
|
||||
|
||||
.group-page-name,
|
||||
.group-page-tagline
|
||||
text-align left
|
||||
|
||||
.group-page-name
|
||||
margin 0
|
||||
@ -17,4 +52,4 @@
|
||||
text-align center
|
||||
|
||||
&.mounted
|
||||
opacity 0.6 !important
|
||||
opacity 0.7 !important
|
40
pages/group/header.pixy
Normal file
40
pages/group/header.pixy
Normal file
@ -0,0 +1,40 @@
|
||||
component GroupHeader(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
.group-header
|
||||
img.profile-cover.lazy(data-src="/images/elements/default-group-cover.jpg", data-webp="true", alt="Cover image")
|
||||
|
||||
.group-avatar-container
|
||||
img.group-avatar.group-image-input-preview.lazy(data-src=group.ImageLink("large"), data-webp="true", data-color=group.AverageColor(), alt=group.Name)
|
||||
|
||||
.group-header-intro
|
||||
if group.Name != ""
|
||||
h1.group-page-name.mountable.never-unmount= group.Name
|
||||
else
|
||||
h1.group-page-name.mountable.never-unmount untitled
|
||||
|
||||
if group.Tagline != ""
|
||||
p.group-page-tagline.mountable.never-unmount= group.Tagline
|
||||
else
|
||||
p.group-page-tagline.mountable.never-unmount no tagline yet
|
||||
|
||||
.profile-tags-container
|
||||
.profile-tags
|
||||
a.profile-tag.mountable.never-unmount.action(href=group.Link() + "/members", data-action="diff", data-trigger="click")
|
||||
Icon("user")
|
||||
span= stringutils.Plural(len(group.Members), "member")
|
||||
|
||||
each tag in group.Tags
|
||||
.profile-tag.mountable.never-unmount
|
||||
Icon("tag")
|
||||
span= tag
|
||||
|
||||
.profile-actions(data-api="/api" + group.Link())
|
||||
if member == nil
|
||||
button.profile-action.action.mountable.never-unmount(data-action="join", data-trigger="click")
|
||||
Icon("user-plus")
|
||||
span Join group
|
||||
else
|
||||
button.profile-action.action.mountable.never-unmount(data-action="leave", data-trigger="click")
|
||||
Icon("user-times")
|
||||
span Leave group
|
||||
|
||||
GroupTabs(group, member, user)
|
@ -17,5 +17,5 @@ func renderHistory(obj interface{}, entries []*arn.EditLogEntry, user *arn.User)
|
||||
member = group.FindMember(user.ID)
|
||||
}
|
||||
|
||||
return components.GroupTabs(group, member, user) + components.EditLog(entries, user)
|
||||
return components.GroupHeader(group, member, user) + components.EditLog(entries, user)
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
component EditGroupImage(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
GroupTabs(group, member, user)
|
||||
GroupHeader(group, member, user)
|
||||
|
||||
.widget-form
|
||||
h1.mountable Edit group image
|
||||
|
@ -1,5 +1,5 @@
|
||||
component GroupInfo(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
GroupTabs(group, member, user)
|
||||
GroupHeader(group, member, user)
|
||||
h1.page-title= fmt.Sprintf("%s - Info", group.Name)
|
||||
|
||||
.group-view
|
||||
@ -12,14 +12,6 @@ component GroupInfo(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
.group-info-section
|
||||
h3.mountable Rules
|
||||
.group-rules.mountable!= markdown.Render(group.Rules)
|
||||
|
||||
if len(group.Tags) > 0
|
||||
.group-info-section
|
||||
h3.mountable Tags
|
||||
|
||||
.tags.group-tags.mountable
|
||||
each tag in group.Tags
|
||||
.tag= tag
|
||||
|
||||
.group-info-section
|
||||
h3.mountable Founder
|
||||
|
@ -1,17 +1,7 @@
|
||||
component GroupMembers(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
GroupTabs(group, member, user)
|
||||
GroupHeader(group, member, user)
|
||||
h1.page-title= fmt.Sprintf("%s - Members", group.Name)
|
||||
|
||||
.user-avatars.group-members.mountable
|
||||
each member in group.Members
|
||||
Avatar(member.User())
|
||||
|
||||
.buttons(data-api="/api" + group.Link())
|
||||
if member == nil
|
||||
button.mountable.action(data-action="join", data-trigger="click")
|
||||
Icon("user-plus")
|
||||
span Join group
|
||||
else
|
||||
button.mountable.action(data-action="leave", data-trigger="click")
|
||||
Icon("user-times")
|
||||
span Leave group
|
||||
Avatar(member.User())
|
@ -1,8 +1,8 @@
|
||||
component GroupTabs(group *arn.Group, member *arn.GroupMember, user *arn.User)
|
||||
.tabs
|
||||
.tabs.mountable.never-unmount
|
||||
Tab("Posts", "comment", group.Link())
|
||||
Tab("Info", "info-circle", group.Link() + "/info")
|
||||
Tab("Members", "globe", group.Link() + "/members")
|
||||
Tab("Members", "user", group.Link() + "/members")
|
||||
|
||||
if member != nil && member.Role == "founder"
|
||||
Tab("Edit", "pencil", group.Link() + "/edit")
|
||||
|
Reference in New Issue
Block a user