#133 #224

Merged
Jonas merged 7 commits from #133 into 1.0.0 2023-02-22 19:29:16 +01:00
7 changed files with 49 additions and 46 deletions
Showing only changes of commit f3024d2ea5 - Show all commits

View File

@ -33,9 +33,9 @@ class AutoRoleMutation(QueryABC):
def get_new(x: AutoRole):
return (
x.server.id == input["serverId"]
and x.discord_channel_id == input["channelId"]
and x.discord_message_id == input["messageId"]
x.server.id == int(input["serverId"])
and x.discord_channel_id == int(input["channelId"])
and x.discord_message_id == int(input["messageId"])
)
return self._auto_roles.get_auto_roles_by_server_id(auto_role.server.id).where(get_new).last()

View File

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

View File

@ -121,7 +121,7 @@ export class AutoRolesRulesComponent implements OnInit {
public loadNextPage(): void {
this.loading = true;
this.data.query<AutoRoleRuleQuery>(Queries.autoRoleRulesQuery, {
id: this.sidebar.server$.value?.id, filter: this.filter, page: this.page, sort: this.sort
serverId: this.sidebar.server$.value?.id, autoRoleId: this.autoRoleId, filter: this.filter, page: this.page, sort: this.sort
},
(x: { servers: Server[] }) => {
if (!x.servers[0].autoRoles || x.servers[0].autoRoles?.length == 0) {
@ -212,13 +212,14 @@ export class AutoRolesRulesComponent implements OnInit {
roleId: newAutoRoleRule.roleId
}
).pipe(catchError(err => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.error(this.translate.instant("view.server.auto_roles.rules.message.auto_role_rule_create_failed"), this.translate.instant("view.server.auto_roles.rules.message.auto_role_rule_create_failed_d"));
return throwError(err);
})).subscribe(result => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.success(this.translate.instant("view.server.auto_roles.rules.message.auto_role_rule_created"), this.translate.instant("view.server.auto_roles.rules.message.auto_role_rule_create_d", { id: result.autoRoleRule.createAutoRoleRule?.id }));
this.isEditingNew = false;
this.loadNextPage();
});
return;

View File

@ -195,10 +195,12 @@ export class AutoRolesComponent implements OnInit {
messageId: newAutoRole.messageId
}
).pipe(catchError(err => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.error(this.translate.instant("view.server.auto_roles.message.auto_role_create_failed"), this.translate.instant("view.server.auto_roles.message.auto_role_create_failed_d"));
return throwError(err);
})).subscribe(result => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.success(this.translate.instant("view.server.auto_roles.message.auto_role_created"), this.translate.instant("view.server.auto_roles.message.auto_role_create_d", { id: result.autoRole.createAutoRole?.id }));
this.loadNextPage();

View File

@ -1,30 +1,30 @@
import {Component} from '@angular/core';
import {AuthService} from "../../../../../../services/auth/auth.service";
import {SpinnerService} from "../../../../../../services/spinner/spinner.service";
import {ToastService} from "../../../../../../services/toast/toast.service";
import {ConfirmationDialogService} from "../../../../../../services/confirmation-dialog/confirmation-dialog.service";
import {FormBuilder, FormControl, FormGroup} from "@angular/forms";
import {TranslateService} from "@ngx-translate/core";
import {DataService} from "../../../../../../services/data/data.service";
import {SidebarService} from "../../../../../../services/sidebar/sidebar.service";
import {ActivatedRoute} from "@angular/router";
import {Page} from "../../../../../../models/graphql/filter/page.model";
import {Sort, SortDirection} from "../../../../../../models/graphql/filter/sort.model";
import {Level, LevelFilter} from "../../../../../../models/data/level.model";
import {LevelListQuery} from "../../../../../../models/graphql/query.model";
import {Queries} from "../../../../../../models/graphql/queries.model";
import {catchError, debounceTime} from "rxjs/operators";
import {LazyLoadEvent} from "primeng/api";
import {Table} from "primeng/table";
import {User} from "../../../../../../models/data/user.model";
import {LevelMutationResult, UpdateUserMutationResult} from "../../../../../../models/graphql/result.model";
import {Mutations} from "../../../../../../models/graphql/mutations.model";
import {throwError} from "rxjs";
import { Component } from "@angular/core";
import { AuthService } from "../../../../../../services/auth/auth.service";
import { SpinnerService } from "../../../../../../services/spinner/spinner.service";
import { ToastService } from "../../../../../../services/toast/toast.service";
import { ConfirmationDialogService } from "../../../../../../services/confirmation-dialog/confirmation-dialog.service";
import { FormBuilder, FormControl, FormGroup } from "@angular/forms";
import { TranslateService } from "@ngx-translate/core";
import { DataService } from "../../../../../../services/data/data.service";
import { SidebarService } from "../../../../../../services/sidebar/sidebar.service";
import { ActivatedRoute } from "@angular/router";
import { Page } from "../../../../../../models/graphql/filter/page.model";
import { Sort, SortDirection } from "../../../../../../models/graphql/filter/sort.model";
import { Level, LevelFilter } from "../../../../../../models/data/level.model";
import { LevelListQuery } from "../../../../../../models/graphql/query.model";
import { Queries } from "../../../../../../models/graphql/queries.model";
import { catchError, debounceTime } from "rxjs/operators";
import { LazyLoadEvent } from "primeng/api";
import { Table } from "primeng/table";
import { User } from "../../../../../../models/data/user.model";
import { LevelMutationResult, UpdateUserMutationResult } from "../../../../../../models/graphql/result.model";
import { Mutations } from "../../../../../../models/graphql/mutations.model";
import { throwError } from "rxjs";
Jonas marked this conversation as resolved
Review

Ich empfehle die Dependency für @UntilDestroy, damit alle Subscribes unsubscribt werden, sobald die Component stirbt.
Kann merkwürdige und schwer nachvollziehe Bugs verhindern und die Performance der Anwendung erhöhen.

Siehe (Dependency:

https://www.npmjs.com/package/@ngneat/until-destroy/v/7.1.5

Und (Warum Unsubscriben wichtig sein könnte):

https://www.learmoreseekmore.com/2021/11/why-we-have-to-unsubscribe-an-observable-in-angular-application.html

Ich empfehle die Dependency für **@UntilDestroy**, damit alle Subscribes unsubscribt werden, sobald die Component stirbt. Kann merkwürdige und schwer nachvollziehe Bugs verhindern und die Performance der Anwendung erhöhen. Siehe (Dependency: https://www.npmjs.com/package/@ngneat/until-destroy/v/7.1.5 Und (Warum Unsubscriben wichtig sein könnte): https://www.learmoreseekmore.com/2021/11/why-we-have-to-unsubscribe-an-observable-in-angular-application.html
Review

Gibt native wege, sind implementiert

Gibt native wege, sind implementiert
@Component({
selector: 'app-levels',
templateUrl: './levels.component.html',
styleUrls: ['./levels.component.scss']
selector: "app-levels",
templateUrl: "./levels.component.html",
styleUrls: ["./levels.component.scss"]
})
export class LevelsComponent {
@ -68,10 +68,10 @@ export class LevelsComponent {
}
public ngOnInit(): void {
this.data.getServerFromRoute(this.route);
this.setFilterForm();
this.loadNextPage();
this.data.getServerFromRoute(this.route).then(server => {
this.setFilterForm();
this.loadNextPage();
});
}
public loadNextPage(): void {
@ -93,7 +93,7 @@ export class LevelsComponent {
name: new FormControl<string | null>(null),
color: new FormControl<string | null>(null),
min_xp: new FormControl<number | null>(null),
permissions: new FormControl<number | null>(null),
permissions: new FormControl<number | null>(null)
edraft marked this conversation as resolved Outdated
Outdated
Review

Siehe Kommentar bei Zeile 41.

Siehe Kommentar bei Zeile 41.
});
this.filterForm.valueChanges.pipe(
@ -142,7 +142,7 @@ export class LevelsComponent {
}
public onRowEditInit(table: Table, user: User, index: number): void {
this.clonedLevels[index] = {...user};
this.clonedLevels[index] = { ...user };
}
public onRowEditSave(table: Table, newLevel: Level, index: number): void {
@ -174,13 +174,14 @@ export class LevelsComponent {
serverId: this.sidebar.server$.value?.id
}
).pipe(catchError(err => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.error(this.translate.instant("view.server.levels.message.level_create_failed"), this.translate.instant("view.server.levels.message.level_create_failed_d"));
return throwError(err);
})).subscribe(result => {
this.isEditingNew = false;
this.spinner.hideSpinner();
this.toastService.success(this.translate.instant("view.server.levels.message.level_create"), this.translate.instant("view.server.levels.message.level_create_d", {name: result.level.createLevel?.name}));
this.toastService.success(this.translate.instant("view.server.levels.message.level_create"), this.translate.instant("view.server.levels.message.level_create_d", { name: result.level.createLevel?.name }));
this.loadNextPage();
});
return;
@ -192,15 +193,15 @@ export class LevelsComponent {
name: newLevel.name,
color: newLevel.color,
minXp: newLevel.minXp,
permissions: newLevel.permissions,
permissions: newLevel.permissions
}
).pipe(catchError(err => {
this.spinner.hideSpinner();
this.toastService.error(this.translate.instant("view.server.levels.message.level_update_failed"), this.translate.instant("view.server.levels.message.level_update_failed_d", {name: newLevel.name}));
this.toastService.error(this.translate.instant("view.server.levels.message.level_update_failed"), this.translate.instant("view.server.levels.message.level_update_failed_d", { name: newLevel.name }));
return throwError(err);
})).subscribe(_ => {
this.spinner.hideSpinner();
this.toastService.success(this.translate.instant("view.server.levels.message.level_update"), this.translate.instant("view.server.levels.message.level_update_d", {name: newLevel.name}));
this.toastService.success(this.translate.instant("view.server.levels.message.level_update"), this.translate.instant("view.server.levels.message.level_update_d", { name: newLevel.name }));
this.loadNextPage();
});
@ -220,7 +221,7 @@ export class LevelsComponent {
public deleteLevel(level: Level): void {
this.confirmDialog.confirmDialog(
this.translate.instant("view.server.levels.message.level_delete"), this.translate.instant("view.server.levels.message.level_delete_q", {name: level.name}),
this.translate.instant("view.server.levels.message.level_delete"), this.translate.instant("view.server.levels.message.level_delete_q", { name: level.name }),
() => {
this.spinner.showSpinner();
this.data.mutation<LevelMutationResult>(Mutations.deleteLevel, {
@ -228,11 +229,11 @@ export class LevelsComponent {
}
).pipe(catchError(err => {
this.spinner.hideSpinner();
this.toastService.error(this.translate.instant("view.server.levels.message.level_delete_failed"), this.translate.instant("view.server.levels.message.level_delete_failedd", {name: level.name}));
this.toastService.error(this.translate.instant("view.server.levels.message.level_delete_failed"), this.translate.instant("view.server.levels.message.level_delete_failedd", { name: level.name }));
return throwError(err);
})).subscribe(l => {
this.spinner.hideSpinner();
this.toastService.success(this.translate.instant("view.server.levels.message.level_deleted"), this.translate.instant("view.server.levels.message.level_deleted_d", {name: level.name}));
this.toastService.success(this.translate.instant("view.server.levels.message.level_deleted"), this.translate.instant("view.server.levels.message.level_deleted_d", { name: level.name }));
this.loadNextPage();
});
});

View File

@ -88,7 +88,6 @@ export class MembersComponent implements OnInit {
private fb: FormBuilder,
private translate: TranslateService,
private data: DataService,
private sidebar: SidebarService,
private route: ActivatedRoute
) {
}

View File

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