Compare commits

..

No commits in common. "463f526fe74bc37185ce053f2435b8ecae3aee06" and "54bf204a512745a174463bdb8a0753d53d6b23a6" have entirely different histories.

9 changed files with 40 additions and 155 deletions

View File

@ -7,22 +7,22 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Asp.Versioning.Mvc" />
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" />
<PackageReference Include="Azure.Identity" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
<PackageReference Include="Asp.Versioning.Mvc" Version="8.1.0" />
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="9.0.0" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="9.0.0" />
<PackageReference Include="Azure.Identity" Version="1.13.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" />
<PackageReference Include="Octokit" />
<PackageReference Include="Serilog" />
<PackageReference Include="Serilog.AspNetCore" />
<PackageReference Include="Serilog.Sinks.Seq" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore" Version="9.0.4" />
<PackageReference Include="Octokit" Version="14.0.0" />
<PackageReference Include="Serilog" Version="4.2.0" />
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageReference Include="Serilog.Sinks.Seq" Version="9.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="8.1.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="8.1.1" />
</ItemGroup>
<ItemGroup>

View File

@ -17,11 +17,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" />
<PackageReference Include="ExcelDataReader" />
<PackageReference Include="ExcelDataReader.DataSet" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
<PackageReference Include="AutoMapper" Version="14.0.0" />
<PackageReference Include="ExcelDataReader" Version="3.7.0" />
<PackageReference Include="ExcelDataReader.DataSet" Version="3.7.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.4" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="8.1.1" />
</ItemGroup>
<ItemGroup>

View File

@ -7,12 +7,12 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.DataProtection" />
<PackageReference Include="Microsoft.AspNetCore.Identity" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
<PackageReference Include="Microsoft.AspNetCore.DataProtection" Version="9.0.4" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.3.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

View File

@ -1,7 +0,0 @@
<Project>
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -1,39 +0,0 @@
<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>

View File

@ -25,17 +25,6 @@ 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* 🎉
#### ✨ Added
- **Zombie Siege Perfect Checkbox**

View File

@ -16,61 +16,29 @@
</h5>
<div class="card-body">
<h5 class="card-title">Opponent: <span class="text-primary">{{desertStormDetail.opponentName}}</span></h5>
<p class="card-text mb-1">Team: <span class="text-primary">{{desertStormDetail.team}}</span></p>
<p class="card-text mb-1">Server: <span class="text-primary">{{desertStormDetail.opponentServer}}</span></p>
<p class="card-text mb-1">Opponent participants: <span class="text-primary">{{desertStormDetail.opposingParticipants}}</span></p>
<p class="card-text mb-1">Allianz participants: <span class="text-primary">{{desertStormDetail.participants | number}}</span></p>
<p class="card-text">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">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>
<hr>
<div>
<p class="card-text mb-1">Creator: <span class="text-primary">{{desertStormDetail.createdBy}}</span></p>
<p class="card-text">Creator: <span class="text-primary">{{desertStormDetail.createdBy}}</span></p>
@if (desertStormDetail.modifiedOn) {
<p class="card-text mb-1">Modified: <span class="text-primary">{{desertStormDetail.modifiedOn | date: 'dd.MM.yyyy HH:mm'}}</span>
<p class="card-text">Modified: <span class="text-primary">{{desertStormDetail.modifiedOn | date: 'dd.MM.yyyy HH:mm'}}</span>
by <span class="text-primary">{{desertStormDetail.modifiedBy}}</span></p>
}
</div>
<hr>
<div class="d-flex justify-content-between">
<p class="mb-1">Registered: <span class="text-primary">{{registeredPlayers}}</span></p>
<p class="mb-1">Start player: <span class="text-primary">{{startedPlayers}}</span></p>
<p class="mb-1">Participated: <span class="text-primary">{{participatedPlayers}}</span></p>
<p>Registered: <span class="text-primary">{{registeredPlayers}}</span></p>
<p>Start player: <span class="text-primary">{{startedPlayers}}</span></p>
<p>Participated: <span class="text-primary">{{participatedPlayers}}</span></p>
</div>
<hr>
<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>
<p class="card-text text-center">Players</p>
<div ngbScrollSpy class="bg-light p-3 rounded-2 mb-3" style="height: 200px">
<div class="row">
@for (player of filteredPlayers; track player.id; let i = $index) {
@for (player of desertStormDetail.desertStormParticipants; track player.id; let i = $index) {
@if (player.registered) {
<div class="col-12 col-md-6 mb-4">
<div class="d-flex flex-column align-items-center border p-3"

View File

@ -18,32 +18,6 @@ export class DesertStormDetailComponent implements OnInit {
public registeredPlayers: number = 0;
public participatedPlayers: 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() {

View File

@ -11,11 +11,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="MailKit" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" />
<PackageReference Include="Microsoft.Extensions.Options" />
<PackageReference Include="Octokit" />
<PackageReference Include="MailKit" Version="4.11.0" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="5.0.17" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.4" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.4" />
<PackageReference Include="Octokit" Version="14.0.0" />
</ItemGroup>
</Project>