Improved way to load and show server in sidebar #131

This commit is contained in:
2023-02-10 20:59:43 +01:00
parent 4822348e01
commit 45a6b49cf5
7 changed files with 176 additions and 121 deletions

View File

@@ -14,6 +14,7 @@ import { Queries } from "../../../../../models/graphql/queries.model";
import { Page } from "../../../../../models/graphql/filter/page.model";
import { Sort } from "../../../../../models/graphql/filter/sort.model";
import { Query } from "../../../../../models/graphql/query.model";
import { SidebarService } from "../../../../../services/sidebar/sidebar.service";
@Component({
selector: "app-dashboard",
@@ -49,7 +50,7 @@ export class DashboardComponent implements OnInit {
private fb: FormBuilder,
private translate: TranslateService,
private router: Router,
// private serverService: ServerService
private sidebar: SidebarService,
) {
}
@@ -121,7 +122,7 @@ export class DashboardComponent implements OnInit {
}
selectServer(server: Server) {
// this.serverService.server$.next(server);
this.sidebar.serverName$.next(server.name ?? "");
this.router.navigate(["/server", server.id]);
}

View File

@@ -5,6 +5,7 @@ import { DataService } from "src/app/services/data/data.service";
import { SpinnerService } from "src/app/services/spinner/spinner.service";
import { Queries } from "../../../../models/graphql/queries.model";
import { Query } from "../../../../models/graphql/query.model";
import { SidebarService } from "../../../../services/sidebar/sidebar.service";
@Component({
selector: "app-server-dashboard",
@@ -20,20 +21,28 @@ export class ServerDashboardComponent implements OnInit {
private route: ActivatedRoute,
private router: Router,
private data: DataService,
private spinner: SpinnerService
private spinner: SpinnerService,
private sidebar: SidebarService
) {
}
ngOnInit(): void {
this.spinner.showSpinner();
if (!this.route.snapshot.params["serverId"]) {
this.spinner.hideSpinner();
this.router.navigate(['/dashboard']);
return;
}
this.data.query<Server>(Queries.serversQuery, {
filter: { id: this.route.snapshot.params["id"] }
filter: { id: this.route.snapshot.params["serverId"] }
},
function(data: Query) {
return data.servers.length > 0 ? data.servers[0] : null;
}
).subscribe(server => {
this.server = server;
this.sidebar.serverName$.next(server.name ?? "");
this.spinner.hideSpinner();
});
}