ekangularbase
Version:
Authentication service for usermanagement(oidc client)
194 lines (160 loc) • 7.04 kB
text/typescript
import { OnInit } from '@angular/core';
import { MenuItem, SelectItem } from 'primeng/api';
import { AuthService } from 'ekangularbase/src/auth/auth.service';
import { OperatingCentreService, OperatingCentreClass } from 'ekangularbase/src/service/object/OperatingCentre.service';
import { AppConfig } from 'ekangularbase/src/AppConfig/AppConfig';
import { Router, NavigationEnd } from '@angular/router';
import { UserService } from 'ekangularbase/src/service/object/user.service';
export class HeaderBase implements OnInit {
items: MenuItem[];
allOcList: OperatingCentreClass[] = [];
oclist: SelectItem[] = [];
selectedoc: SelectItem;
hideMenuText = '<<';
pushRightClass = 'push-right';
username = '';
constructor(
public authService: AuthService,
public operatingCentreService: OperatingCentreService,
public router: Router,
public userService: UserService,
) {}
ngOnInit(): void {
this.router.events.subscribe(val => {
if (
val instanceof NavigationEnd &&
window.innerWidth <= 992 &&
this.isToggled()
) {
this.toggleSidebar();
}
});
this.initMenu();
this.ngOnLocalInit();
}
ngOnLocalInit() {}
initMenu() {
this.authService.loadingcompleted.subscribe(s => {
// alert('start ngam ngam');
// this.updatenotificationbar();
this.username = this.authService.getUserName();
this.operatingCentreService.Get().subscribe(res => {
if (res != null) {
this.allOcList = res;
// console.log("123");
// console.log(this.allOcList);
this.oclist = [];
let codes = this.authService.getOcCodes();
// Added by Rama - Start
if (typeof codes === 'string') {
codes = Array(codes);
}
codes.forEach(e => {
const oc = res.find(o => o.code === e);
if (oc != null) {
const f: SelectItem = {value: oc.code, label: oc.name};
this.oclist.push(f);
}
// else {
// const f: SelectItem = {value: e, label: e};
// this.oclist.push(f);
// }
});
}
this.authService.SelectedOcChanged.subscribe(s => {
if (this.allOcList.length === 0) {
this.operatingCentreService.Get().subscribe(res => {
if (res != null) {
this.allOcList = res;
// console.log("4567");
// console.log(this.allOcList);
this.allOcList.forEach(o => {
if (o.code === this.authService.getSelectedOc()) {
const f: SelectItem = {value: o.code, label: o.name};
this.selectedoc = f;
}
});
if (!this.selectedoc && this.oclist && this.oclist.length > 0) {
this.selectedoc = this.oclist[0];
}
}
});
} else {
this.allOcList.forEach(o => {
if (o.code === this.authService.getSelectedOc()) {
const f: SelectItem = {value: o.code, label: o.name};
this.selectedoc = f;
}
});
if (!this.selectedoc && this.oclist && this.oclist.length > 0) {
this.selectedoc = this.oclist[0];
}
}
this.updatenotificationbar();
});
});
// ConnectionIndicationService.ConnectionStatusChanged.subscribe(status => {
// if (status) {
// // alert('start so fast?');
// this.selectedoc = this.authService.getSelectedOc();
// this.updatenotificationbar();
// }
// });
}
);
}
updatenotificationbar() {
// temporary remove notification:
// this.ocBasedUnifiedNotificationService.GetStatusList().subscribe(statuslist => {
// this.ocBasedUnifiedNotificationService.InitiateCount(statuslist);
// });
}
selectOc(x: SelectItem) {
// console.log(x);
this.authService.getEstimateEntryOnOcChange = true;
this.authService.changeSelectedOc(x.value);
this.authService.onChangeOcClick();
this.userService.UpdateDefaultOcCode().subscribe(r => {
this.changeOcRedirect();
});
}
changeOcRedirect() {
this.router.navigate(['/']);
}
hideMenu() {
const dom: any = document.querySelector('body');
dom.classList.toggle('hideMenu');
if (this.hideMenuText === '<<') { this.hideMenuText = '>>'; } else { this.hideMenuText = '<<'; }
}
isToggled(): boolean {
const dom: Element = document.querySelector('body');
return dom.classList.contains(this.pushRightClass);
}
toggleSidebar() {
const dom: any = document.querySelector('body');
dom.classList.toggle(this.pushRightClass);
}
rltAndLtr() {
const dom: any = document.querySelector('body');
dom.classList.toggle('rtl');
}
onLoggedout() {
this.authService.logOut();
// localStorage.removeItem('isLoggedin');
}
onLoggedoutHide() {
// console.log('sessionStorage.clear');
// sessionStorage.clear();
// localStorage.clear();
this.authService.logOutComplete();
}
redirectLandingPage() {
// this.ipmsUrl = this.UmUrl.substring(0, this.UmUrl.length - 1) + 'ui/#/module-selector';
// console.log(this.UmUrl.substring(0, this.UmUrl.length - 1) + 'ui/#/module-selector');
// window.open(this.UmUrl.substring(0, this.UmUrl.length - 1) + 'ui/#/module-selector','_self');
window.open(AppConfig.settings.module_selector_url, '_self');
}
checkPermission(claim: string): boolean {
return this.authService.hasPermissions(claim);
}
}