Fix bug with grid view

This commit is contained in:
Tom Bloor 2019-12-30 00:06:17 +00:00
parent ee42245ebb
commit 92970f1cbe
Signed by: TBSliver
GPG key ID: 4657C7EBE42CC5CC
3 changed files with 19 additions and 4 deletions

View file

@ -58,5 +58,4 @@
</ng-template> </ng-template>
</ngb-panel> </ngb-panel>
</ngb-accordion> </ngb-accordion>
<p>{{ cell | json }}</p>
</div> </div>

View file

@ -10,8 +10,10 @@
<tbody *ngFor="let y of xArray"> <tbody *ngFor="let y of xArray">
<tr> <tr>
<th>{{ y }}</th> <th>{{ y }}</th>
<td *ngFor="let x of xArray"><a <td *ngFor="let x of xArray">
[routerLink]="['/config','server', serverLookup[x][y]]">{{ serverLookup[x][y] }}</a></td> <button class="btn btn-sm btn-outline-primary" [routerLink]="['/config','server', serverLookup[x][y]]" *ngIf="serverLookup[x][y] !== undefined">{{ serverLookup[x][y] }}</button>
<button class="btn btn-sm btn-outline-danger" (click)="addNewServer(x, y)" *ngIf="serverLookup[x][y] === undefined">+</button>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -1,6 +1,8 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Server } from "../../../server"; import { Server } from "../../../server";
import { ServerGridModel } from "../../../models/serverGrid.model"; import { ServerGridModel } from "../../../models/serverGrid.model";
import { ServerModel } from "../../../models/atlasData/server.model";
import { Router } from "@angular/router";
@Component({ @Component({
selector: 'app-servers', selector: 'app-servers',
@ -15,10 +17,14 @@ export class ServersComponent implements OnInit {
private serverLookup: number[][] = []; private serverLookup: number[][] = [];
private unknownServers: number[] = []; private unknownServers: number[] = [];
constructor(private server: Server) { constructor(private server: Server, private router: Router) {
this.grid = server.serverGrid; this.grid = server.serverGrid;
this.xArray = Array.from(Array(this.grid.totalGridsX).keys()); this.xArray = Array.from(Array(this.grid.totalGridsX).keys());
this.yArray = Array.from(Array(this.grid.totalGridsY).keys()); this.yArray = Array.from(Array(this.grid.totalGridsY).keys());
// Initialise the serverLookup with x at least
this.xArray.forEach(i => this.serverLookup[i] = []);
this.grid.servers.forEach((i, index) => { this.grid.servers.forEach((i, index) => {
if (i.gridX < this.grid.totalGridsX && i.gridY < this.grid.totalGridsY) { if (i.gridX < this.grid.totalGridsX && i.gridY < this.grid.totalGridsY) {
if (this.serverLookup[i.gridX] === undefined) if (this.serverLookup[i.gridX] === undefined)
@ -32,4 +38,12 @@ export class ServersComponent implements OnInit {
ngOnInit() { ngOnInit() {
} }
private addNewServer(x: number, y: number) {
let newServer = new ServerModel();
newServer.gridX = x;
newServer.gridY = y;
const newLength = this.grid.servers.push(newServer);
return this.router.navigate(['/config', 'server', newLength - 1]);
}
} }