diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 48daef0..f702c58 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -50,23 +50,23 @@ const appRoutes: Routes = [ { path: 'changelog', component: ChangelogComponent, canActivate: [AuthGuard] }, { path: 'monitoring', loadChildren: () => import('../app/content/hemat-app/monitoring/monitoring.module').then(m => m.MonitoringModule) - // , canActivate: [AuthGuard] + , canActivate: [AuthGuard] }, { path: 'device', loadChildren: () => import('../app/content/hemat-app/device/device.module').then(m => m.DeviceModule) - // , canActivate: [AuthGuard] + , canActivate: [AuthGuard] }, { path: 'cost-management', loadChildren: () => import('../app/content/hemat-app/cost-management/cost-management.module').then(m => m.CostManagementModule) - // , canActivate: [AuthGuard] + , canActivate: [AuthGuard] }, { path: 'user-access', loadChildren: () => import('../app/content/hemat-app/user-access/user-access.module').then(m => m.UserAccessModule) - // , canActivate: [AuthGuard] + , canActivate: [AuthGuard] }, { path: 'master', loadChildren: () => import('../app/content/hemat-app/master/master.module').then(m => m.MasterModule) - // , canActivate: [AuthGuard] + , canActivate: [AuthGuard] }, { path: 'dashboard', loadChildren: () => import('../app/content/dashboard/dashboard.module').then(m => m.DashboardModule) diff --git a/src/app/content/hemat-app/service/monitoring-api.service.ts b/src/app/content/hemat-app/service/monitoring-api.service.ts index 425949a..0af6f46 100644 --- a/src/app/content/hemat-app/service/monitoring-api.service.ts +++ b/src/app/content/hemat-app/service/monitoring-api.service.ts @@ -8,6 +8,15 @@ import { Observable } from "rxjs"; export class BuildingService { constructor(private http: HttpClient) {} + postLogin(data: any): Observable { + const url = `https://kapi.absys.ninja/hemat/users/login`; + const headers = new HttpHeaders({ + 'Content-Type': 'application/json', + 'x-api-key': 'j2yaYvPSQcsEEmHh3NEobfiXyyXmmnHT' + }); + return this.http.post(url, data, { headers }); + } + getBuildingData(page: number = 1, limit: number = 10): Observable { const url = `https://kapi.absys.ninja/hemat/building?page=${page}&limit=${limit}`; // const headers = new HttpHeaders().set('Content-Type', 'application/json'); diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html index 8bfe87c..e84f8bb 100644 --- a/src/app/login/login.component.html +++ b/src/app/login/login.component.html @@ -1,4 +1,4 @@ -
+
diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts index bc55662..638134d 100644 --- a/src/app/login/login.component.ts +++ b/src/app/login/login.component.ts @@ -3,6 +3,8 @@ import { Router, ActivatedRoute } from "@angular/router"; import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { AuthService } from "../_services/auth.service"; import { AlertService } from "../_services/alert.service"; +import { HttpClient } from "@angular/common/http"; +import { BuildingService } from "../content/hemat-app/service/monitoring-api.service"; @Component({ templateUrl: "login.component.html", @@ -18,10 +20,10 @@ export class LoginComponent implements OnInit { constructor( private formBuilder: FormBuilder, private route: ActivatedRoute, - private router: Router, - private alertService: AlertService, public authService: AuthService, - private renderer: Renderer2 + private renderer: Renderer2, + private router: Router, + private monitoringApiService: BuildingService ) { this.route.queryParams.subscribe((params) => { this.returnUrl = params["returnUrl"]; @@ -29,23 +31,30 @@ export class LoginComponent implements OnInit { } ngOnInit() { + // this.loginForm = this.formBuilder.group({ + // email: ["john@pixinvent.com", Validators.required], + // password: ["password@123", Validators.required], + // rememberMe: false, + // }); this.loginForm = this.formBuilder.group({ - email: ["john@pixinvent.com", Validators.required], - password: ["password@123", Validators.required], + email: ["user1", Validators.required], + password: ["password", Validators.required], rememberMe: false, }); // Remember Me - if (localStorage.getItem("remember")) { - this.renderer.removeClass(document.body, "bg-full-screen-image"); - localStorage.removeItem("currentLayoutStyle"); - this.router.navigate(["/monitoring"]); - } else if (localStorage.getItem("currentUser")) { - // Force logout on login if not remember me - this.authService.doLogout(); - this.isPageLoaded = true; - } else { - this.isPageLoaded = true; - } + // console.log(localStorage.getItem("remember")); + + // if (localStorage.getItem("remember")) { + // this.renderer.removeClass(document.body, "bg-full-screen-image"); + // localStorage.removeItem("currentLayoutStyle"); + // this.router.navigate(["/monitoring"]); + // } else if (localStorage.getItem("currentUser")) { + // // Force logout on login if not remember me + // this.authService.doLogout(); + // this.isPageLoaded = true; + // } else { + // this.isPageLoaded = true; + // } } // convenience getter for easy access to form fields @@ -53,43 +62,75 @@ export class LoginComponent implements OnInit { return this.loginForm.controls; } + // tryLogin() { + // this.submitted = true; + + // // stop here if form is invalid + // if (this.loginForm.invalid) { + // return; + // } + // const value = { + // email: this.f.email.value, + // password: this.f.password.value, + // }; + + // this.authService.doLogin(value).then( + // (res) => { + // console.log(res, 'res login'); + + // if ( + // this.loginForm.controls["rememberMe"] && + // this.loginForm.controls["rememberMe"].value + // ) { + // localStorage.setItem("remember", "true"); + // } else { + // localStorage.removeItem("remember"); + // } + // this.setUserInStorage(res); + // localStorage.removeItem("currentLayoutStyle"); + // let returnUrl = "/monitoring"; + // if (this.returnUrl) { + // returnUrl = this.returnUrl; + // } + // this.router.navigate([returnUrl]); + // }, + // (err) => { + // this.submitted = false; + // this.alertService.error(err.message); + // } + // ); + // } + tryLogin() { this.submitted = true; - // stop here if form is invalid if (this.loginForm.invalid) { return; } - const value = { - email: this.f.email.value, - password: this.f.password.value, + + const loginData = { + username: this.loginForm.value.email, + password: this.loginForm.value.password }; - this.authService.doLogin(value).then( - (res) => { - console.log(res, 'res login'); - - if ( - this.loginForm.controls["rememberMe"] && - this.loginForm.controls["rememberMe"].value - ) { - localStorage.setItem("remember", "true"); - } else { - localStorage.removeItem("remember"); + this.monitoringApiService.postLogin(loginData) + .subscribe( + (response: any) => { + console.log('Login successful:', response); + localStorage.setItem('access_token', response.access_token); + + // Store the user profile information + const userProfile = { + displayName: this.loginForm.value.email, + }; + localStorage.setItem('currentUser', JSON.stringify(userProfile)); + + this.router.navigate(['/monitoring']); + }, + error => { + console.error('Login failed:', error); } - this.setUserInStorage(res); - localStorage.removeItem("currentLayoutStyle"); - let returnUrl = "/monitoring"; - if (this.returnUrl) { - returnUrl = this.returnUrl; - } - this.router.navigate([returnUrl]); - }, - (err) => { - this.submitted = false; - this.alertService.error(err.message); - } - ); + ); } addCheckbox(event) { const toggle = document.getElementById("icheckbox");