login.pug 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. extends ../layout
  2. block vars
  3. - metadata = { viewport: true }
  4. block content
  5. .content.content-alt
  6. .container
  7. .row
  8. .col-md-6.col-md-offset-3.col-lg-4.col-lg-offset-4
  9. .card
  10. .page-header
  11. h1 #{translate("log_in")}
  12. form(async-form="login", name="loginForm", action='/login', method="POST", ng-cloak)
  13. input(name='_csrf', type='hidden', value=csrfToken)
  14. form-messages(for="loginForm")
  15. .form-group
  16. input.form-control(
  17. type='email',
  18. name='email',
  19. required,
  20. placeholder='email@example.com',
  21. ng-model="email",
  22. ng-model-options="{ updateOn: 'blur' }",
  23. ng-init="email = "+JSON.stringify(email),
  24. focus="true"
  25. )
  26. span.small.text-primary(ng-show="loginForm.email.$invalid && loginForm.email.$dirty")
  27. | #{translate("must_be_email_address")}
  28. .form-group
  29. input.form-control(
  30. type='password',
  31. name='password',
  32. required,
  33. placeholder='********',
  34. ng-model="password"
  35. )
  36. span.small.text-primary(ng-show="loginForm.password.$invalid && loginForm.password.$dirty")
  37. | #{translate("required")}
  38. .actions
  39. button.btn-primary.btn(
  40. type='submit',
  41. ng-disabled="loginForm.inflight"
  42. )
  43. span(ng-show="!loginForm.inflight") #{translate("login")}
  44. span(ng-show="loginForm.inflight") #{translate("logging_in")}…
  45. a.pull-right(href='/user/password/reset') #{translate("forgot_your_password")}?