Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.38 KB | None | 0 0
  1. import { Component, OnInit } from '@angular/core';
  2. import { Router, ActivatedRoute } from '@angular/router';
  3. import { FormBuilder, FormGroup, Validators } from '@angular/forms';
  4. import { first } from 'rxjs/operators';
  5.  
  6. import { AuthService } from '../../shared/auth.service';
  7. import { Service, CredentialsViewModel } from '../../core/api.client.generated';
  8. import Swal from 'sweetalert2';
  9.  
  10. @Component({
  11. selector: 'app-dashboard',
  12. templateUrl: 'login.component.html'
  13. })
  14. export class LoginComponent implements OnInit {
  15. loginForm: FormGroup;
  16. dbName: string = '';
  17. loading = false;
  18. submitted = false;
  19. returnUrl: string;
  20. error = '';
  21. showPassBtnLabel = 'Show';
  22.  
  23. // SAP Companies
  24.  
  25. constructor(
  26. private formBuilder: FormBuilder,
  27. private route: ActivatedRoute,
  28. private router: Router,
  29. private authService: AuthService,
  30. private apiService: Service
  31. ) {
  32.  
  33. }
  34. ngOnInit() {
  35. this.loginForm = this.formBuilder.group({
  36. username: ['', Validators.required],
  37. password: ['', Validators.required]
  38. });
  39.  
  40. // reset login status
  41. this.authService.logout();
  42.  
  43. // get return url from route parameters or default to '/'
  44. this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
  45. }
  46.  
  47.  
  48. showPassword(input: any): any {
  49. input.type = input.type === 'password' ? 'text' : 'password';
  50. }
  51.  
  52. get f() { return this.loginForm.controls; }
  53.  
  54. onSubmit() {
  55. this.submitted = true;
  56.  
  57. // stop here if form is invalid
  58. if (this.loginForm.invalid) {
  59. return;
  60. }
  61.  
  62. this.loading = true;
  63. const credential = new CredentialsViewModel();
  64. credential.dbName = this.dbName;
  65. credential.userName = this.f.username.value;
  66. credential.password = this.f.password.value;
  67. credential.address = '172.24.11.164';
  68. credential.dbName = 'SBOLIVE_AM';
  69. this.apiService.login(credential)
  70. .subscribe(
  71. response => {
  72. if (response.result === 'success') {
  73. localStorage.setItem('currentUser', JSON.stringify(response.resultData));
  74. this.router.navigate(['sellout']);
  75. const toast = Swal.mixin({
  76. toast: true,
  77. position: 'top-end',
  78. showConfirmButton: false,
  79. timer: 3000
  80. });
  81.  
  82. toast.fire({
  83. type: 'success',
  84. title: 'Signed in successfully'
  85. });
  86. } else {
  87. this.error = response.message;
  88. }
  89. this.loading = false;
  90. },
  91. error => {
  92. this.error = error;
  93. this.loading = false;
  94. }
  95. );
  96. }
  97. }
  98.  
  99.  
  100. <div class="app-body">
  101. <main class="main d-flex align-items-center">
  102. <div class="container">
  103. <div class="row" style="padding-left: 1rem; padding-right: 1rem;">
  104. <div class="col-sm-5 bg-white rounded">
  105. <div class="ibox-content" style="padding-bottom: 1rem;">
  106. <form [formGroup]="loginForm" (ngSubmit)="onSubmit()">
  107. <div class="text-center">
  108. <img src="assets/img/avatars/RPO.png" class="ml-auto mt-3 mb-3" width="25%" />
  109. </div>
  110. <div *ngIf="error" class="alert alert-danger">{{error}}</div>
  111. <p class="text-muted">Sign In to your account</p>
  112. <div class="input-group mb-1">
  113. <div class="input-group-prepend">
  114. <span class="input-group-text"><i class="icon-user"></i></span>
  115. </div>
  116. <input type="text" formControlName="username" class="form-control"
  117. [ngClass]="{ 'is-invalid': submitted && f.username.errors }" placeholder="Username">
  118. <div *ngIf="submitted && f.username.errors" class="invalid-feedback">
  119. <div *ngIf="f.username.errors.required">Username is required</div>
  120. </div>
  121. </div>
  122. <div class="input-group mb-1">
  123. <div class="input-group-prepend">
  124. <span class="input-group-text"><i class="icon-lock"></i></span>
  125. </div>
  126. <input #inputPass type="password" formControlName="password" class="form-control"
  127. [ngClass]="{ 'is-invalid': submitted && f.password.errors }" placeholder="Password" />
  128. <div class="input-group-append">
  129. <button class="btn btn-outline-primary" type="button" (click)="showPassword(inputPass)"><i
  130. [ngClass]="inputPass.type == 'password' ? 'fa fa-eye' : 'fa fa-eye-slash'"></i></button>
  131. </div>
  132. <div *ngIf="submitted && f.password.errors" class="invalid-feedback">
  133. <div *ngIf="f.password.errors.required">Password is required</div>
  134. </div>
  135. </div>
  136.  
  137. <button [disabled]="loading" type="submit" class="btn btn-primary btn-block"
  138. style="margin-top: 2rem;">Login <img *ngIf="loading"
  139. src="data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==" /></button>
  140.  
  141. <!-- <a class="mb-10" href="#">
  142. <small>Forgot password?</small>
  143. </a>
  144.  
  145. <p class="text-muted text-center">
  146. <small>Do not have an account?</small>
  147. </p>
  148. <button type="button" class="btn btn-outline-primary btn-sm btn-block">Create an account</button> -->
  149.  
  150. </form>
  151. </div>
  152. </div>
  153. <div class="col-sm-7">
  154. <h2 class="font-bold">RPO Software Solutions Inc.,</h2>
  155. <small>Powered by <a href="#">RPO Dev Team</a> &copy; 2019</small>
  156. <div class="card-body">
  157. <carousel [interval]="3000">
  158. <slide>
  159. <img src="../../../assets/img/p_big1.jpg" alt="First slide" style="display: block; width: 100%;">
  160. </slide>
  161. <slide>
  162. <img src="../../../assets/img/p_big2.jpg" alt="Second slide" style="display: block; width: 100%;">
  163. </slide>
  164. <slide>
  165. <img src="../../../assets/img/p_big3.jpg" alt="Third slide" style="display: block; width: 100%;">
  166. </slide>
  167. </carousel>
  168. </div>
  169. </div>
  170.  
  171. </div>
  172. <hr />
  173. <div class="row">
  174. <div class="col-md-6">
  175. Copyright <a href="#">RPO Software Solutions Inc.,</a>
  176. </div>
  177. <div class="col-md-6 text-right">
  178. <small>© 2019</small>
  179. </div>
  180. </div>
  181. </div>
  182.  
  183. </main>
  184. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement