docs: configurando deploy via ssh para angular
This commit is contained in:
151
src/app/auth/login/login.component.ts
Normal file
151
src/app/auth/login/login.component.ts
Normal file
@@ -0,0 +1,151 @@
|
||||
import { AfterViewInit, Component, NgZone, OnInit, ViewChild } from '@angular/core';
|
||||
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
||||
import { Router } from '@angular/router';
|
||||
import { DialogService } from '@progress/kendo-angular-dialog';
|
||||
import { TextBoxComponent } from '@progress/kendo-angular-inputs';
|
||||
import { thumbnailsUpIcon } from '@progress/kendo-svg-icons';
|
||||
import { ResultApi } from 'src/app/models/result-api.model';
|
||||
import { MessageFailureComponent } from 'src/app/shared/menssages/message-failure/message-failure.component';
|
||||
import { AuthService } from '../services/auth.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-login',
|
||||
templateUrl: './login.component.html',
|
||||
styleUrls: ['./login.component.scss',
|
||||
'./login.component.css']
|
||||
})
|
||||
export class LoginComponent implements OnInit, AfterViewInit {
|
||||
@ViewChild('password') public textbox: TextBoxComponent;
|
||||
public initialPassword = true;
|
||||
public passwordVisible = false;
|
||||
public loadingIcon = '';
|
||||
|
||||
public form: FormGroup;
|
||||
public data: any = {
|
||||
email: '',
|
||||
password: '',
|
||||
};
|
||||
|
||||
constructor(private authService: AuthService,
|
||||
private router: Router,
|
||||
private dialogService: DialogService,
|
||||
private ngZone: NgZone
|
||||
) {
|
||||
this.form = new FormGroup({
|
||||
password: new FormControl(this.data.password, [Validators.required, Validators.minLength(3)]),
|
||||
email: new FormControl(this.data.email, [
|
||||
Validators.required,
|
||||
]),
|
||||
});
|
||||
}
|
||||
|
||||
private dialog: any;
|
||||
|
||||
public onEnter(event: KeyboardEvent): void {
|
||||
event.preventDefault(); // Evita o envio do formulário padrão
|
||||
if (this.form.valid) {
|
||||
this.submitForm(); // Apenas submete se o formulário for válido
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public submitForm(): void {
|
||||
this.form.markAllAsTouched();
|
||||
if (this.form.valid) {
|
||||
this.loadingIcon = 'loading';
|
||||
const domain = '@jurunense.com.br';
|
||||
let email = this.form.value.email;
|
||||
|
||||
// Remover domínio existente se já foi digitado
|
||||
if (email.toLowerCase().endsWith(domain)) {
|
||||
email = email.substring(0, email.length - domain.length);
|
||||
}
|
||||
|
||||
const emailUpperCase = (email + domain).toUpperCase();
|
||||
const passwordUpperCase = this.form.value.password.toUpperCase();
|
||||
|
||||
this.authService.login({
|
||||
email: emailUpperCase,
|
||||
password: passwordUpperCase
|
||||
})
|
||||
.subscribe((res: ResultApi) => {
|
||||
if (res.success) {
|
||||
this.loadingIcon = '';
|
||||
console.log(JSON.stringify(res.data));
|
||||
this.authService.setDataInLocalStorage('user', JSON.stringify(res.data));
|
||||
this.authService.setDataInLocalStorage('token', res.data.token);
|
||||
localStorage.removeItem('cart');
|
||||
this.router.navigate(['/menu']);
|
||||
} else {
|
||||
this.loadingIcon = '';
|
||||
this.showErrorMessage(res.message);
|
||||
}
|
||||
}, err => {
|
||||
this.loadingIcon = '';
|
||||
this.showErrorMessage(`${err.error.message}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public get isLoading(): boolean {
|
||||
return this.loadingIcon !== '';
|
||||
}
|
||||
|
||||
public clearForm(): void {
|
||||
this.form.reset();
|
||||
}
|
||||
|
||||
public togglePass(): void {
|
||||
const inputEl = this.textbox.input.nativeElement;
|
||||
|
||||
if (this.initialPassword) {
|
||||
inputEl.type = 'password';
|
||||
this.initialPassword = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (inputEl.type === 'password') {
|
||||
inputEl.type = 'text';
|
||||
} else {
|
||||
inputEl.type = 'password';
|
||||
}
|
||||
|
||||
console.log(this.form.controls.password.value);
|
||||
}
|
||||
|
||||
getUserName() {
|
||||
return this.authService.getUserName();
|
||||
}
|
||||
|
||||
showErrorMessage(message: string) {
|
||||
console.log('mensagem de erro', message);
|
||||
const dialogRef = this.dialogService
|
||||
.open({
|
||||
title: 'Error',
|
||||
content: MessageFailureComponent,
|
||||
actions: [{ text: 'OK', primary: true }],
|
||||
width: 400,
|
||||
height: 250,
|
||||
minWidth: 250,
|
||||
});
|
||||
|
||||
const messageInfo = dialogRef.content.instance;
|
||||
messageInfo.message = message;
|
||||
this.ngZone.run(() => {
|
||||
dialogRef.result.subscribe();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
ngOnInit(): void { }
|
||||
|
||||
public ngAfterViewInit(): void {
|
||||
this.textbox.input.nativeElement.type = 'password';
|
||||
}
|
||||
|
||||
public toggleVisibility(): void {
|
||||
const inputEl = this.textbox.input.nativeElement;
|
||||
this.passwordVisible = !this.passwordVisible;
|
||||
inputEl.type = this.passwordVisible ? 'text' : 'password';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user