2014-02-12 05:23:40 -05:00
|
|
|
extends ../layout
|
|
|
|
|
|
|
|
block content
|
2014-06-09 03:54:14 -04:00
|
|
|
.content.content-alt
|
|
|
|
.container
|
|
|
|
.row
|
|
|
|
.col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
|
|
|
|
.card
|
|
|
|
.page-header
|
2014-06-20 16:35:42 -04:00
|
|
|
h1 Log In
|
2014-06-18 10:23:00 -04:00
|
|
|
form(async-form="login", name="loginForm", action='/login', ng-cloak)
|
2014-06-09 03:54:14 -04:00
|
|
|
input(name='_csrf', type='hidden', value=csrfToken)
|
|
|
|
input(name='redir', type='hidden', value=redir)
|
2014-06-20 06:15:25 -04:00
|
|
|
form-messages(for="loginForm")
|
2014-06-09 05:19:02 -04:00
|
|
|
.form-group
|
2014-06-17 11:19:40 -04:00
|
|
|
input.form-control(
|
|
|
|
type='email',
|
|
|
|
name='email',
|
2014-06-18 10:23:00 -04:00
|
|
|
required,
|
|
|
|
placeholder='email@example.com',
|
2014-07-09 09:53:30 -04:00
|
|
|
ng-model="email",
|
|
|
|
ng-model-options="{ updateOn: 'blur' }"
|
2014-06-17 11:19:40 -04:00
|
|
|
)
|
2014-06-18 10:23:00 -04:00
|
|
|
span.small.text-primary(ng-show="loginForm.email.$invalid && loginForm.email.$dirty")
|
|
|
|
| Must be an email address
|
2014-06-09 05:19:02 -04:00
|
|
|
.form-group
|
2014-06-17 11:19:40 -04:00
|
|
|
input.form-control(
|
|
|
|
type='password',
|
|
|
|
name='password',
|
2014-06-18 10:23:00 -04:00
|
|
|
required,
|
|
|
|
placeholder='********',
|
|
|
|
ng-model="password"
|
2014-06-17 11:19:40 -04:00
|
|
|
)
|
2014-06-18 10:23:00 -04:00
|
|
|
span.small.text-primary(ng-show="loginForm.password.$invalid && loginForm.password.$dirty")
|
|
|
|
| Required
|
2014-06-09 03:54:14 -04:00
|
|
|
.actions
|
2014-06-18 10:23:00 -04:00
|
|
|
button.btn-primary.btn(
|
2014-07-11 12:08:19 -04:00
|
|
|
type='submit',
|
|
|
|
ng-disabled="loginForm.inflight"
|
|
|
|
)
|
|
|
|
span(ng-show="!loginForm.inflight") Login
|
|
|
|
span(ng-show="loginForm.inflight") Logging in...
|
2014-06-17 11:19:40 -04:00
|
|
|
a.pull-right(href='/user/password/reset') Forgot your password?
|