Skip to content

Commit a8d5487

Browse files
authored
Merge pull request #180 from LeadOn/develop
5.2.0
2 parents d344f05 + a338c40 commit a8d5487

28 files changed

Lines changed: 1558 additions & 299 deletions

package-lock.json

Lines changed: 332 additions & 204 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gameon-front",
3-
"version": "5.1.2",
3+
"version": "5.2.0",
44
"scripts": {
55
"ng": "ng",
66
"start": "ng serve",
@@ -10,33 +10,33 @@
1010
},
1111
"private": true,
1212
"dependencies": {
13-
"@angular/animations": "^19.2.6",
14-
"@angular/cdk": "^19.2.9",
15-
"@angular/common": "^19.2.6",
16-
"@angular/compiler": "^19.2.6",
17-
"@angular/core": "^19.2.6",
18-
"@angular/forms": "^19.2.6",
19-
"@angular/platform-browser": "^19.2.6",
20-
"@angular/platform-browser-dynamic": "^19.2.6",
21-
"@angular/router": "^19.2.6",
13+
"@angular/animations": "^19.2.7",
14+
"@angular/cdk": "^19.2.10",
15+
"@angular/common": "^19.2.7",
16+
"@angular/compiler": "^19.2.7",
17+
"@angular/core": "^19.2.7",
18+
"@angular/forms": "^19.2.7",
19+
"@angular/platform-browser": "^19.2.7",
20+
"@angular/platform-browser-dynamic": "^19.2.7",
21+
"@angular/router": "^19.2.7",
2222
"@fortawesome/angular-fontawesome": "^1.0.0",
2323
"@fortawesome/free-solid-svg-icons": "^6.7.2",
2424
"@ngrx/store": "^19.1.0",
25-
"@tailwindcss/postcss": "^4.1.3",
26-
"chart.js": "^4.4.7",
27-
"flowbite": "^3.0.0-beta.1",
25+
"@tailwindcss/postcss": "^4.1.4",
26+
"chart.js": "^4.4.9",
27+
"flowbite": "^3.1.2",
2828
"keycloak-angular": "^19.0.2",
2929
"keycloak-js": "^26.0.7",
3030
"postcss": "^8.5.3",
31-
"rxjs": "~7.8.1",
31+
"rxjs": "^7.8.2",
3232
"tailwindcss-animated": "^2.0.0",
3333
"tslib": "^2.8.1",
3434
"zone.js": "~0.15.0"
3535
},
3636
"devDependencies": {
37-
"@angular-devkit/build-angular": "^19.2.7",
38-
"@angular/cli": "^19.2.7",
39-
"@angular/compiler-cli": "^19.2.6",
37+
"@angular-devkit/build-angular": "^19.2.8",
38+
"@angular/cli": "^19.2.8",
39+
"@angular/compiler-cli": "^19.2.7",
4040
"@types/jasmine": "~5.1.0",
4141
"autoprefixer": "^10.4.20",
4242
"jasmine-core": "~5.1.0",
@@ -47,7 +47,7 @@
4747
"karma-jasmine-html-reporter": "~2.1.0",
4848
"prettier": "^3.4.2",
4949
"prettier-plugin-tailwindcss": "^0.6.11",
50-
"tailwindcss": "^4.1.3",
50+
"tailwindcss": "^4.1.4",
5151
"typescript": "~5.7.2"
5252
}
5353
}
Lines changed: 60 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,47 @@
1-
<div class="bg-bgLightDarker dark:bg-bgDarkDarker h-screen lg:flex">
2-
<nav class="bg-bgLight dark:bg-bgDark fixed bottom-0 left-0 z-50 h-16 w-full">
3-
<div class="mx-auto grid h-full max-w-lg grid-cols-4 font-medium">
1+
<div class="bg-bgLightDarker dark:bg-bgDarkDarker flex h-screen flex-col">
2+
<header
3+
class="bg-bgLight dark:bg-bgDark flex h-16 min-h-16 w-full items-center justify-between self-center px-4"
4+
>
5+
<a
6+
routerLink="/admin"
7+
class="text-primaryDarker flex items-center justify-center self-center text-xl font-bold"
8+
><img
9+
class="h-8 w-8"
10+
src="assets/img/gameon-logo.webp"
11+
alt="GameOn!'s logo"
12+
/>
13+
<span class="dark:text-primaryDark ml-2 flex flex-col"
14+
><span>GameOn!</span>
15+
<span
16+
class="border-frenchRed bg-frenchRed rounded-full border px-2 text-center text-sm font-normal text-white drop-shadow-lg"
17+
>Admin</span
18+
>
19+
</span></a
20+
>
21+
22+
<button type="button" (click)="toggleDarkMode()">
23+
<fa-icon
24+
[icon]="lightIcon"
25+
*ngIf="darkMode()"
26+
class="text-customYellow text-lg"
27+
></fa-icon>
28+
<fa-icon
29+
[icon]="darkIcon"
30+
*ngIf="!darkMode()"
31+
class="text-frenchBlue text-lg"
32+
></fa-icon>
33+
</button>
34+
</header>
35+
36+
<section
37+
id="admin-content"
38+
class="bg-bgLightDarker dark:bg-bgDarkDarker grow overflow-y-scroll py-4"
39+
>
40+
<router-outlet></router-outlet>
41+
</section>
42+
43+
<nav class="bg-bgLight dark:bg-bgDark z-50 h-16 min-h-16 w-full pt-2">
44+
<div class="mx-auto grid grid-cols-4 font-medium">
445
<button
546
routerLink="/admin"
647
type="button"
@@ -33,6 +74,22 @@
3374
>
3475
</button>
3576

77+
<button
78+
routerLink="/admin/changelog"
79+
type="button"
80+
class="group inline-flex cursor-pointer flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-gray-800"
81+
>
82+
<fa-icon
83+
[icon]="changelogIcon"
84+
class="text-primary dark:text-primaryDark hover:text-frenchBlue"
85+
></fa-icon>
86+
87+
<span
88+
class="text-primary dark:text-primaryDark hover:text-frenchBlue dark:group-hover:text-frenchBlue text-sm"
89+
>Changelog</span
90+
>
91+
</button>
92+
3693
<button
3794
routerLink="/"
3895
type="button"
@@ -46,46 +103,4 @@
46103
</button>
47104
</div>
48105
</nav>
49-
50-
<div class="lg:flex lg:w-full lg:flex-col">
51-
<header
52-
class="bg-bgLight dark:bg-bgDark flex h-16 items-center justify-between self-center px-4 lg:w-full"
53-
>
54-
<a
55-
routerLink="/admin"
56-
class="text-primaryDarker flex items-center justify-center self-center text-xl font-bold"
57-
><img
58-
class="h-8 w-8"
59-
src="assets/img/gameon-logo.webp"
60-
alt="GameOn!'s logo"
61-
/>
62-
<span class="dark:text-primaryDark ml-2 flex flex-col"
63-
><span>GameOn!</span>
64-
<span
65-
class="border-frenchRed bg-frenchRed rounded-full border px-2 text-center text-sm font-normal text-white drop-shadow-lg"
66-
>Admin</span
67-
>
68-
</span></a
69-
>
70-
71-
<button type="button" (click)="toggleDarkMode()">
72-
<fa-icon
73-
[icon]="lightIcon"
74-
*ngIf="darkMode()"
75-
class="text-customYellow text-lg"
76-
></fa-icon>
77-
<fa-icon
78-
[icon]="darkIcon"
79-
*ngIf="!darkMode()"
80-
class="text-frenchBlue text-lg"
81-
></fa-icon>
82-
</button>
83-
</header>
84-
85-
<div
86-
class="bg-bgLightDarker dark:bg-bgDarkDarker pb-24 lg:overflow-y-scroll lg:pb-0"
87-
>
88-
<router-outlet></router-outlet>
89-
</div>
90-
</div>
91106
</div>

src/app/admin/admin-layout.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Component, effect, HostBinding, OnInit, signal } from '@angular/core';
22
import { environment } from '../../environments/environment';
33
import {
4+
faClock,
45
faCog,
56
faComputer,
67
faHome,
@@ -42,6 +43,7 @@ export class AdminLayoutComponent {
4243
isLoggedIn = false;
4344
isAdmin = false;
4445
platformIcon = faComputer;
46+
changelogIcon = faClock;
4547

4648
logoutIcon = faRightFromBracket;
4749
generalIcon = faCog;

src/app/admin/admin-routing.module.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ import { AdminPlatformsComponent } from './general/platforms/admin-platforms.com
1515
import { AdminPlatformEditComponent } from './general/platforms/edit/admin-platform-edit.component';
1616
import { AdminPlayersComponent } from './general/players/admin-players.component';
1717
import { AdminPlayerEditComponent } from './general/players/edit/admin-player-edit.component';
18+
import { AdminChangelogHomeComponent } from './changelog/admin-changelog-home.component';
19+
import { AdminChangelogEditComponent } from './changelog/edit/admin-changelog-edit.component';
20+
import { AdminChangelogCreateComponent } from './changelog/create/admin-changelog-create.component';
1821

1922
const routes: Routes = [
2023
{
@@ -75,6 +78,18 @@ const routes: Routes = [
7578
path: 'general/players/edit/:id',
7679
component: AdminPlayerEditComponent,
7780
},
81+
{
82+
path: 'changelog',
83+
component: AdminChangelogHomeComponent,
84+
},
85+
{
86+
path: 'changelog/create',
87+
component: AdminChangelogCreateComponent,
88+
},
89+
{
90+
path: 'changelog/edit/:id',
91+
component: AdminChangelogEditComponent,
92+
},
7893
],
7994
},
8095
];

src/app/admin/admin.module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import { AdminPlatformsComponent } from './general/platforms/admin-platforms.com
1717
import { AdminPlatformEditComponent } from './general/platforms/edit/admin-platform-edit.component';
1818
import { AdminPlayersComponent } from './general/players/admin-players.component';
1919
import { AdminPlayerEditComponent } from './general/players/edit/admin-player-edit.component';
20+
import { AdminChangelogHomeComponent } from './changelog/admin-changelog-home.component';
21+
import { AdminChangelogEditComponent } from './changelog/edit/admin-changelog-edit.component';
22+
import { AdminChangelogCreateComponent } from './changelog/create/admin-changelog-create.component';
2023

2124
@NgModule({
2225
declarations: [
@@ -34,6 +37,9 @@ import { AdminPlayerEditComponent } from './general/players/edit/admin-player-ed
3437
AdminTournamentsComponent,
3538
AdminCreateTournamentComponent,
3639
AdminEditTournamentComponent,
40+
AdminChangelogHomeComponent,
41+
AdminChangelogCreateComponent,
42+
AdminChangelogEditComponent,
3743
],
3844
imports: [
3945
CommonModule,

src/app/admin/changelog/admin-changelog-home.component.css

Whitespace-only changes.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<section class="px-4 pt-4">
2+
<app-loading-spinner *ngIf="loading == true"></app-loading-spinner>
3+
</section>
4+
5+
<div class="animate-fade flex space-x-2 px-4" *ngIf="loading == false">
6+
<span class="text-primary dark:text-primaryDark text-lg font-semibold"
7+
>Changelog
8+
</span>
9+
</div>
10+
11+
<section
12+
id="admin-home-changelog"
13+
class="animate-fade mt-4 flex w-full flex-col space-y-2 space-x-2 px-4"
14+
*ngIf="loading == false"
15+
>
16+
<a
17+
class="bg-customGreen animate-fade flex cursor-pointer flex-row justify-center space-x-2 rounded-full p-2 transition delay-50 ease-in-out hover:bg-green-800"
18+
*ngIf="loading == false"
19+
routerLink="/admin/changelog/create"
20+
>
21+
<div
22+
class="bg-secondary flex w-8 flex-col items-center justify-center rounded-full"
23+
>
24+
+
25+
</div>
26+
<span class="text-white">Créer un changelog</span>
27+
</a>
28+
29+
<div class="mt-4 overflow-x-auto" *ngIf="loading == false">
30+
<table class="w-full text-left text-sm text-gray-500 dark:text-gray-300">
31+
<thead class="text-center text-xs text-gray-700 dark:text-gray-400">
32+
<tr>
33+
<th scope="col" class="px-6 py-3">Version</th>
34+
<th scope="col" class="px-6 py-3">Actions</th>
35+
</tr>
36+
</thead>
37+
<tbody class="text-center">
38+
<tr
39+
class="border-b odd:bg-white even:bg-gray-50 odd:dark:bg-gray-900 even:dark:bg-gray-800"
40+
*ngFor="let changelog of changelogs"
41+
>
42+
<th
43+
class="px-6 py-4 text-center font-medium whitespace-nowrap text-gray-900 dark:text-gray-300"
44+
>
45+
{{ changelog.version }}
46+
</th>
47+
<td class="px-6 py-4">
48+
<fa-icon
49+
[icon]="editIcon"
50+
class="text-primary dark:text-primaryDark cursor-pointer text-xl"
51+
[routerLink]="['/admin/changelog/edit', changelog.id]"
52+
></fa-icon>
53+
</td>
54+
</tr>
55+
</tbody>
56+
</table>
57+
</div>
58+
</section>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { Component, OnInit } from '@angular/core';
2+
import { AdminDashboard } from '../shared/classes/AdminDashboard';
3+
import {
4+
faComputer,
5+
faEdit,
6+
faRankingStar,
7+
faSoccerBall,
8+
faTrophy,
9+
faUserCircle,
10+
faVideo,
11+
} from '@fortawesome/free-solid-svg-icons';
12+
import { GameOnChangelogService } from '../../shared/services/common/gameon-changelog.service';
13+
import { Changelog } from '../../shared/classes/common/Changelog';
14+
15+
@Component({
16+
selector: 'app-admin-changelog-home',
17+
templateUrl: './admin-changelog-home.component.html',
18+
styleUrls: ['./admin-changelog-home.component.css'],
19+
standalone: false,
20+
})
21+
export class AdminChangelogHomeComponent implements OnInit {
22+
loading = true;
23+
platformIcon = faComputer;
24+
playerIcon = faUserCircle;
25+
soccerIcon = faSoccerBall;
26+
hightlightIcon = faVideo;
27+
seasonIcon = faRankingStar;
28+
tournamentIcon = faTrophy;
29+
editIcon = faEdit;
30+
31+
changelogs: Changelog[] = [];
32+
33+
constructor(private changelogService: GameOnChangelogService) {}
34+
35+
ngOnInit(): void {
36+
this.changelogService.getAll().subscribe(
37+
(data) => {
38+
this.loading = false;
39+
this.changelogs = data;
40+
},
41+
(err) => {
42+
this.loading = false;
43+
alert(
44+
'Une erreur est survenue lors de la récupération des nouveautés.',
45+
);
46+
console.error(err);
47+
},
48+
);
49+
}
50+
}

src/app/admin/changelog/create/admin-changelog-create.component.css

Whitespace-only changes.

0 commit comments

Comments
 (0)