[WIP] Added auto roles list #134

This commit is contained in:
2023-02-19 17:32:08 +01:00
parent 8f95e196ec
commit e0ca057399
22 changed files with 669 additions and 37 deletions

View File

@@ -8,6 +8,7 @@ import { NavigationEnd, Router } from "@angular/router";
import { ThemeService } from "../theme/theme.service";
import { Server } from "../../models/data/server.model";
import { UserDTO } from "../../models/auth/auth-user.dto";
import { AutoRole } from "../../models/data/auto_role.model";
@Injectable({
providedIn: "root"
@@ -17,11 +18,14 @@ export class SidebarService {
isSidebarOpen: boolean = true;
menuItems$ = new BehaviorSubject<MenuItem[]>(new Array<MenuItem>());
server$ = new BehaviorSubject<Server | null>(null);
autoRole$ = new BehaviorSubject<AutoRole | null>(null);
dashboard!: MenuItem;
serverDashboard!: MenuItem;
serverProfile!: MenuItem;
serverMembers!: MenuItem;
serverAutoRoles!: MenuItem;
serverAutoRoleRules!: MenuItem;
serverMenu!: MenuItem;
adminConfig!: MenuItem;
adminUsers!: MenuItem;
@@ -81,12 +85,20 @@ export class SidebarService {
visible: true,
routerLink: `server/${this.server$.value?.id}/members`
};
this.serverAutoRoles = {
label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.auto_roles") : "",
icon: "pi pi-sitemap",
visible: true,
routerLink: `server/${this.server$.value?.id}/auto-roles`
};
this.serverMenu = {
label: this.isSidebarOpen ? this.server$.value?.name : "",
icon: "pi pi-server",
visible: false,
expanded: true,
items: [this.serverDashboard, this.serverProfile, this.serverMembers]
items: [this.serverDashboard, this.serverProfile, this.serverMembers, this.serverAutoRoles]
};
this.adminConfig = { label: this.isSidebarOpen ? this.translateService.instant("sidebar.config") : "", icon: "pi pi-cog", routerLink: "/admin/settings" };
this.adminUsers = {
@@ -115,6 +127,7 @@ export class SidebarService {
if (this.server$.value) {
this.serverMenu.visible = true;
this.serverMembers.visible = !!user?.isModerator;
this.serverAutoRoles.visible = !!user?.isAdmin;
} else {
this.serverMenu.visible = false;
}