Files
gameyfin/frontend/src/app/components/library-management/library-management.component.ts
T
2022-07-25 21:26:32 +02:00

65 lines
2.4 KiB
TypeScript

import {Component, OnInit} from '@angular/core';
import {DetectedGameDto} from "../../models/dtos/DetectedGameDto";
import {GamesService} from "../../services/games.service";
import {LibraryManagementService} from "../../services/library-management.service";
import {UnmappedFileDto} from "../../models/dtos/UnmappedFileDto";
import {LibraryService} from "../../services/library.service";
import {DialogService} from "../../services/dialog.service";
@Component({
selector: 'app-library-management',
templateUrl: './library-management.component.html',
styleUrls: ['./library-management.component.scss']
})
export class LibraryManagementComponent implements OnInit {
gameMappingTableColumns: string[] = ["path", "game", "actions"];
unmappedGameTableColumns: string[] = ["path", "actions"];
mappedGames!: DetectedGameDto[];
unmappedFiles!: UnmappedFileDto[];
constructor(private gameService: GamesService,
private libraryManagementService: LibraryManagementService,
private dialogService: DialogService) {
}
ngOnInit(): void {
this.refreshMappedGamesList();
this.refreshUnmappedFilesList();
}
refreshMappedGamesList(): void {
this.gameService.getAllGames().subscribe(games => this.mappedGames = games);
}
getFullYearFromTimestamp(timestamp: number): number {
return new Date(timestamp).getFullYear();
}
confirmGameMapping(mappedGame: DetectedGameDto): void {
this.libraryManagementService.confirmGameMapping(mappedGame.slug).subscribe(() => mappedGame.confirmedMatch = true);
}
deleteGameMapping(mappedGame: DetectedGameDto): void {
this.libraryManagementService.deleteGame(mappedGame.slug).subscribe(() => this.mappedGames = this.mappedGames.filter(game => game !== mappedGame));
}
openCorrectMappingDialog(mappedGame: DetectedGameDto): void {
this.dialogService.correctGameMappingDialog(mappedGame);
}
refreshUnmappedFilesList(): void {
this.libraryManagementService.getUnmappedFiles().subscribe(unmappedFiles => this.unmappedFiles = unmappedFiles);
}
deleteUnmappedFile(unmappedFile: UnmappedFileDto): void {
this.libraryManagementService.deleteUnmappedFile(unmappedFile.id).subscribe(() => this.unmappedFiles = this.unmappedFiles.filter(uf => uf !== unmappedFile));
}
openMapUnmappedFileDialog(unmappedFile: UnmappedFileDto): void {
this.dialogService.mapUnmappedGameDialog(unmappedFile);
}
}