Skip to content

Commit

Permalink
Merge pull request #44 from SSchulze1989/develop
Browse files Browse the repository at this point in the history
v0.5.1
  • Loading branch information
SSchulze1989 authored Mar 12, 2023
2 parents 381cc9b + be04805 commit 3cb8656
Show file tree
Hide file tree
Showing 28 changed files with 631 additions and 179 deletions.
3 changes: 1 addition & 2 deletions src/iRLeagueManager.Web/Components/EditEventModal.razor
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@
MinimumLength=1
MaximumSuggestions=100
EnableDropDown=true
class="form-control py-0 px-0 ps-1 border border-top-0"
style="border-color: #ced4da !important"
class="form-control py-0 px-0 ps-1"
placeholder="Search by Track name...">
<SelectedTemplate Context=track >
@track?.TrackName
Expand Down
2 changes: 1 addition & 1 deletion src/iRLeagueManager.Web/Components/EventSelect.razor
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
[Parameter]
public EventCallback<EventViewModel?> SelectedChanged { get; set; }

private const string BaseClass = "input-group container px-0 mb-2 mx-0";
private const string BaseClass = "input-group";
private string CssClass
{
get
Expand Down
4 changes: 2 additions & 2 deletions src/iRLeagueManager.Web/Components/LoadingHeader.razor
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@using System.ComponentModel

<div @attributes=@AdditionalAttributes>
<div style="display:inline-block">
<div class="d-flex flex-nowrap gap-2">
@ChildContent
<div class="spinner-border" style="height:1.5rem; width:1.5rem; @(Loading == false ? "visibility:hidden" : "")" role="status" />
</div>
<div class="spinner-border mx-2" style="height:1.5rem; width:1.5rem; @(Loading == false ? "visibility:hidden" : "")" role="status" />
</div>

@code {
Expand Down
4 changes: 2 additions & 2 deletions src/iRLeagueManager.Web/Components/Reviews/ReviewCard.razor
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
</div>
</div>
<div class="card-body">
<div class="container @(Collapsed ? "" : " collapse")">
<div class="container-xxl @(Collapsed ? "" : " collapse")">
<div class="row">
<div class="col-md-auto">
<h5>Involved</h5>
Expand All @@ -76,7 +76,7 @@
</div>
</div>
</div>
<div class="container @(Collapsed ? " collapse" : "")" id="[email protected]" @ref=ReviewText>
<div class="container-xxl @(Collapsed ? " collapse" : "")" id="[email protected]" @ref=ReviewText>
<div class="row">
<div class="col">
<h5>Involved Drivers</h5>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<h5>@name</h5>
@if (string.IsNullOrEmpty(displayName) == false && displayName != name)
{
<i>&nbsp;&nbsp;&nbsp;=> "@displayName"</i>
<i>&nbsp;&nbsp;&nbsp;"@displayName"</i>
}
</div>
@if (ChampSeason is not null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@

<EditForm Model="Vm" OnValidSubmit=Submit>
<StatusResultValidator @ref=ResultValidator />
<div class="accordion mb-3">
@{
var accordionId = $"champseason-{Vm.ChampSeasonId}-accordion";
}
<div class="accordion mb-3" id="@accordionId">
<div class="accordion-item">
<h2 class="accordion-header">
<h2 class="accordion-header" id="@(accordionId)-championship-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseChampionship" aria-expanded="true" aria-controls="collapseChampionship">
Championship
</button>
</h2>
<div class="accordion-collapse collapse show input-group-list input-group-list-flush" id="collapseChampionship">
<div class="accordion-collapse collapse show input-group-list input-group-list-flush" id="collapseChampionship" aria-labelledby="@(accordionId)-championship-header" data-bs-parent="#@(accordionId)">
<InputGroup Label="Name">
<InputText class="form-control" @bind-Value=Vm.ChampionshipName placeholder="Enter championship name ..." data-bs-toggle="tooltip" title="Name to identify the championship" />
</InputGroup>
Expand All @@ -20,42 +23,49 @@
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseResults" aria-expanded="true" aria-controls="collapseResults">
Race Results
<h2 class="accordion-header" id="@(accordionId)-results-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseResults" aria-expanded="false" aria-controls="collapseResults">
Race Results & Points
</button>
</h2>
<div class="accordion-collapse collapse show list-group list-group-flush" id="collapseResults">
@foreach(var resultConfig in Vm.ResultConfigViewModels)
{
<div class="list-group-item list-group-item-action d-flex justify-content-between" type="button" @onclick=@(() => OnResultConfigClick(resultConfig))>
<ResultConfigPreview ResultConfig="resultConfig" class="overflow-auto"/>
<div class="d-flex align-self-start">
<button class="btn btn-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#config_@(resultConfig.ResultConfigId)_details"
aria-expanded="false" @onclick:stopPropagation>
<span class="oi oi-chevron-bottom btn-toggle-off" />
<span class="oi oi-chevron-top btn-toggle-on" />
</button>
<button class="btn btn-outline-danger" type="button" @onclick=@(() =>OnDeleteResultConfigClick(resultConfig)) @onclick:stopPropagation>
<span class="oi oi-trash" />
<div class="accordion-collapse collapse" id="collapseResults" aria-labelledby="@(accordionId)-results-header" data-bs-parent="#@(accordionId)">
<div class="card m-1">
<div class="card-header">
Result Configurations / Event types
</div>
<ul class="list-group list-group-flush">
@foreach (var resultConfig in Vm.ResultConfigViewModels)
{
<div class="list-group-item list-group-item-action d-flex justify-content-between" type="button" @onclick=@(() => OnResultConfigClick(resultConfig))>
<ResultConfigPreview ResultConfig="resultConfig" class="overflow-auto" />
<div class="d-flex align-self-start">
<button class="btn btn-toggle" type="button" data-bs-toggle="collapse" data-bs-target="#config_@(resultConfig.ResultConfigId)_details"
aria-expanded="false" @onclick:stopPropagation>
<span class="oi oi-chevron-bottom btn-toggle-off" />
<span class="oi oi-chevron-top btn-toggle-on" />
</button>
<button class="btn btn-outline-danger" type="button" @onclick=@(() =>OnDeleteResultConfigClick(resultConfig)) @onclick:stopPropagation>
<span class="oi oi-trash" />
</button>
</div>
</div>
}
<div class="list-group-item">
<button class="btn btn-outline-secondary" type="button" @onclick=OnAddResultConfigClick>
Add Result Configuration
</button>
</div>
</div>
}
<div class="list-group-item">
<button class="btn btn-outline-secondary" type="button" @onclick=OnAddResultConfigClick>
Add Result Configuration
</button>
</ul>
</div>
</div>
</div>
<div class="accordion-item">
<div class="accordion-item" id="@(accordionId)-standings-header">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseStandings" aria-expanded="true" aria-controls="collapseStandings">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseStandings" aria-expanded="false" aria-controls="collapseStandings">
Standings
</button>
</h2>
<div class="accordion-collapse collapse show input-group-list input-group-list-flush" id="collapseStandings">
<div class="accordion-collapse collapse input-group-list input-group-list-flush" id="collapseStandings" aria-labelledby="@(accordionId)-standings-header" data-bs-parent="#@(accordionId)">
@if (Vm.StandingConfig is not null)
{
<div class="input-group">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<small>MaxPoints: @pointRule.MaxPoints</small>
<small>DropOff p.Pl: @pointRule.PointDropOff</small>
}
<PointTable PointRule=pointRule/>
<PointTable class="overflow-auto" PointRule=pointRule/>
</button>
</InputGroup>
<InputGroup Label="Sort Final">
Expand Down
26 changes: 21 additions & 5 deletions src/iRLeagueManager.Web/Components/Settings/PointTable.razor
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
@inherits MvvmComponentBase
@using static iRLeagueManager.Web.ViewModels.PointRuleViewModel;
@inherits MvvmComponentBase

<div @attributes=AdditionalAttributes>
<small>@GetPointTypeString()</small>
@if (@Bind(PointRule, x => x.PointsPerPlace).Count() > 0)
{
<table class="overflow-scroll table table-sm">
Expand All @@ -24,10 +26,6 @@
</tbody>
</table>
}
else
{
<span>Points from source</span>
}
</div>

@code {
Expand All @@ -41,4 +39,22 @@
base.OnParametersSet();
BlazorParameterNullException.ThrowIfNull(this, PointRule);
}

private string GetPointTypeString()
{
if (PointRule.PointsPerPlace.Count() == 0)
{
return "Keep points";
}
switch (PointRule.RuleType)
{
case PointRuleType.PointList:
return "Points per place";
case PointRuleType.MaxPoints:
return $"Max pts.: {PointRule.MaxPoints}; Drop-off: {PointRule.PointDropOff}";
case PointRuleType.Formula:
return $"Formula";
}
return "Unknown";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<div class="mb-3">
<h6>@scoring.Name</h6>
<div class="ms-5">
<small></small>
<PointTable PointRule=scoring.PointRule />
<small>Sort results by: @string.Join(" then ", scoring.PointRule.FinalSortOptions)</small>
</div>
Expand Down
12 changes: 7 additions & 5 deletions src/iRLeagueManager.Web/Pages/Leagues.razor
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@
@inject LeaguesViewModel vm
@inject ILeagueApiClient apiClient

<div class="container">
<LoadingHeader Loading=@Bind(vm, x => x.Loading)>
<h3>Leagues</h3>
</LoadingHeader>
<div class="container-xxl">
<div class="sticky-header">
<LoadingHeader Loading=@Bind(vm, x => x.Loading)>
<h3>Leagues</h3>
</LoadingHeader>
</div>

<table class="table alternate select-table">
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Id</th>
Expand Down
4 changes: 2 additions & 2 deletions src/iRLeagueManager.Web/Pages/Protests.razor
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
@inject ReviewsPageViewModel ReviewsVm
@inject ClientLocalTimeProvider ClientTime

<div class="container">
<div class="container-xxl">
<h3 class="mb-3">
File Protest
</h3>
Expand Down Expand Up @@ -189,7 +189,7 @@
if (@event?.EventId != null)
{
var navUrl = $"./{LeagueName}/Protests/Events/{@event.EventId}";
NavigationManager.NavigateTo(navUrl);
NavigationManager.NavigateTo(navUrl, replace: true);
await ReviewsVm.LoadFromEventAsync(@event.EventId);
}
SessionId = @event?.Sessions.FirstOrDefault()?.SessionId;
Expand Down
75 changes: 40 additions & 35 deletions src/iRLeagueManager.Web/Pages/Results.razor
Original file line number Diff line number Diff line change
Expand Up @@ -13,44 +13,48 @@
@inherits LeagueComponentBase
@inject ResultsPageViewModel vm

<div class="container">
<LoadingHeader class="mb-2" Loading=@Bind(vm, x => x.Loading)>
<h3>Results</h3>
</LoadingHeader>

<EventSelect />
@if (@Bind(vm, x => x.Results)?.Count == 0)
{
<div class="card-body">
<p class="results-scoring"><em>No Results</em></p>
<div class="container-xxl">
<div class="sticky-header">
<div class="d-flex align-items-bottom gap-2">
<LoadingHeader Loading=@Bind(vm, x => x.Loading)>
<h3>Results</h3>
</LoadingHeader>
<EventSelect class="mb-2" />
</div>
}
<div class="d-flex">
<ul class="nav nav-tabs flex-fill">
@foreach((var eventResult, var i) in @Bind(vm, x => x.Results).Select((x, i) => (x,i)))
{
<li class="nav-item">
<a class="nav-link @((i==Bind(vm, x => x.SelectedResultIndex)) ? "active" : "")" href="@(GetTabLink(i))">@Bind(eventResult, x => x.Name)</a>
</li>
}
</ul>
<AuthorizeView Roles=@GetRoleString(LeagueRoles.Admin, LeagueRoles.Organizer)>
<Authorized>
@if (vm.SelectedEvent?.HasResult == true && SharedState.SeasonFinished == false)
@if (@Bind(vm, x => x.Results)?.Count == 0)
{
<div class="card-body">
<p class="results-scoring"><em>No Results</em></p>
</div>
}
<div class="d-flex">
<ul class="nav nav-tabs flex-fill">
@foreach((var eventResult, var i) in @Bind(vm, x => x.Results).Select((x, i) => (x,i)))
{
<button class="btn btn-outline-secondary ms-2" @onclick=TriggerCalculation>
Calculate
</button>
@if (vm.Results.Count > 0)
<li class="nav-item">
<NavLink class="nav-link" href="@GetTabLink(i)">@Bind(eventResult, x => x.Name)</NavLink>
</li>
}
</ul>
<AuthorizeView Roles=@GetRoleString(LeagueRoles.Admin, LeagueRoles.Organizer)>
<Authorized>
@if (vm.SelectedEvent?.HasResult == true && SharedState.SeasonFinished == false)
{
<button class="btn btn-outline-danger ms-2" @onclick=DeleteResultsClick>
<span class="oi oi-trash" />
<button class="btn btn-outline-secondary ms-2" @onclick=TriggerCalculation>
Calculate
</button>
@if (vm.Results.Count > 0)
{
<button class="btn btn-outline-danger ms-2" @onclick=DeleteResultsClick>
<span class="oi oi-trash" />
</button>
}
}
}
</Authorized>
</AuthorizeView>
</Authorized>
</AuthorizeView>
</div>
</div>

@if (@Bind(vm, x => x.SelectedEvent) != null && @Bind(vm, x => x.SelectedEventResult) != null)
{
@foreach(var result in @Bind(vm.SelectedEventResult!, x => x.SessionResults).OrderByDescending(x => x.SessionNr))
Expand Down Expand Up @@ -96,8 +100,9 @@
{
resultIndex = 0;
}
var navUri = $"./{LeagueName}/Results/Events/{@event.EventId}?{resultTabParam}={resultIndex}";
NavigationManager.NavigateTo(navUri);
var navUri = $"/{LeagueName}/Results/Events/{@event.EventId}?{resultTabParam}={resultIndex}";
bool replace = NavigationManager.Uri.Contains($"/Events/") == false || NavigationManager.Uri.Contains(navUri);
NavigationManager.NavigateTo(navUri, replace: replace);
}
}

Expand All @@ -116,7 +121,7 @@

private void SetSelectedResultIndex(int index)
{
NavigationManager.NavigateTo(GetTabLink(index));
NavigationManager.NavigateTo(GetTabLink(index), replace: true);
}

private string GetTabLink(int index)
Expand Down
Loading

0 comments on commit 3cb8656

Please sign in to comment.