1
0
Fork 0
mirror of https://git.sr.ht/~roxwize/mipilin synced 2025-01-31 02:53:36 +00:00
mipilin/views/dashboard.pug

89 lines
3 KiB
Text
Raw Normal View History

extends site.pug
include _util.pug
block head
link(rel="stylesheet", href="/css/dashboard.css")
style
| #content { margin-left: 256px; }
block page
#sidebar
h1 Profile
form#dashboard-profile(action=`/users/${user.name}/edit`, method="post")
textarea(placeholder="bio (max 1024 chars)", maxlength="1024", name="bio", rows=5)= user.bio
input(type="url", name="website", placeholder="website", value=user.website)
button(type="submit") Edit
h1(style="margin-top:1em;") Mood history
ul#dashboard-mood-history
if moodHistory.length < 1
span [no updates]
for mood of moodHistory
li
strong= mood.mood
|
| #{mood.date}
h1(style="margin-top:1em;") Follows
table
tbody
for follow of followed
tr
td
a(href=`/users/${follow.uname}`)= follow.uname
td
form(action=`/users/${follow.uname}/follow`, method="post")
button Unfollow
block content
p
a(href="#feed") Feed
| /
a(href="#invite-codes") Invite codes
p This is where you "MIPILIN"! That is all you need to know!!!
p If onlookers notice your actions and inquire about what you are doing, you MUST tell them that you are mipilining all over the place, and then PROMPTLY SCROLL DOWN AND GENERATE AN INVITE CODE SO THAT THEY CAN MIPILIN TOO.
form#dashboard-update-form(action="/update/mood", method="post", onsubmit="disable(this);")
select(name="mood", required)
//- Maybe put the index of the mood in the value of the option element
//- so that indexOf (slow) wont have to be used everytime mood is updated
for mood of moodsSorted
option= mood
textarea(name="desc", placeholder="mood description (max 512 chars)", rows="5", maxlength="512")
button(type="submit") Update
h1#feed(style="margin-top:0.5em;") Feed
+feed(recentUpdates)
h1#invite-codes(style="margin-top:1em;") Invite codes
p If you're a trusted user, you can invite your friends to the mipilin beta! You can create up to five invite codes every month, and they all expire within a week.
p
| Your current invite codes (
strong= codesUsed
| /5):
if codes.length > 0
table
tbody
tr
th Token
th Expires
for code of codes
tr
td= code.token
+invite_code_expiration(code)
else
.subtle You have no currently active invite codes.
br
form(action="/codes/create", method="post")
button(type="submit", disabled=codesUsed>=5 || !isTrusted) Generate
if codesUsed >= 5
p You've generated the maximum amount of codes this month.
if !isTrusted
p You need be manually marked as "trusted" to generate codes.
script(nonce=nonce).
function disable(form) {
const btn = form.querySelector("button");
btn.setAttribute("disabled", "");
setTimeout(() => {
btn.removeAttribute("disabled");
}, 3000)
}