feat: add admin panel
This commit is contained in:
59
src/pages/admin/admin.component.ts
Normal file
59
src/pages/admin/admin.component.ts
Normal file
@ -0,0 +1,59 @@
|
||||
import {Component} from '@angular/core';
|
||||
import {MatCard} from "@angular/material/card";
|
||||
import {MatSidenavModule} from "@angular/material/sidenav";
|
||||
import {HasRoleDirective} from "@/directives/has-role.directive";
|
||||
import {Router, RouterOutlet} from "@angular/router";
|
||||
import AuthApiService from "@api/v1/authApi.service";
|
||||
import {MatListItem, MatNavList} from "@angular/material/list";
|
||||
import {AuthRoles} from "@model/authRoles";
|
||||
import {MatIcon} from "@angular/material/icon";
|
||||
|
||||
@Component({
|
||||
selector: 'app-admin',
|
||||
standalone: true,
|
||||
imports: [
|
||||
MatCard,
|
||||
HasRoleDirective,
|
||||
MatNavList,
|
||||
MatSidenavModule,
|
||||
RouterOutlet,
|
||||
MatListItem,
|
||||
MatIcon,
|
||||
],
|
||||
templateUrl: './admin.component.html',
|
||||
styleUrl: './admin.component.css',
|
||||
providers: [AuthApiService]
|
||||
})
|
||||
export class AdminComponent {
|
||||
navLinks = [
|
||||
{label: 'Расписание', route: 'schedule', icon: 'calendar_month'},
|
||||
{label: 'Институт', route: 'institute', icon: 'school'},
|
||||
{label: 'Аккаунт', route: 'account', icon: 'person'},
|
||||
{label: 'Сервер', route: 'server', icon: 'settings'},
|
||||
];
|
||||
|
||||
constructor(private auth: AuthApiService, private router: Router) {
|
||||
this.auth.getRole()
|
||||
.subscribe(data => {
|
||||
if (data === null)
|
||||
router.navigate(['login']).then();
|
||||
});
|
||||
}
|
||||
|
||||
isActive(route: string): boolean {
|
||||
return this.router.isActive(`/admin/${route}`, {
|
||||
paths: 'exact',
|
||||
queryParams: 'ignored',
|
||||
fragment: 'ignored',
|
||||
matrixParams: 'ignored',
|
||||
});
|
||||
}
|
||||
|
||||
navigate(route: string): void {
|
||||
if (!this.isActive(route)) {
|
||||
this.router.navigate([`/admin/${route}`]).then();
|
||||
}
|
||||
}
|
||||
|
||||
protected readonly AuthRoles = AuthRoles;
|
||||
}
|
Reference in New Issue
Block a user