login-page.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const app = require('../app')
  2. app.component('appLoginPage', {
  3. template: html`
  4. <app-home-area>
  5. <form name="form" ng-submit="login.submit(form)" class="md-inline-form" layout-align="center" layout="column" novalidate>
  6. <md-input-container>
  7. <label>Email</label>
  8. <input type="email" required md-no-asterisk="true" ng-model="login.model.email" />
  9. </md-input-container>
  10. <md-input-container>
  11. <label>Password</label>
  12. <input type="password" required md-no-asterisk="true" ng-model="login.model.password" />
  13. </md-input-container>
  14. <md-button type="submit" class="md-raised md-primary">Login</md-button>
  15. <md-button class="" href="/forgot-password">Forgot password</md-button>
  16. </form>
  17. </app-home-area>
  18. `,
  19. controllerAs: 'login',
  20. controller: function(api, $mdToast, $location) {
  21. api.get('/api/auth/check').then(() => {
  22. $location.url('/dashboard')
  23. }, err => {
  24. console.info('Not logged in: ', err)
  25. })
  26. this.submit = async form => {
  27. try {
  28. const res = await api.login(this.model)
  29. api.setToken(res.token)
  30. $location.url('/dashboard')
  31. } catch (err) {
  32. $mdToast.showSimple(`Login failed`)
  33. }
  34. }
  35. }
  36. })