aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/login
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/login')
-rw-r--r--client/src/app/login/index.ts1
-rw-r--r--client/src/app/login/login.component.html14
-rw-r--r--client/src/app/login/login.component.ts36
3 files changed, 51 insertions, 0 deletions
diff --git a/client/src/app/login/index.ts b/client/src/app/login/index.ts
new file mode 100644
index 000000000..69c16441f
--- /dev/null
+++ b/client/src/app/login/index.ts
@@ -0,0 +1 @@
export * from './login.component';
diff --git a/client/src/app/login/login.component.html b/client/src/app/login/login.component.html
new file mode 100644
index 000000000..940694515
--- /dev/null
+++ b/client/src/app/login/login.component.html
@@ -0,0 +1,14 @@
1<h3>Login</h3>
2<form role="form" (submit)="login(username.value, password.value)">
3 <div class="form-group">
4 <label for="username">Username</label>
5 <input type="text" #username class="form-control" id="username" placeholder="Username">
6 </div>
7
8 <div class="form-group">
9 <label for="password">Password</label>
10 <input type="password" #password class="form-control" id="password" placeholder="Password">
11 </div>
12
13 <input type="submit" value="Login" class="btn btn-default">
14</form>
diff --git a/client/src/app/login/login.component.ts b/client/src/app/login/login.component.ts
new file mode 100644
index 000000000..9d88536ca
--- /dev/null
+++ b/client/src/app/login/login.component.ts
@@ -0,0 +1,36 @@
1import { Component } from '@angular/core';
2import { Router } from '@angular/router-deprecated';
3
4import { AuthService, AuthStatus, User } from '../shared';
5
6@Component({
7 selector: 'my-login',
8 template: require('./login.component.html')
9})
10
11export class LoginComponent {
12 constructor(
13 private authService: AuthService,
14 private router: Router
15 ) {}
16
17 login(username: string, password: string) {
18 this.authService.login(username, password).subscribe(
19 result => {
20 const user = new User(username, result);
21 user.save();
22
23 this.authService.setStatus(AuthStatus.LoggedIn);
24
25 this.router.navigate(['VideosList']);
26 },
27 error => {
28 if (error.error === 'invalid_grant') {
29 alert('Credentials are invalid.');
30 } else {
31 alert(`${error.error}: ${error.error_description}`);
32 }
33 }
34 );
35 }
36}