diff --git a/kdb-web/package.json b/kdb-web/package.json index 4cff7843..44a55353 100644 --- a/kdb-web/package.json +++ b/kdb-web/package.json @@ -1,6 +1,6 @@ { "name": "kdb-web", - "version": "1.0.5", + "version": "1.0.dev307", "scripts": { "ng": "ng", "update-version": "ts-node-esm update-version.ts", diff --git a/kdb-web/src/app/models/data/user.model.ts b/kdb-web/src/app/models/data/user.model.ts index 671da870..fb36964e 100644 --- a/kdb-web/src/app/models/data/user.model.ts +++ b/kdb-web/src/app/models/data/user.model.ts @@ -23,17 +23,6 @@ export interface User extends DataWithHistory { userJoinedGameServerCount?: number; userJoinedGameServers?: UserJoinedGameServer[]; - - // history?: UserHistory[]; -} - -export interface UserHistory extends History { - id?: number; - discordId?: number; - xp?: number; - level?: number; - server?: number; - leftServer?: boolean; } export interface UserFilter { diff --git a/kdb-web/src/app/models/graphql/queries.model.ts b/kdb-web/src/app/models/graphql/queries.model.ts index 29b8dbcf..d55fef25 100644 --- a/kdb-web/src/app/models/graphql/queries.model.ts +++ b/kdb-web/src/app/models/graphql/queries.model.ts @@ -94,6 +94,29 @@ export class Queries { name } leftServer + + createdAt + modifiedAt + } + } + } + `; + + static userProfile = ` + query UserProfile($serverId: ID, $userId: ID, $page: Page, $sort: Sort) { + servers(filter: {id: $serverId}) { + userCount + users(filter: {id: $userId}, page: $page, sort: $sort) { + id + discordId + name + xp + ontime + level { + id + name + } + leftServer server { id name @@ -124,9 +147,17 @@ export class Queries { joinedOn leavedOn } + } + } + } + `; - createdAt - modifiedAt + static userQueryWithHistory = ` + query UsersWithHistory($serverId: ID, $userId: ID) { + servers(filter: {id: $serverId}) { + userCount + users(filter: {id: $userId}) { + id history { id diff --git a/kdb-web/src/app/modules/shared/components/history-btn/history-btn.component.ts b/kdb-web/src/app/modules/shared/components/history-btn/history-btn.component.ts index db89ea41..39c4cd45 100644 --- a/kdb-web/src/app/modules/shared/components/history-btn/history-btn.component.ts +++ b/kdb-web/src/app/modules/shared/components/history-btn/history-btn.component.ts @@ -1,5 +1,16 @@ import { Component, Input, OnInit } from "@angular/core"; import { History } from "../../../../models/data/data.model"; +import { UserListQuery } from "../../../../models/graphql/query.model"; +import { Server } from "../../../../models/data/server.model"; +import { DataService } from "../../../../services/data/data.service"; +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 } from "@angular/forms"; +import { TranslateService } from "@ngx-translate/core"; +import { ActivatedRoute } from "@angular/router"; +import { SidebarService } from "../../../../services/sidebar/sidebar.service"; @Component({ selector: "app-history-btn", @@ -8,19 +19,46 @@ import { History } from "../../../../models/data/data.model"; }) export class HistoryBtnComponent implements OnInit { - @Input() history: History[] = []; + @Input() id: number = 0; + @Input() query: string = ""; @Input() translationKey: string = ""; - public showSidebar: boolean = false; + public history: History[] = []; - public constructor() { + public showSidebar: boolean = false; + private server: Server = {}; + + public constructor( + private authService: AuthService, + private spinner: SpinnerService, + private toastService: ToastService, + private confirmDialog: ConfirmationDialogService, + private fb: FormBuilder, + private translate: TranslateService, + private data: DataService, + private route: ActivatedRoute, + private sidebar: SidebarService + ) { } public ngOnInit(): void { + this.server = this.sidebar.server$.value ?? {}; } public openHistory(): void { this.showSidebar = true; + this.data.query(this.query, { + serverId: this.server.id, userId: this.id + }, + (x: { servers: Server[] }) => { + return x.servers[0]; + } + ).subscribe(data => { + this.history = data.users[0].history ?? []; + this.spinner.hideSpinner(); + }); + + let oldHistory: Partial = {}; for (const history of this.history) { const attributes = Object.keys(history).map((key) => { diff --git a/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles-rules/auto-roles-rules.component.html b/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles-rules/auto-roles-rules.component.html index 3c389ab5..64154ee2 100644 --- a/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles-rules/auto-roles-rules.component.html +++ b/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles-rules/auto-roles-rules.component.html @@ -160,7 +160,7 @@
- + diff --git a/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles/auto-roles.component.html b/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles/auto-roles.component.html index a2677dc0..330b2016 100644 --- a/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles/auto-roles.component.html +++ b/kdb-web/src/app/modules/view/server/auto-role/components/auto-roles/auto-roles.component.html @@ -193,7 +193,7 @@
- + diff --git a/kdb-web/src/app/modules/view/server/levels/components/levels/levels.component.html b/kdb-web/src/app/modules/view/server/levels/components/levels/levels.component.html index 97be32d8..4cb1859a 100644 --- a/kdb-web/src/app/modules/view/server/levels/components/levels/levels.component.html +++ b/kdb-web/src/app/modules/view/server/levels/components/levels/levels.component.html @@ -184,7 +184,7 @@
- +