a mini social media app for small communities
at main 2.0 kB view raw
1@include 'partial/header.html' 2 3<script src="/static/js/password.js"></script> 4 5<h1>register</h1> 6 7<div> 8 @if ctx.form_error != '' 9 <p>error: @ctx.form_error</p> 10 @end 11 12 @if ctx.is_logged_in() 13 <p>you are already logged in as @{user.get_name()}!</p> 14 <a href="/api/user/logout">log out</a> 15 @else 16 <form action="/api/user/register" method="post" beep-redirect="/me"> 17 <label for="username">username:</label> 18 <input 19 type="text" 20 name="username" 21 id="username" 22 pattern="@app.config.user.username_pattern" 23 minlength="@app.config.user.username_min_len" 24 maxlength="@app.config.user.username_max_len" 25 required 26 > 27 <br> 28 <label for="password">password: <a href="#" id="view-password" style="display: inline;">view</a></label> 29 <input 30 type="password" 31 name="password" 32 id="password" 33 pattern="@app.config.user.password_pattern" 34 minlength="@app.config.user.password_min_len" 35 maxlength="@app.config.user.password_max_len" 36 required 37 > 38 <br> 39 <label for="confirm-password">confirm password: <a href="#" id="view-confirm-password" style="display: inline;">view</a></label> 40 <input 41 type="password" 42 name="confirm-password" 43 id="confirm-password" 44 pattern="@app.config.user.password_pattern" 45 minlength="@app.config.user.password_min_len" 46 maxlength="@app.config.user.password_max_len" 47 required 48 > 49 <br> 50 <p>passwords match: <span id="passwords-match">yes</span></p> 51 <br> 52 @if app.config.instance.invite_only 53 <label for="invite-code">invite code:</label> 54 <input type="text" name="invite-code" id="invite-code" required> 55 <br> 56 @end 57 @if app.config.hcaptcha.enabled 58 <div class="h-captcha" data-sitekey="@{app.config.hcaptcha.site_key}"></div> 59 <script src="https://js.hcaptcha.com/1/api.js" async defer></script> 60 <br> 61 @end 62 <input type="submit" value="register"> 63 </form> 64 @end 65</div> 66 67<script> 68 add_password_checkers('password', 'confirm-password', 'passwords-match'); 69</script> 70 71@include 'partial/footer.html'