Newer
Older
import { TranslateService } from '@ngx-translate/core';
import { SessionStorageService } from 'ngx-webstorage';
import { LANGUAGES } from 'app/config/language.constants';
import { Account } from 'app/core/auth/account.model';
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 { LoginService } from 'app/login/login.service';
import { ProfileService } from 'app/layouts/profiles/profile.service';
import { EntityNavbarItems } from 'app/entities/entity-navbar-items';
import { WatchlistManager } from 'app/shared/watchlist/watchlist-manager';
import { PagesService } from 'app/shared/service/pages-service';
import { ApplicationInfoService } from 'app/core/application/applicationInfo.service';
@Component({
selector: 'jhi-navbar',
templateUrl: './navbar.component.html',
})
export class NavbarComponent implements OnInit {
inProduction?: boolean;
isNavbarCollapsed = true;
languages = LANGUAGES;
contentEditable = true;
account: Account | null = null;
entitiesNavbarItems: any[] = [];
authenticationError = false;
loginForm = this.fb.group({
username: [''],
password: [''],
rememberMe: [false],
});
public configs: OAuth2Config[] = [];
private router: Router,
private location: Location, // for redirect in OAuth2
public oAuth2ConfigService: OAuth2ConfigService,
private watchlistManager: WatchlistManager,
private pagesService: PagesService,
private applicationInfoService: ApplicationInfoService
if (VERSION) {
this.version = VERSION.toLowerCase().startsWith('v') ? VERSION : `v${VERSION}`;
}
this.profileService.getProfileInfo().subscribe(profileInfo => {
this.inProduction = profileInfo.inProduction;
this.openAPIEnabled = profileInfo.openAPIEnabled;
});
this.oAuth2ConfigService.getAllConfigs().subscribe((loadedConfigs: OAuth2Config[]) => {
this.configs = loadedConfigs;
});
this.accountService.getAuthenticationState().subscribe(account => {
this.account = account;
this.applicationInfoService.loadOerLink().subscribe(
(res: string) => {
this.oerLink = res;
},
error =>
// eslint-disable-next-line no-console
console.error(error)
);
this.sessionStorageService.store('locale', languageKey);
this.translateService.use(languageKey);
}
collapseNavbar(): void {
this.isNavbarCollapsed = true;
}

Eduard Frankford
committed
resetPagesCache(): void {
this.pagesService.resetCache().subscribe(() => {
// eslint-disable-next-line no-console
console.log('Successfully emptied page cache');
});
}
isAuthenticated(): boolean {
return this.accountService.isAuthenticated();
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
toggleEditable(event: Event): void {
const element = <HTMLInputElement>document.getElementById('datapolicy');
const isChecked = element.checked;
if (isChecked) {
this.contentEditable = true;
} else {
this.contentEditable = false;
}
}
getCurrentBookmarkListName(): string {
if (this.watchlistManager.currentWatchlist) {
const name = this.watchlistManager.currentWatchlist.userWatchList.name;
if (name) {
return name;
}
}
return '';
}
// 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.contentEditable = true;
this.router.navigate(['']);
}
toggleNavbar(): void {
this.isNavbarCollapsed = !this.isNavbarCollapsed;
}
getImageUrl(): string {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return this.isAuthenticated() ? this.accountService.getImageUrl() : '';
}