Newer
Older
import { Location } from '@angular/common';
import { Router } from '@angular/router';
import { VERSION } from 'app/app.constants';
import { AccountService } from 'app/core/auth/account.service';
import { OAuth2Config } from 'app/core/auth/oauth2-config.model';
import { OAuth2ConfigService } from 'app/core/auth/oauth2-config.service';
import { LANGUAGES } from 'app/core/language/language.constants';
import { LoginService } from 'app/core/login/login.service';
import { ProfileService } from 'app/layouts/profiles/profile.service';
import { PagesService } from 'app/shared/service/pages-service';
import { WatchlistManager } from 'app/shared/watchlist/watchlist-manager';
import { JhiLanguageService } from 'ng-jhipster';
import { SessionStorageService } from 'ngx-webstorage';
@Component({
selector: 'jhi-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['navbar.scss'],
})
export class NavbarComponent implements OnInit {
inProduction?: boolean;
isNavbarCollapsed = true;
languages = LANGUAGES;
swaggerEnabled?: boolean;
version: string;
contentEditable = false;
authenticationError = false;
loginForm = this.fb.group({
username: [''],
password: [''],
rememberMe: [false],
});
public configs: OAuth2Config[];
private sessionStorage: SessionStorageService,
private accountService: AccountService,
private fb: FormBuilder,
// private loginModalService: LoginModalService,
private location: Location, // for redirect in OAuth2
public oAuth2ConfigService: OAuth2ConfigService,
private watchlistManager: WatchlistManager,
private pagesService: PagesService,
this.oAuth2ConfigService.getAllConfigs().subscribe((loadedConfigs: OAuth2Config[]) => {
this.configs = loadedConfigs;
});
this.version = VERSION ? (VERSION.toLowerCase().startsWith('v') ? VERSION : 'v' + VERSION) : '';
}
ngOnInit(): void {
this.profileService.getProfileInfo().subscribe(profileInfo => {
this.inProduction = profileInfo.inProduction;
this.swaggerEnabled = profileInfo.swaggerEnabled;
});
}
changeLanguage(languageKey: string): void {
this.sessionStorage.store('locale', languageKey);
this.languageService.changeLanguage(languageKey);
}
collapseNavbar(): void {
this.isNavbarCollapsed = true;
}
resetPagesCache(): void {
this.pagesService.resetCache().subscribe(() =>
// eslint-disable-next-line no-console
{console.log("Successfully emptied page cache")})
;
}
isAuthenticated(): boolean {
return this.accountService.isAuthenticated();
}
toggleEditable(event: { target: { checked: any; }; }) {
if ( event.target.checked ) {
this.contentEditable = true;
}
}
getCurrentBookmarkListName(): string {
if (this.watchlistManager.currentWatchlist) {
const name = this.watchlistManager.currentWatchlist.userWatchList.name;
if (name) {
return name;
}
// login(): void {
// this.loginModalService.open();
// }
this.loginService
.login({
username: this.loginForm.get('username')!.value,
password: this.loginForm.get('password')!.value,
rememberMe: this.loginForm.get('rememberMe')!.value,
})
.subscribe(
() => {
this.authenticationError = false;
if (
this.router.url === '/account/register' ||
this.router.url.startsWith('/account/activate') ||
this.router.url.startsWith('/account/reset/')
) {
this.router.navigate(['']);
}
},
() => (this.authenticationError = true)
);
loginWithGitLab(registrationId: string): void {
location.href = `${location.origin}${this.location.prepareExternalUrl('oauth2/authorization/' + registrationId)}`;
// If you have configured multiple OIDC providers, then, you can update this URL to /login.
// It will show a Spring Security generated login page with links to configured OIDC providers.
logout(): void {
this.collapseNavbar();
this.loginService.logout();
this.router.navigate(['']);
}
toggleNavbar(): void {
this.isNavbarCollapsed = !this.isNavbarCollapsed;
}
getImageUrl(): string {
return this.isAuthenticated() ? this.accountService.getImageUrl() : '';
}
}