<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Auth</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic|Material+Icons"> <link rel="stylesheet" href="https://unpkg.com/vue-material/dist/vue-material.min.css"> <link rel="stylesheet" href="https://unpkg.com/vue-material/dist/theme/default-dark.css"> <script defer src="https://unpkg.com/vue-material"></script> <script defer src="./resources/js/auth.js"></script> </head> <body> <div id="app"> <div class="topbar-container"> <md-toolbar class="md-accent" md-elevation="5"> <h3 class="md-title" style="flex: 1">Brainlet</h3> <md-button @click="navigateHome()" v-if="loggedInUser.username">Home</md-button> </md-toolbar> </div> <div class="md-layout md-alignment-top-center" v-if="!successfulLogin"> <md-card class="md-layout-item md-size-25 md-medium-size-100"> <md-card-header> <div class="md-title">{{ modeName }}</div> </md-card-header> <md-card-content> <div v-if="mode === 'LOGIN' || mode === 'SIGNUP'"> <div> <md-field> <label>Username</label> <md-input v-model="usernameInput"></md-input> </md-field> </div> <div v-if="mode === 'SIGNUP'"> <md-field> <label>Email</label> <md-input v-model="emailInput"></md-input> </md-field> </div> <div> <md-field> <label>Password</label> <md-input v-model="passwordInput" type="password"></md-input> </md-field> </div> </div> <div v-if="mode === 'SPECIAL_CODE'"> <div> <p> The owner of this Brainlet instance has made it so that signing up requires a special code. </p> <md-field> <label>Special code</label> <md-input v-model="specialCodeInput" type="password"></md-input> </md-field> </div> </div> </md-card-content> <md-card-actions> <md-button v-if="mode === 'SIGNUP'" @click="mode='LOGIN'" class="md-dense">Log in instead</md-button> <md-button v-if="mode === 'LOGIN'" @click="mode='SIGNUP'" class="md-dense">Sign up instead</md-button> <md-button v-if="mode === 'SPECIAL_CODE'" class="md-dense" @click="mode='SIGNUP'">Go back</md-button> <md-button v-if="mode === 'SIGNUP' || mode === 'SPECIAL_CODE'" class="md-dense md-raised md-primary" @click="performAccountCreation()">Sign up</md-button> <md-button v-if="mode === 'LOGIN'" class="md-dense md-raised md-primary" @click="performTokenCreation()">Log in</md-button> <md-button v-if="mode === 'MANAGE'" class="md-dense md-raised" @click="performTokenRemoval()">Log out</md-button> </md-card-actions> </md-card> </div> <md-snackbar md-position="center" :md-duration="snackbarNotificationDuration" :md-active.sync="showSnackbarNotification" md-persistent> <span>{{ snackbarNotification }}</span> <md-button class="md-primary" @click="snackbarButtonClick()">{{ snackbarButtonText }}</md-button> </md-snackbar> </div> </body> </html>