Fixed table loading #220
This commit is contained in:
@@ -26,6 +26,7 @@ export class Queries {
|
||||
|
||||
static serversQuery = `
|
||||
query ServerInfo($filter: ServerFilter, $page: Page, $sort: Sort) {
|
||||
serverCount
|
||||
servers(filter: $filter, page: $page, sort: $sort) {
|
||||
id
|
||||
name
|
||||
@@ -46,114 +47,76 @@ export class Queries {
|
||||
`;
|
||||
|
||||
static levelQuery = `
|
||||
query LevelsList($filter: LevelFilter, $page: Page, $sort: Sort) {
|
||||
levelCount
|
||||
levels(filter: $filter, page: $page, sort: $sort) {
|
||||
id
|
||||
name
|
||||
color
|
||||
minXp
|
||||
permissions
|
||||
server {
|
||||
query LevelsList($serverId: ID, $filter: LevelFilter, $page: Page, $sort: Sort) {
|
||||
servers(filter: {id: $serverId}) {
|
||||
levelCount
|
||||
levels(filter: $filter, page: $page, sort: $sort) {
|
||||
id
|
||||
name
|
||||
color
|
||||
minXp
|
||||
permissions
|
||||
server {
|
||||
id
|
||||
name
|
||||
}
|
||||
createdAt
|
||||
modifiedAt
|
||||
}
|
||||
createdAt
|
||||
modifiedAt
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
static usersQuery = `
|
||||
query UsersList($filter: UserFilter, $page: Page, $sort: Sort) {
|
||||
userCount
|
||||
users(filter: $filter, page: $page, sort: $sort) {
|
||||
id
|
||||
discordId
|
||||
name
|
||||
xp
|
||||
ontime
|
||||
level {
|
||||
query UsersList($serverId: ID, $filter: UserFilter, $page: Page, $sort: Sort) {
|
||||
servers(filter: {id: $serverId}) {
|
||||
userCount
|
||||
users(filter: $filter, page: $page, sort: $sort) {
|
||||
id
|
||||
discordId
|
||||
name
|
||||
}
|
||||
server {
|
||||
id
|
||||
name
|
||||
}
|
||||
leftServer
|
||||
xp
|
||||
ontime
|
||||
minecraftId
|
||||
level {
|
||||
id
|
||||
name
|
||||
}
|
||||
leftServer
|
||||
server {
|
||||
id
|
||||
name
|
||||
}
|
||||
|
||||
joinedServerCount
|
||||
joinedServers {
|
||||
id
|
||||
}
|
||||
joinedServerCount
|
||||
joinedServers {
|
||||
id
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
joinedVoiceChannelCount
|
||||
joinedVoiceChannels {
|
||||
id
|
||||
channelId
|
||||
channelName
|
||||
}
|
||||
joinedVoiceChannelCount
|
||||
joinedVoiceChannels {
|
||||
id
|
||||
channelId
|
||||
channelName
|
||||
time
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
userJoinedGameServerCount
|
||||
userJoinedGameServers {
|
||||
id
|
||||
gameServer
|
||||
}
|
||||
userJoinedGameServerCount
|
||||
userJoinedGameServers {
|
||||
id
|
||||
gameServer
|
||||
time
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
createdAt
|
||||
modifiedAt
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
static singleUserQuery = `
|
||||
query singleUserQuery($filter: UserFilter) {
|
||||
users(filter: $filter) {
|
||||
id
|
||||
discordId
|
||||
name
|
||||
xp
|
||||
ontime
|
||||
minecraftId
|
||||
level {
|
||||
id
|
||||
name
|
||||
createdAt
|
||||
modifiedAt
|
||||
}
|
||||
leftServer
|
||||
server {
|
||||
id
|
||||
name
|
||||
}
|
||||
|
||||
joinedServerCount
|
||||
joinedServers {
|
||||
id
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
joinedVoiceChannelCount
|
||||
joinedVoiceChannels {
|
||||
id
|
||||
channelId
|
||||
channelName
|
||||
time
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
userJoinedGameServerCount
|
||||
userJoinedGameServers {
|
||||
id
|
||||
gameServer
|
||||
time
|
||||
joinedOn
|
||||
leavedOn
|
||||
}
|
||||
|
||||
createdAt
|
||||
modifiedAt
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
@@ -1,14 +1,19 @@
|
||||
import { User } from "../data/user.model";
|
||||
import { AutoRole, AutoRoleRule } from "../data/auto_role.model";
|
||||
import { Level } from "../data/level.model";
|
||||
import { Server } from "../data/server.model";
|
||||
|
||||
export interface GraphQLResult {
|
||||
data: any;
|
||||
data: {
|
||||
servers?: Server[];
|
||||
};
|
||||
errors?: [];
|
||||
}
|
||||
|
||||
export interface QueryResult {
|
||||
data: any;
|
||||
data: {
|
||||
servers?: Server[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface UpdateUserMutationResult {
|
||||
|
@@ -42,7 +42,6 @@ export class AutoRolesRulesComponent implements OnInit {
|
||||
isEditingNew: boolean = false;
|
||||
|
||||
newAutoRoleTemplate: AutoRoleRule = {
|
||||
id: 0,
|
||||
createdAt: "",
|
||||
modifiedAt: ""
|
||||
};
|
||||
@@ -65,6 +64,7 @@ export class AutoRolesRulesComponent implements OnInit {
|
||||
|
||||
totalRecords: number = 0;
|
||||
private unsubscriber = new Subject<void>();
|
||||
private server: Server = {};
|
||||
|
||||
constructor(
|
||||
private authService: AuthService,
|
||||
@@ -88,7 +88,7 @@ export class AutoRolesRulesComponent implements OnInit {
|
||||
|
||||
this.setFilterForm();
|
||||
this.data.getServerFromRoute(this.route).then(server => {
|
||||
|
||||
this.server = server;
|
||||
this.spinner.showSpinner();
|
||||
if (!this.route.snapshot.params["autoRoleId"]) {
|
||||
this.spinner.hideSpinner();
|
||||
@@ -122,7 +122,7 @@ export class AutoRolesRulesComponent implements OnInit {
|
||||
public loadNextPage(): void {
|
||||
this.loading = true;
|
||||
this.data.query<AutoRoleRuleQuery>(Queries.autoRoleRulesQuery, {
|
||||
serverId: this.sidebar.server$.value?.id, autoRoleId: this.autoRoleId, filter: this.filter, page: this.page, sort: this.sort
|
||||
serverId: this.server.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) {
|
||||
|
@@ -38,7 +38,6 @@ export class AutoRolesComponent implements OnInit {
|
||||
isEditingNew: boolean = false;
|
||||
|
||||
newAutoRoleTemplate: AutoRole = {
|
||||
id: 0,
|
||||
createdAt: "",
|
||||
modifiedAt: ""
|
||||
};
|
||||
@@ -60,8 +59,9 @@ export class AutoRolesComponent implements OnInit {
|
||||
sortDirection: undefined
|
||||
};
|
||||
|
||||
totalRecords!: number;
|
||||
totalRecords: number = 0;
|
||||
private unsubscriber = new Subject<void>();
|
||||
private server: Server = {};
|
||||
|
||||
constructor(
|
||||
private authService: AuthService,
|
||||
@@ -80,6 +80,7 @@ export class AutoRolesComponent implements OnInit {
|
||||
|
||||
this.setFilterForm();
|
||||
this.data.getServerFromRoute(this.route).then(server => {
|
||||
this.server = server;
|
||||
this.spinner.showSpinner();
|
||||
this.data.query<SingleDiscordQuery>(Queries.guildsQuery, {
|
||||
filter: {
|
||||
@@ -102,7 +103,7 @@ export class AutoRolesComponent implements OnInit {
|
||||
public loadNextPage(): void {
|
||||
this.loading = true;
|
||||
this.data.query<AutoRoleQuery>(Queries.autoRolesQuery, {
|
||||
id: this.sidebar.server$.value?.id, filter: this.filter, page: this.page, sort: this.sort
|
||||
serverId: this.server.id, filter: this.filter, page: this.page, sort: this.sort
|
||||
},
|
||||
(x: { servers: Server[] }) => {
|
||||
return x.servers[0];
|
||||
@@ -192,7 +193,7 @@ export class AutoRolesComponent implements OnInit {
|
||||
|
||||
this.spinner.showSpinner();
|
||||
this.data.mutation<AutoRoleMutationResult>(Mutations.createAutoRole, {
|
||||
serverId: this.sidebar.server$.value?.id,
|
||||
serverId: this.server.id,
|
||||
channelId: newAutoRole.channelId,
|
||||
messageId: newAutoRole.messageId
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ 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 { LevelListQuery, Query } from "../../../../../../models/graphql/query.model";
|
||||
import { Queries } from "../../../../../../models/graphql/queries.model";
|
||||
import { catchError, debounceTime, takeUntil } from "rxjs/operators";
|
||||
import { LazyLoadEvent } from "primeng/api";
|
||||
@@ -20,6 +20,7 @@ import { User } from "../../../../../../models/data/user.model";
|
||||
import { LevelMutationResult, UpdateUserMutationResult } from "../../../../../../models/graphql/result.model";
|
||||
import { Mutations } from "../../../../../../models/graphql/mutations.model";
|
||||
import { Subject, throwError } from "rxjs";
|
||||
import { Server } from "../../../../../../models/data/server.model";
|
||||
|
||||
@Component({
|
||||
selector: "app-levels",
|
||||
@@ -28,7 +29,7 @@ import { Subject, throwError } from "rxjs";
|
||||
})
|
||||
export class LevelsComponent implements OnInit, OnDestroy {
|
||||
|
||||
public levels!: Level[];
|
||||
public levels: Level[] = [];
|
||||
public loading = true;
|
||||
|
||||
public isEditingNew: boolean = false;
|
||||
@@ -51,11 +52,12 @@ export class LevelsComponent implements OnInit, OnDestroy {
|
||||
sortDirection: undefined
|
||||
};
|
||||
|
||||
public totalRecords!: number;
|
||||
public totalRecords: number = 0;
|
||||
|
||||
public clonedLevels: { [s: string]: Level; } = {};
|
||||
|
||||
private unsubscriber = new Subject<void>();
|
||||
private server: Server = {};
|
||||
|
||||
public constructor(
|
||||
private authService: AuthService,
|
||||
@@ -70,8 +72,9 @@ export class LevelsComponent implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
public ngOnInit(): void {
|
||||
this.setFilterForm();
|
||||
this.data.getServerFromRoute(this.route).then(server => {
|
||||
this.setFilterForm();
|
||||
this.server = server;
|
||||
this.loadNextPage();
|
||||
});
|
||||
}
|
||||
@@ -84,8 +87,11 @@ export class LevelsComponent implements OnInit, OnDestroy {
|
||||
public loadNextPage(): void {
|
||||
this.loading = true;
|
||||
this.data.query<LevelListQuery>(Queries.levelQuery, {
|
||||
filter: this.filter, page: this.page, sort: this.sort
|
||||
}
|
||||
serverId: this.server.id, filter: this.filter, page: this.page, sort: this.sort
|
||||
},
|
||||
(data: Query) => {
|
||||
return data.servers[0];
|
||||
}
|
||||
).subscribe(data => {
|
||||
this.totalRecords = data.levelCount;
|
||||
this.levels = data.levels;
|
||||
@@ -179,7 +185,7 @@ export class LevelsComponent implements OnInit, OnDestroy {
|
||||
color: newLevel.color,
|
||||
minXp: newLevel.minXp,
|
||||
permissions: newLevel.permissions,
|
||||
serverId: this.sidebar.server$.value?.id
|
||||
serverId: this.server.id
|
||||
}
|
||||
).pipe(catchError(err => {
|
||||
this.isEditingNew = false;
|
||||
|
@@ -10,7 +10,7 @@ import { LazyLoadEvent, MenuItem } from "primeng/api";
|
||||
import { Table } from "primeng/table";
|
||||
import { User, UserFilter } from "../../../../models/data/user.model";
|
||||
import { Queries } from "../../../../models/graphql/queries.model";
|
||||
import { LevelListQuery, UserListQuery } from "../../../../models/graphql/query.model";
|
||||
import { LevelListQuery, Query, UserListQuery } from "../../../../models/graphql/query.model";
|
||||
import { DataService } from "../../../../services/data/data.service";
|
||||
import { Page } from "../../../../models/graphql/filter/page.model";
|
||||
import { Sort, SortDirection } from "../../../../models/graphql/filter/sort.model";
|
||||
@@ -19,6 +19,7 @@ import { Subject, throwError } from "rxjs";
|
||||
import { UpdateUserMutationResult } from "../../../../models/graphql/result.model";
|
||||
import { ActivatedRoute } from "@angular/router";
|
||||
import { Level } from "../../../../models/data/level.model";
|
||||
import { Server } from "../../../../models/data/server.model";
|
||||
|
||||
@Component({
|
||||
selector: "app-members",
|
||||
@@ -27,7 +28,6 @@ import { Level } from "../../../../models/data/level.model";
|
||||
})
|
||||
export class MembersComponent implements OnInit {
|
||||
members!: User[];
|
||||
// levelsFilter!: MenuItem[];
|
||||
levels!: MenuItem[];
|
||||
leftServerOptions = [
|
||||
{ label: this.translate.instant("common.bool_as_string.true"), value: false },
|
||||
@@ -80,6 +80,7 @@ export class MembersComponent implements OnInit {
|
||||
|
||||
totalRecords!: number;
|
||||
private unsubscriber = new Subject<void>();
|
||||
private server: Server = {};
|
||||
|
||||
constructor(
|
||||
private authService: AuthService,
|
||||
@@ -97,11 +98,13 @@ export class MembersComponent implements OnInit {
|
||||
this.setFilterForm();
|
||||
|
||||
this.data.getServerFromRoute(this.route).then(server => {
|
||||
this.server = server;
|
||||
this.spinner.showSpinner();
|
||||
this.data.query<LevelListQuery>(Queries.levelQuery, {
|
||||
filter: {
|
||||
server: { id: server.id }
|
||||
}
|
||||
serverId: server.id
|
||||
},
|
||||
(data: Query) => {
|
||||
return data.servers[0];
|
||||
}
|
||||
).subscribe(data => {
|
||||
this.levels = data.levels.map(level => {
|
||||
@@ -116,7 +119,10 @@ export class MembersComponent implements OnInit {
|
||||
this.spinner.showSpinner();
|
||||
this.loading = true;
|
||||
this.data.query<UserListQuery>(Queries.usersQuery, {
|
||||
filter: this.filter, page: this.page, sort: this.sort
|
||||
serverId: this.server.id, filter: this.filter, page: this.page, sort: this.sort
|
||||
},
|
||||
(x: { servers: Server[] }) => {
|
||||
return x.servers[0];
|
||||
}
|
||||
).subscribe(data => {
|
||||
this.totalRecords = data.userCount;
|
||||
|
@@ -9,6 +9,7 @@ import { UserDTO } from "../../../../models/auth/auth-user.dto";
|
||||
import { AuthService } from "src/app/services/auth/auth.service";
|
||||
import { ToastService } from "src/app/services/toast/toast.service";
|
||||
import { TranslateService } from "@ngx-translate/core";
|
||||
import { Server } from "../../../../models/data/server.model";
|
||||
|
||||
@Component({
|
||||
selector: "app-profile",
|
||||
@@ -18,6 +19,7 @@ import { TranslateService } from "@ngx-translate/core";
|
||||
export class ProfileComponent implements OnInit {
|
||||
|
||||
user: User = { createdAt: "", modifiedAt: "" };
|
||||
private server: Server = {};
|
||||
|
||||
constructor(
|
||||
private route: ActivatedRoute,
|
||||
@@ -36,6 +38,7 @@ export class ProfileComponent implements OnInit {
|
||||
this.router.navigate([`/server/${server.id}`]);
|
||||
return;
|
||||
}
|
||||
this.server = server;
|
||||
|
||||
let authUser = await this.auth.getLoggedInUser();
|
||||
this.spinner.showSpinner();
|
||||
@@ -47,16 +50,20 @@ export class ProfileComponent implements OnInit {
|
||||
return;
|
||||
}
|
||||
|
||||
this.data.query<User>(Queries.singleUserQuery, {
|
||||
this.data.query<UserListQuery>(Queries.usersQuery, {
|
||||
serverId: this.server.id,
|
||||
filter: {
|
||||
id: this.route.snapshot.params["memberId"]
|
||||
}
|
||||
},
|
||||
function(data: UserListQuery) {
|
||||
return data.users.length > 0 ? data.users[0] : null;
|
||||
(x: { servers: Server[] }) => {
|
||||
return x.servers[0];
|
||||
}
|
||||
).subscribe(user => {
|
||||
this.user = user;
|
||||
).subscribe(users => {
|
||||
if (!users.users[0]) {
|
||||
this.router.navigate([`/server/${server.id}`]);
|
||||
}
|
||||
this.user = users.users[0];
|
||||
this.spinner.hideSpinner();
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user