Compare commits

..

No commits in common. "a3fa7cb7b9754cf3b77d562383a3fdc85e18bb93" and "0ea1edff4ded12137a93d7fca59dbfbdab098546" have entirely different histories.

8 changed files with 111 additions and 117 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "kdb-web", "name": "kdb-web",
"version": "1.0.0", "version": "1.0.dev217",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"update-version": "ts-node-esm update-version.ts", "update-version": "ts-node-esm update-version.ts",

View File

@ -84,38 +84,36 @@ export class AutoRolesRulesComponent implements OnInit {
} }
public ngOnInit(): void { public ngOnInit(): void {
this.data.getServerFromRoute(this.route);
this.spinner.showSpinner();
if (!this.route.snapshot.params["autoRoleId"]) {
this.spinner.hideSpinner();
this.router.navigate(["../"]);
return;
}
this.autoRoleId = +this.route.snapshot.params["autoRoleId"];
this.spinner.showSpinner();
this.data.query<SingleDiscordQuery>(Queries.guildsQuery, {
filter: {
id: this.sidebar.server$.value?.discordId
}
}
).subscribe(data => {
this.guild = data.guilds[0];
this.emojis = this.guild.emojis
.map(x => {
return { label: x.name, value: x };
});
this.roles = this.guild.roles
.map(x => {
return { label: x.name, value: x };
});
this.spinner.hideSpinner();
});
this.setFilterForm(); this.setFilterForm();
this.data.getServerFromRoute(this.route).then(server => { this.loadNextPage();
this.spinner.showSpinner();
if (!this.route.snapshot.params["autoRoleId"]) {
this.spinner.hideSpinner();
this.router.navigate(["../"]);
return;
}
this.autoRoleId = +this.route.snapshot.params["autoRoleId"];
this.spinner.showSpinner();
this.data.query<SingleDiscordQuery>(Queries.guildsQuery, {
filter: {
id: server.discordId
}
}
).subscribe(data => {
this.guild = data.guilds[0];
this.emojis = this.guild.emojis
.map(x => {
return { label: x.name, value: x };
});
this.roles = this.guild.roles
.map(x => {
return { label: x.name, value: x };
});
this.spinner.hideSpinner();
});
this.loadNextPage();
});
} }
public loadNextPage(): void { public loadNextPage(): void {

View File

@ -76,26 +76,26 @@ export class AutoRolesComponent implements OnInit {
} }
public ngOnInit(): void { public ngOnInit(): void {
this.data.getServerFromRoute(this.route);
this.spinner.showSpinner();
this.data.query<SingleDiscordQuery>(Queries.guildsQuery, {
filter: {
id: this.sidebar.server$.value?.discordId
}
}
).subscribe(data => {
this.guild = data.guilds[0];
this.channels = this.guild.channels
.filter(x => x.type === ChannelType.text)
.map(x => {
return { label: x.name, value: x };
});
this.spinner.hideSpinner();
});
this.setFilterForm(); this.setFilterForm();
this.data.getServerFromRoute(this.route).then(server => { this.loadNextPage();
this.spinner.showSpinner();
this.data.query<SingleDiscordQuery>(Queries.guildsQuery, {
filter: {
id: server?.discordId
}
}
).subscribe(data => {
this.guild = data.guilds[0];
this.channels = this.guild.channels
.filter(x => x.type === ChannelType.text)
.map(x => {
return { label: x.name, value: x };
});
this.spinner.hideSpinner();
});
this.loadNextPage();
});
} }
public loadNextPage(): void { public loadNextPage(): void {

View File

@ -14,6 +14,7 @@ import { LevelListQuery, UserListQuery } from "../../../../models/graphql/query.
import { DataService } from "../../../../services/data/data.service"; import { DataService } from "../../../../services/data/data.service";
import { Page } from "../../../../models/graphql/filter/page.model"; import { Page } from "../../../../models/graphql/filter/page.model";
import { Sort, SortDirection } from "../../../../models/graphql/filter/sort.model"; import { Sort, SortDirection } from "../../../../models/graphql/filter/sort.model";
import { SidebarService } from "../../../../services/sidebar/sidebar.service";
import { Mutations } from "../../../../models/graphql/mutations.model"; import { Mutations } from "../../../../models/graphql/mutations.model";
import { throwError } from "rxjs"; import { throwError } from "rxjs";
import { UpdateUserMutationResult } from "../../../../models/graphql/result.model"; import { UpdateUserMutationResult } from "../../../../models/graphql/result.model";
@ -87,31 +88,32 @@ export class MembersComponent implements OnInit {
private fb: FormBuilder, private fb: FormBuilder,
private translate: TranslateService, private translate: TranslateService,
private data: DataService, private data: DataService,
private sidebar: SidebarService,
private route: ActivatedRoute private route: ActivatedRoute
) { ) {
} }
ngOnInit(): void { ngOnInit(): void {
this.setFilterForm(); this.data.getServerFromRoute(this.route);
this.data.getServerFromRoute(this.route).then(server => { this.spinner.showSpinner();
this.spinner.showSpinner(); this.data.query<LevelListQuery>(Queries.levelQuery, {
this.data.query<LevelListQuery>(Queries.levelQuery, { filter: {
filter: { server: { id: this.sidebar.server$.value?.id }
server: { id: server.id }
}
} }
).subscribe(data => { }
this.levels = data.levels.map(level => { ).subscribe(data => {
return { label: level.name, value: level }; this.levels = data.levels.map(level => {
}); return { label: level.name, value: level };
}); });
this.loadNextPage(); this.spinner.hideSpinner();
}); });
this.setFilterForm();
this.loadNextPage();
} }
loadNextPage() { loadNextPage() {
this.spinner.showSpinner();
this.loading = true; this.loading = true;
this.data.query<UserListQuery>(Queries.usersQuery, { this.data.query<UserListQuery>(Queries.usersQuery, {
filter: this.filter, page: this.page, sort: this.sort filter: this.filter, page: this.page, sort: this.sort

View File

@ -7,6 +7,7 @@ import { DataService } from "../../../../services/data/data.service";
import { User } from "../../../../models/data/user.model"; import { User } from "../../../../models/data/user.model";
import { UserDTO } from "../../../../models/auth/auth-user.dto"; import { UserDTO } from "../../../../models/auth/auth-user.dto";
import { AuthService } from "src/app/services/auth/auth.service"; import { AuthService } from "src/app/services/auth/auth.service";
import { SidebarService } from "../../../../services/sidebar/sidebar.service";
import { ToastService } from "src/app/services/toast/toast.service"; import { ToastService } from "src/app/services/toast/toast.service";
import { TranslateService } from "@ngx-translate/core"; import { TranslateService } from "@ngx-translate/core";
@ -17,12 +18,13 @@ import { TranslateService } from "@ngx-translate/core";
}) })
export class ProfileComponent implements OnInit { export class ProfileComponent implements OnInit {
user: User = { createdAt: "", modifiedAt: "" }; user!: User;
constructor( constructor(
private route: ActivatedRoute, private route: ActivatedRoute,
private router: Router, private router: Router,
private spinner: SpinnerService, private spinner: SpinnerService,
private sidebar: SidebarService,
private data: DataService, private data: DataService,
private auth: AuthService, private auth: AuthService,
private toast: ToastService, private toast: ToastService,
@ -30,37 +32,35 @@ export class ProfileComponent implements OnInit {
) { ) {
} }
ngOnInit() { async ngOnInit() {
this.data.getServerFromRoute(this.route).then(async (server) => { this.data.getServerFromRoute(this.route);
if (!this.route.snapshot.params["memberId"] || this.route.snapshot.params["memberId"] == "undefined") {
this.router.navigate([`/server/${server.id}`]);
return;
}
let authUser = await this.auth.getLoggedInUser(); if (!this.route.snapshot.params["memberId"]) {
this.spinner.showSpinner(); this.router.navigate(["/dashboard"]);
let user: UserDTO | null = authUser?.users?.find(u => u.server == server.id) ?? null; return;
if (!user || user?.id != this.route.snapshot.params["memberId"] && !user?.isModerator) { }
this.toast.error(this.translate.instant("view.server.profile.permission_denied"), this.translate.instant("view.server.profile.permission_denied_d"));
this.spinner.hideSpinner();
this.router.navigate(["/server", server.id]);
return;
}
this.data.query<User>(Queries.singleUserQuery, { let authUser = await this.auth.getLoggedInUser();
filter: { this.spinner.showSpinner();
id: this.route.snapshot.params["memberId"] let user: UserDTO | null = authUser?.users?.find(u => u.server == this.sidebar.server$.value?.id) ?? null;
} if (!user || user?.id != this.route.snapshot.params["memberId"] && !user?.isModerator) {
}, this.toast.error(this.translate.instant("view.server.profile.permission_denied"), this.translate.instant("view.server.profile.permission_denied_d"));
function(data: UserListQuery) { this.spinner.hideSpinner();
return data.users.length > 0 ? data.users[0] : null; this.router.navigate(["/server", this.sidebar.server$.value?.id]);
return;
}
this.data.query<User>(Queries.singleUserQuery, {
filter: {
id: this.route.snapshot.params["memberId"]
} }
).subscribe(user => { },
this.user = user; function(data: UserListQuery) {
this.spinner.hideSpinner(); return data.users.length > 0 ? data.users[0] : null;
}); }
).subscribe(user => {
this.user = user;
this.spinner.hideSpinner();
}); });
} }
} }

View File

@ -25,9 +25,7 @@ export class ServerDashboardComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.data.getServerFromRoute(this.route).then(server => { this.data.getServerFromRoute(this.route);
this.server = server;
});
this.sidebar.server$.subscribe(server => { this.sidebar.server$.subscribe(server => {
if (!server) { if (!server) {

View File

@ -25,28 +25,24 @@ export class DataService {
) { ) {
} }
public getServerFromRoute(route: ActivatedRoute): Promise<Server> { public getServerFromRoute(route: ActivatedRoute) {
return new Promise((resolve, reject) => { this.spinner.showSpinner();
this.spinner.showSpinner(); if (!route.snapshot.params["serverId"]) {
if (!route.snapshot.params["serverId"]) { this.spinner.hideSpinner();
this.spinner.hideSpinner(); this.router.navigate(["/dashboard"]);
this.router.navigate(["/dashboard"]); return;
reject(); }
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.query<Server>(Queries.serversQuery, { this.sidebar.setServer(server);
filter: { id: route.snapshot.params["serverId"] } this.spinner.hideSpinner();
},
function(data: Query) {
return data.servers.length > 0 ? data.servers[0] : null;
}
).subscribe(server => {
this.sidebar.setServer(server);
this.spinner.hideSpinner();
resolve(server);
});
}); });
} }
public query<T>(query: string, variables?: Variables, f?: Function): Observable<T> { public query<T>(query: string, variables?: Variables, f?: Function): Observable<T> {
@ -57,7 +53,7 @@ export class DataService {
}) })
.pipe(map(d => { .pipe(map(d => {
if (d.errors && d.errors.length > 0) { if (d.errors && d.errors.length > 0) {
throw new Error(d.errors.map((x: { message: String }) => x.message).toString()); throw new Error(d.errors.map((x: {message: String}) => x.message).toString());
} }
return d.data; return d.data;
})) }))

View File

@ -3,7 +3,7 @@
"WebVersion": { "WebVersion": {
"Major": "1", "Major": "1",
"Minor": "0", "Minor": "0",
"Micro": "0" "Micro": "dev217"
}, },
"Themes": [ "Themes": [
{ {