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 for mood of moodHistory li strong= mood.mood | | #{mood.date} 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. If you do not do this I will cry. 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 include _feed.pug +feed(recentUpdates) h1#invite-codes(style="margin-top:1em;") Invite codes p 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) Generate script(nonce=nonce). function disable(form) { form.preventDefault(); const btn = form.querySelector("button"); btn.preventDefault(); btn.setAttribute("disabled", true); setTimeout(() => { btn.removeAttribute("disabled"); }, 3000) }