Files
WorkManagementTool/WorkManagementTool/Components/SchoolSubject/SchoolSubjectListing.razor
Namu f9809fb0ba
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Has been cancelled
feat: Add authorisation attribute to every components
2025-11-30 22:56:06 +01:00

53 lines
1.3 KiB
Plaintext

@page "/school-subjects"
@rendermode InteractiveServer
@attribute [Authorize]
@using Microsoft.AspNetCore.Authorization
@using WorkManagementTool.Services
@using WorkManagementTool.Data.Entities;
@inject SchoolSubjectService SchoolSubjectService
<h3>SchoolSubjectListing</h3>
<div>
<NavLink class="btn btn-primary" href="school-subjects/creation" Match="NavLinkMatch.All">
Create
</NavLink>
</div>
@if (schoolSubjects.Count == 0)
{
<p>No school subjects found.</p>
}
else
{
<ul>
@foreach (var schoolSubject in schoolSubjects)
{
<li>
<SchoolSubjectDisplay Id="@schoolSubject.Id" />
<div class="btn-group">
<SchoolSubjectDeletion Id="@schoolSubject.Id" OnDeleted="HandleDeletion" />
<NavLink href="@($"/homeworks/{schoolSubject.Id}")" class="btn btn-primary">Manage homeworks</NavLink>
</div>
</li>
}
</ul>
}
@code {
private List<SchoolSubject> schoolSubjects = new();
private async Task HandleDeletion(int deletedIt)
{
schoolSubjects.RemoveAll(s => s.Id == deletedIt);
StateHasChanged();
}
protected override async Task OnInitializedAsync()
{
schoolSubjects = await SchoolSubjectService.GetAllSchoolSubjectsAsync();
}
}