Added member profile #130
This commit is contained in:
@@ -3,6 +3,12 @@ import { Injectable } from "@angular/core";
|
||||
import { SettingsService } from "../settings/settings.service";
|
||||
import { map, Observable } from "rxjs";
|
||||
import { Variables } from "../../models/graphql/variables.model";
|
||||
import { ActivatedRoute, Router } from "@angular/router";
|
||||
import { Server } from "../../models/data/server.model";
|
||||
import { Queries } from "../../models/graphql/queries.model";
|
||||
import { Query } from "../../models/graphql/query.model";
|
||||
import { SidebarService } from "../sidebar/sidebar.service";
|
||||
import { SpinnerService } from "../spinner/spinner.service";
|
||||
|
||||
@Injectable({
|
||||
providedIn: "root"
|
||||
@@ -11,10 +17,33 @@ export class DataService {
|
||||
|
||||
constructor(
|
||||
private appsettings: SettingsService,
|
||||
private http: HttpClient
|
||||
private http: HttpClient,
|
||||
private sidebar: SidebarService,
|
||||
private spinner: SpinnerService,
|
||||
private router: Router,
|
||||
) {
|
||||
}
|
||||
|
||||
public getServerFromRoute(route: ActivatedRoute) {
|
||||
this.spinner.showSpinner();
|
||||
if (!route.snapshot.params["serverId"]) {
|
||||
this.spinner.hideSpinner();
|
||||
this.router.navigate(['/dashboard']);
|
||||
return;
|
||||
}
|
||||
|
||||
this.query<Server>(Queries.serversQuery, {
|
||||
filter: { id: route.snapshot.params["serverId"] }
|
||||
},
|
||||
function(data: Query) {
|
||||
return data.servers.length > 0 ? data.servers[0] : null;
|
||||
}
|
||||
).subscribe(server => {
|
||||
this.sidebar.setServer(server);
|
||||
this.spinner.hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
// query(query: string, variables: object = {}): Observable<QueryResult> {
|
||||
// return this.http.post<QueryResult>(`${this.appsettings.getApiURL()}/api/graphql`,
|
||||
// JSON.stringify({
|
||||
|
@@ -59,20 +59,28 @@ export class SidebarService {
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant("sidebar.dashboard") : "", icon: "pi pi-th-large", routerLink: "dashboard" }
|
||||
];
|
||||
|
||||
let authUser = await this.authService.getLoggedInUser();
|
||||
let user: UserDTO | null = authUser?.users?.find(u => u.server == this.server$.value?.id) ?? null;
|
||||
const serverMenu = {
|
||||
label: this.isSidebarOpen ? this.server$.value?.name : "", icon: "pi pi-server", items: [
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.dashboard") : "", icon: "pi pi-th-large", routerLink: `server/${this.server$.value?.id}` },
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.profile") : "", icon: "pi pi-user", routerLink: `server/${this.server$.value?.id}/profile` }
|
||||
{
|
||||
label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.profile") : "",
|
||||
icon: "pi pi-user",
|
||||
routerLink: `server/${this.server$.value?.id}/members/${user?.id}`
|
||||
}
|
||||
// { label: this.isSidebarOpen ? this.translateService.instant("sidebar.members") : "", icon: "pi pi-users", routerLink: "server/members" }
|
||||
]
|
||||
};
|
||||
if (this.server$.value) {
|
||||
let authUser = await this.authService.getLoggedInUser();
|
||||
let user: UserDTO | null = authUser?.users?.find(u => u.server == this.server$.value?.id) ?? null;
|
||||
|
||||
if (this.server$.value) {
|
||||
if (user?.isAdmin) {
|
||||
serverMenu.items.push(
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.members") : "", icon: "pi pi-users", routerLink: `server/${this.server$.value?.id}/members` }
|
||||
{
|
||||
label: this.isSidebarOpen ? this.translateService.instant("sidebar.server.members") : "",
|
||||
icon: "pi pi-users",
|
||||
routerLink: `server/${this.server$.value?.id}/members`
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user