Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/Login.vue
Show All 17 Lines | <div class="container d-flex flex-column align-items-center"> | ||||
<label for="inputPassword" class="sr-only">Password</label> | <label for="inputPassword" class="sr-only">Password</label> | ||||
<div class="input-group"> | <div class="input-group"> | ||||
<span class="input-group-prepend"> | <span class="input-group-prepend"> | ||||
<span class="input-group-text"><svg-icon icon="lock"></svg-icon></span> | <span class="input-group-text"><svg-icon icon="lock"></svg-icon></span> | ||||
</span> | </span> | ||||
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required v-model="password"> | <input type="password" id="inputPassword" class="form-control" placeholder="Password" required v-model="password"> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group pt-3"> | <div class="form-group pt-3" v-if="!isAdmin"> | ||||
<label for="secondfactor" class="sr-only">2FA</label> | <label for="secondfactor" class="sr-only">2FA</label> | ||||
<div class="input-group"> | <div class="input-group"> | ||||
<span class="input-group-prepend"> | <span class="input-group-prepend"> | ||||
<span class="input-group-text"><svg-icon icon="key"></svg-icon></span> | <span class="input-group-text"><svg-icon icon="key"></svg-icon></span> | ||||
</span> | </span> | ||||
<input type="text" id="secondfactor" class="form-control rounded-right" placeholder="Second factor code" v-model="secondFactor"> | <input type="text" id="secondfactor" class="form-control rounded-right" placeholder="Second factor code" v-model="secondFactor"> | ||||
</div> | </div> | ||||
<small class="form-text text-muted">Second factor code is optional for users with no 2-Factor Authentication setup.</small> | <small class="form-text text-muted">Second factor code is optional for users with no 2-Factor Authentication setup.</small> | ||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
<button class="btn btn-primary" type="submit"> | <button class="btn btn-primary" type="submit"> | ||||
<svg-icon icon="sign-in-alt"></svg-icon> Sign in | <svg-icon icon="sign-in-alt"></svg-icon> Sign in | ||||
</button> | </button> | ||||
</div> | </div> | ||||
</form> | </form> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="mt-1"> | <div class="mt-1"> | ||||
<router-link :to="{ name: 'password-reset' }">Forgot password?</router-link> | <router-link v-if="!isAdmin" :to="{ name: 'password-reset' }" id="forgot-password">Forgot password?</router-link> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
export default { | export default { | ||||
data() { | data() { | ||||
return { | return { | ||||
email: '', | email: '', | ||||
password: '', | password: '', | ||||
secondFactor: '', | secondFactor: '', | ||||
isAdmin: window.config.isAdmin, | |||||
loginError: false | loginError: false | ||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
submitLogin() { | submitLogin() { | ||||
this.loginError = false | this.loginError = false | ||||
this.$root.clearFormValidation($('form.form-signin')) | this.$root.clearFormValidation($('form.form-signin')) | ||||
Show All 14 Lines |