mirror of
https://github.com/TomasiDeveloping/PlayerManagement.git
synced 2026-04-16 17:22:21 +00:00
Compare commits
2 Commits
54bf204a51
...
463f526fe7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
463f526fe7 | ||
|
|
1a4550cdc1 |
@ -7,22 +7,22 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Asp.Versioning.Mvc" Version="8.1.0" />
|
<PackageReference Include="Asp.Versioning.Mvc" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="9.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" />
|
||||||
<PackageReference Include="Azure.Identity" Version="1.13.2" />
|
<PackageReference Include="Azure.Identity" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.4">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Octokit" Version="14.0.0" />
|
<PackageReference Include="Octokit" />
|
||||||
<PackageReference Include="Serilog" Version="4.2.0" />
|
<PackageReference Include="Serilog" />
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
|
<PackageReference Include="Serilog.AspNetCore" />
|
||||||
<PackageReference Include="Serilog.Sinks.Seq" Version="9.0.0" />
|
<PackageReference Include="Serilog.Sinks.Seq" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />
|
<PackageReference Include="Swashbuckle.AspNetCore" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="8.1.1" />
|
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -17,11 +17,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AutoMapper" Version="14.0.0" />
|
<PackageReference Include="AutoMapper" />
|
||||||
<PackageReference Include="ExcelDataReader" Version="3.7.0" />
|
<PackageReference Include="ExcelDataReader" />
|
||||||
<PackageReference Include="ExcelDataReader.DataSet" Version="3.7.0" />
|
<PackageReference Include="ExcelDataReader.DataSet" />
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.4" />
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="8.1.1" />
|
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -7,12 +7,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="9.0.4" />
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.3.1" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.4" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.4" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.4">
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
|||||||
7
Directory.Build.props
Normal file
7
Directory.Build.props
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net9.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
39
Directory.Packages.props
Normal file
39
Directory.Packages.props
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageVersion Include="MailKit" Version="4.11.0" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Octokit" Version="14.0.0" />
|
||||||
|
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.DataProtection" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Identity" Version="2.3.1" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.4" />
|
||||||
|
|
||||||
|
<PackageVersion Include="AutoMapper" Version="14.0.0" />
|
||||||
|
<PackageVersion Include="ExcelDataReader" Version="3.7.0" />
|
||||||
|
<PackageVersion Include="ExcelDataReader.DataSet" Version="3.7.0" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="8.1.1" />
|
||||||
|
|
||||||
|
<PackageVersion Include="Asp.Versioning.Mvc" Version="8.1.0" />
|
||||||
|
<PackageVersion Include="AspNetCore.HealthChecks.SqlServer" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="Azure.Identity" Version="1.13.2" />
|
||||||
|
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.4" />
|
||||||
|
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.4" />
|
||||||
|
<PackageVersion Include="Serilog" Version="4.2.0" />
|
||||||
|
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="Serilog.Sinks.Seq" Version="9.0.0" />
|
||||||
|
<PackageVersion Include="Swashbuckle.AspNetCore" Version="8.1.1" />
|
||||||
|
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
11
README.md
11
README.md
@ -25,6 +25,17 @@ All beta versions (0.x.x) can be found here →
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### **[1.1.0]** – *2026-02-09* 🚀
|
||||||
|
#### ✨ Added
|
||||||
|
- **Desert Storm – Player Sorting in Info Dialog**
|
||||||
|
Players can now be **sorted directly** in the **Desert Storm info dialog**:
|
||||||
|
- Participated
|
||||||
|
- Start Player – Did not participate
|
||||||
|
- Substitute Player – Did not participate
|
||||||
|
|
||||||
|
This makes it easier to **track participation** and quickly see who was active and who missed Desert Storm.
|
||||||
|
|
||||||
|
|
||||||
### **[1.0.1]** – *2026-02-02* 🎉
|
### **[1.0.1]** – *2026-02-02* 🎉
|
||||||
#### ✨ Added
|
#### ✨ Added
|
||||||
- **Zombie Siege – Perfect Checkbox**
|
- **Zombie Siege – Perfect Checkbox**
|
||||||
|
|||||||
@ -16,29 +16,61 @@
|
|||||||
</h5>
|
</h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">Opponent: <span class="text-primary">{{desertStormDetail.opponentName}}</span></h5>
|
<h5 class="card-title">Opponent: <span class="text-primary">{{desertStormDetail.opponentName}}</span></h5>
|
||||||
<p class="card-text">Team: <span class="text-primary">{{desertStormDetail.team}}</span></p>
|
<p class="card-text mb-1">Team: <span class="text-primary">{{desertStormDetail.team}}</span></p>
|
||||||
<p class="card-text">Server: <span class="text-primary">{{desertStormDetail.opponentServer}}</span></p>
|
<p class="card-text mb-1">Server: <span class="text-primary">{{desertStormDetail.opponentServer}}</span></p>
|
||||||
<p class="card-text">Opponent participants: <span class="text-primary">{{desertStormDetail.opposingParticipants}}</span></p>
|
<p class="card-text mb-1">Opponent participants: <span class="text-primary">{{desertStormDetail.opposingParticipants}}</span></p>
|
||||||
<p class="card-text">Allianz participants: <span class="text-primary">{{desertStormDetail.participants | number}}</span></p>
|
<p class="card-text mb-1">Allianz participants: <span class="text-primary">{{desertStormDetail.participants | number}}</span></p>
|
||||||
<hr>
|
<hr>
|
||||||
<div>
|
<div>
|
||||||
<p class="card-text">Creator: <span class="text-primary">{{desertStormDetail.createdBy}}</span></p>
|
<p class="card-text mb-1">Creator: <span class="text-primary">{{desertStormDetail.createdBy}}</span></p>
|
||||||
@if (desertStormDetail.modifiedOn) {
|
@if (desertStormDetail.modifiedOn) {
|
||||||
<p class="card-text">Modified: <span class="text-primary">{{desertStormDetail.modifiedOn | date: 'dd.MM.yyyy HH:mm'}}</span>
|
<p class="card-text mb-1">Modified: <span class="text-primary">{{desertStormDetail.modifiedOn | date: 'dd.MM.yyyy HH:mm'}}</span>
|
||||||
by <span class="text-primary">{{desertStormDetail.modifiedBy}}</span></p>
|
by <span class="text-primary">{{desertStormDetail.modifiedBy}}</span></p>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<p>Registered: <span class="text-primary">{{registeredPlayers}}</span></p>
|
<p class="mb-1">Registered: <span class="text-primary">{{registeredPlayers}}</span></p>
|
||||||
<p>Start player: <span class="text-primary">{{startedPlayers}}</span></p>
|
<p class="mb-1">Start player: <span class="text-primary">{{startedPlayers}}</span></p>
|
||||||
<p>Participated: <span class="text-primary">{{participatedPlayers}}</span></p>
|
<p class="mb-1">Participated: <span class="text-primary">{{participatedPlayers}}</span></p>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<p class="card-text text-center">Players</p>
|
<p class="card-text text-center mb-1">Players</p>
|
||||||
|
<div class="d-flex justify-content-center gap-2 mb-3 flex-wrap">
|
||||||
|
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-sm rounded-pill px-3"
|
||||||
|
[ngClass]="filterType === 'ALL' ? 'btn-dark' : 'btn-outline-dark'"
|
||||||
|
(click)="filterType='ALL'">
|
||||||
|
All
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-sm rounded-pill px-3"
|
||||||
|
[ngClass]="filterType === 'PARTICIPATED' ? 'btn-success' : 'btn-outline-success'"
|
||||||
|
(click)="filterType='PARTICIPATED'">
|
||||||
|
Participated
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-sm rounded-pill px-3"
|
||||||
|
[ngClass]="filterType === 'START_NOT_PARTICIPATED' ? 'btn-danger' : 'btn-outline-danger'"
|
||||||
|
(click)="filterType='START_NOT_PARTICIPATED'">
|
||||||
|
Starter · Not participated
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button type="button"
|
||||||
|
class="btn btn-sm rounded-pill px-3"
|
||||||
|
[ngClass]="filterType === 'SUB_NOT_PARTICIPATED' ? 'btn-warning' : 'btn-outline-warning'"
|
||||||
|
(click)="filterType='SUB_NOT_PARTICIPATED'">
|
||||||
|
Substitute · Not participated
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div ngbScrollSpy class="bg-light p-3 rounded-2 mb-3" style="height: 200px">
|
<div ngbScrollSpy class="bg-light p-3 rounded-2 mb-3" style="height: 200px">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@for (player of desertStormDetail.desertStormParticipants; track player.id; let i = $index) {
|
@for (player of filteredPlayers; track player.id; let i = $index) {
|
||||||
@if (player.registered) {
|
@if (player.registered) {
|
||||||
<div class="col-12 col-md-6 mb-4">
|
<div class="col-12 col-md-6 mb-4">
|
||||||
<div class="d-flex flex-column align-items-center border p-3"
|
<div class="d-flex flex-column align-items-center border p-3"
|
||||||
|
|||||||
@ -18,6 +18,32 @@ export class DesertStormDetailComponent implements OnInit {
|
|||||||
public registeredPlayers: number = 0;
|
public registeredPlayers: number = 0;
|
||||||
public participatedPlayers: number = 0;
|
public participatedPlayers: number = 0;
|
||||||
public startedPlayers: number = 0;
|
public startedPlayers: number = 0;
|
||||||
|
filterType: 'ALL' | 'PARTICIPATED' | 'START_NOT_PARTICIPATED' | 'SUB_NOT_PARTICIPATED' = 'ALL';
|
||||||
|
|
||||||
|
get filteredPlayers() {
|
||||||
|
if (this.desertStormDetail?.desertStormParticipants) {
|
||||||
|
return this.desertStormDetail.desertStormParticipants.filter(player => {
|
||||||
|
if (!player.registered) return false;
|
||||||
|
|
||||||
|
switch (this.filterType) {
|
||||||
|
case 'PARTICIPATED':
|
||||||
|
return player.participated;
|
||||||
|
|
||||||
|
case 'START_NOT_PARTICIPATED':
|
||||||
|
return player.startPlayer && !player.participated;
|
||||||
|
|
||||||
|
case 'SUB_NOT_PARTICIPATED':
|
||||||
|
return !player.startPlayer && !player.participated;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
|
||||||
|
|||||||
@ -11,11 +11,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MailKit" Version="4.11.0" />
|
<PackageReference Include="MailKit" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
|
<PackageReference Include="Microsoft.AspNetCore.Http.Features" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.4" />
|
<PackageReference Include="Microsoft.Extensions.Options" />
|
||||||
<PackageReference Include="Octokit" Version="14.0.0" />
|
<PackageReference Include="Octokit" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user