diff --git a/backend/src/main/resources/application-dev.yml b/backend/src/main/resources/application-dev.yml
index f70af08..9b38089 100644
--- a/backend/src/main/resources/application-dev.yml
+++ b/backend/src/main/resources/application-dev.yml
@@ -1,6 +1,6 @@
gameyfin:
- #root: C:\Projects\privat\gameyfin-library
- root: \\NAS-Simon\Öffentlich\Spiele
+ root: C:\Projects\privat\gameyfin-library
+ #root: \\NAS-Simon\Öffentlich\Spiele
cache: ${gameyfin.root}\.gameyfin\cache
db: ${gameyfin.root}\.gameyfin\db # Currently unused
igdb:
diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml
index 35a3af0..688f309 100644
--- a/backend/src/main/resources/application.yml
+++ b/backend/src/main/resources/application.yml
@@ -5,7 +5,7 @@ server:
spring:
jackson.default-property-inclusion: non_null
datasource.db-name: gameyfin_db
- datasource.url: jdbc:h2:file:./data/${spring.datasource.db-name};AUTO_SERVER=TRUE
+ datasource.url: jdbc:h2:file:${gameyfin.db}/${spring.datasource.db-name};AUTO_SERVER=TRUE
datasource.username: gfadmin
datasource.password: gameyfin
datasource.driverClassName: org.h2.Driver
@@ -19,6 +19,8 @@ spring:
gameyfin:
root: ""
+ cache: ${gameyfin.root}\.gameyfin\cache
+ db: ${gameyfin.root}\.gameyfin\db # Currently unused
file-extensions: iso, zip, rar, 7z, exe
igdb:
config:
diff --git a/frontend/angular.json b/frontend/angular.json
index 683c94a..ab8b6da 100644
--- a/frontend/angular.json
+++ b/frontend/angular.json
@@ -104,5 +104,8 @@
}
}
}
+ },
+ "cli": {
+ "analytics": false
}
}
diff --git a/frontend/src/app/app-routing.module.ts b/frontend/src/app/app-routing.module.ts
index 1a2b8eb..968489a 100644
--- a/frontend/src/app/app-routing.module.ts
+++ b/frontend/src/app/app-routing.module.ts
@@ -4,7 +4,7 @@ import {FullpageLayoutComponent} from "./layouts/fullpage-layout/fullpage-layout
import {PageNotFoundComponent} from "./components/page-not-found/page-not-found.component";
import {NavbarLayoutComponent} from "./layouts/navbar-layout/navbar-layout.component";
import {NotImplementedComponent} from "./components/not-implemented/not-implemented.component";
-import {GameserverListComponent} from "./components/gameserver-list/gameserver-list.component";
+import {LibraryOverviewComponent} from "./components/library-overview/library-overview.component";
const appRoutes: Routes = [
{
@@ -13,7 +13,7 @@ const appRoutes: Routes = [
children: [
{
path: 'library',
- component: GameserverListComponent
+ component: LibraryOverviewComponent
},
{
path: 'games',
diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts
index 4e97481..30e7cfd 100644
--- a/frontend/src/app/app.module.ts
+++ b/frontend/src/app/app.module.ts
@@ -24,11 +24,13 @@ import {MatDialogModule} from "@angular/material/dialog";
import {MatButtonModule} from "@angular/material/button";
import {MatInputModule} from "@angular/material/input";
import {FlexModule} from "@angular/flex-layout";
-import {GameserverListComponent} from './components/gameserver-list/gameserver-list.component';
+import {LibraryOverviewComponent} from './components/library-overview/library-overview.component';
import {MatProgressSpinnerModule} from "@angular/material/progress-spinner";
import {MatTableModule} from "@angular/material/table";
import {MatPaginatorModule} from "@angular/material/paginator";
import {MatSortModule} from "@angular/material/sort";
+import { GameCoverComponent } from './components/game-cover/game-cover.component';
+import { GameDetailViewComponent } from './components/game-detail-view/game-detail-view.component';
@NgModule({
declarations: [
@@ -39,7 +41,9 @@ import {MatSortModule} from "@angular/material/sort";
PageNotFoundComponent,
NotImplementedComponent,
ErrorDialogComponent,
- GameserverListComponent
+ LibraryOverviewComponent,
+ GameCoverComponent,
+ GameDetailViewComponent
],
imports: [
BrowserModule,
diff --git a/frontend/src/app/components/game-cover/game-cover.component.html b/frontend/src/app/components/game-cover/game-cover.component.html
new file mode 100644
index 0000000..dd9e2e4
--- /dev/null
+++ b/frontend/src/app/components/game-cover/game-cover.component.html
@@ -0,0 +1,5 @@
+
diff --git a/frontend/src/app/components/game-cover/game-cover.component.scss b/frontend/src/app/components/game-cover/game-cover.component.scss
new file mode 100644
index 0000000..d86b38e
--- /dev/null
+++ b/frontend/src/app/components/game-cover/game-cover.component.scss
@@ -0,0 +1,11 @@
+@use '@angular/material' as mat;
+
+.game-cover-container img {
+
+ @include mat.elevation-transition();
+ @include mat.elevation(4);
+
+ &:hover {
+ @include mat.elevation(12);
+ }
+}
diff --git a/frontend/src/app/components/game-cover/game-cover.component.spec.ts b/frontend/src/app/components/game-cover/game-cover.component.spec.ts
new file mode 100644
index 0000000..a61e5d9
--- /dev/null
+++ b/frontend/src/app/components/game-cover/game-cover.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { GameCoverComponent } from './game-cover.component';
+
+describe('GameCoverComponent', () => {
+ let component: GameCoverComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ GameCoverComponent ]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(GameCoverComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/frontend/src/app/components/game-cover/game-cover.component.ts b/frontend/src/app/components/game-cover/game-cover.component.ts
new file mode 100644
index 0000000..6f8e6b4
--- /dev/null
+++ b/frontend/src/app/components/game-cover/game-cover.component.ts
@@ -0,0 +1,18 @@
+import {Component, Input, OnInit} from '@angular/core';
+import {DetectedGameDto} from "../../models/dtos/DetectedGameDto";
+
+@Component({
+ selector: 'game-cover',
+ templateUrl: './game-cover.component.html',
+ styleUrls: ['./game-cover.component.scss']
+})
+export class GameCoverComponent implements OnInit {
+
+ @Input() game!: DetectedGameDto;
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+}
diff --git a/frontend/src/app/components/game-detail-view/game-detail-view.component.html b/frontend/src/app/components/game-detail-view/game-detail-view.component.html
new file mode 100644
index 0000000..2fffb85
--- /dev/null
+++ b/frontend/src/app/components/game-detail-view/game-detail-view.component.html
@@ -0,0 +1 @@
+game-detail-view works!
diff --git a/frontend/src/app/components/game-detail-view/game-detail-view.component.scss b/frontend/src/app/components/game-detail-view/game-detail-view.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/frontend/src/app/components/game-detail-view/game-detail-view.component.spec.ts b/frontend/src/app/components/game-detail-view/game-detail-view.component.spec.ts
new file mode 100644
index 0000000..a9959af
--- /dev/null
+++ b/frontend/src/app/components/game-detail-view/game-detail-view.component.spec.ts
@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { GameDetailViewComponent } from './game-detail-view.component';
+
+describe('GameDetailViewComponent', () => {
+ let component: GameDetailViewComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ declarations: [ GameDetailViewComponent ]
+ })
+ .compileComponents();
+
+ fixture = TestBed.createComponent(GameDetailViewComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/frontend/src/app/components/game-detail-view/game-detail-view.component.ts b/frontend/src/app/components/game-detail-view/game-detail-view.component.ts
new file mode 100644
index 0000000..7c9d888
--- /dev/null
+++ b/frontend/src/app/components/game-detail-view/game-detail-view.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-game-detail-view',
+ templateUrl: './game-detail-view.component.html',
+ styleUrls: ['./game-detail-view.component.scss']
+})
+export class GameDetailViewComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+}
diff --git a/frontend/src/app/components/gameserver-list/gameserver-list.component.css b/frontend/src/app/components/library-overview/library-overview.component.css
similarity index 100%
rename from frontend/src/app/components/gameserver-list/gameserver-list.component.css
rename to frontend/src/app/components/library-overview/library-overview.component.css
diff --git a/frontend/src/app/components/gameserver-list/gameserver-list.component.html b/frontend/src/app/components/library-overview/library-overview.component.html
similarity index 56%
rename from frontend/src/app/components/gameserver-list/gameserver-list.component.html
rename to frontend/src/app/components/library-overview/library-overview.component.html
index 6493729..f2cbd26 100644
--- a/frontend/src/app/components/gameserver-list/gameserver-list.component.html
+++ b/frontend/src/app/components/library-overview/library-overview.component.html
@@ -5,10 +5,10 @@
-
No games in library.
+ Your game library is empty!
-
0">
-

+
0">
+
diff --git a/frontend/src/app/components/gameserver-list/gameserver-list.component.spec.ts b/frontend/src/app/components/library-overview/library-overview.component.spec.ts
similarity index 51%
rename from frontend/src/app/components/gameserver-list/gameserver-list.component.spec.ts
rename to frontend/src/app/components/library-overview/library-overview.component.spec.ts
index 8d6d73a..d877678 100644
--- a/frontend/src/app/components/gameserver-list/gameserver-list.component.spec.ts
+++ b/frontend/src/app/components/library-overview/library-overview.component.spec.ts
@@ -1,20 +1,20 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { GameserverListComponent } from './gameserver-list.component';
+import { LibraryOverviewComponent } from './library-overview.component';
-describe('GameserverListComponent', () => {
- let component: GameserverListComponent;
- let fixture: ComponentFixture;
+describe('LibraryOverviewComponent', () => {
+ let component: LibraryOverviewComponent;
+ let fixture: ComponentFixture;
beforeEach(async () => {
await TestBed.configureTestingModule({
- declarations: [ GameserverListComponent ]
+ declarations: [ LibraryOverviewComponent ]
})
.compileComponents();
});
beforeEach(() => {
- fixture = TestBed.createComponent(GameserverListComponent);
+ fixture = TestBed.createComponent(LibraryOverviewComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
diff --git a/frontend/src/app/components/gameserver-list/gameserver-list.component.ts b/frontend/src/app/components/library-overview/library-overview.component.ts
similarity index 77%
rename from frontend/src/app/components/gameserver-list/gameserver-list.component.ts
rename to frontend/src/app/components/library-overview/library-overview.component.ts
index 4722ab4..2242242 100644
--- a/frontend/src/app/components/gameserver-list/gameserver-list.component.ts
+++ b/frontend/src/app/components/library-overview/library-overview.component.ts
@@ -4,10 +4,10 @@ import {DetectedGameDto} from "../../models/dtos/DetectedGameDto";
@Component({
selector: 'app-gameserver-list',
- templateUrl: './gameserver-list.component.html',
- styleUrls: ['./gameserver-list.component.css']
+ templateUrl: './library-overview.component.html',
+ styleUrls: ['./library-overview.component.css']
})
-export class GameserverListComponent implements AfterViewInit {
+export class LibraryOverviewComponent implements AfterViewInit {
detectedGames: DetectedGameDto[] = [];
loading: boolean = true;