1
0

Move server list into its own component.

This commit is contained in:
Kevin Matsubara 2025-03-27 00:07:36 +01:00
parent c4641da821
commit 9d72279631
2 changed files with 38 additions and 34 deletions

View File

@ -0,0 +1,34 @@
@inject NavigationManager NavigationManager
<ul>
<Virtualize Items="this.servers" Context="server">
<li @key="server.Id">
@server.Name in @server.City is
<span style="color:@(server.IsOnline ? "green" : "red")">
@(server.IsOnline ? "online" : "offline")
</span>;
&nbsp;
<a href="@($"/servers/{server.Id}")" class="btn btn-primary">Edit</a>
&nbsp;
<EditForm
Model="server"
FormName="@($"formDeleteServer{server.Id}")"
OnValidSubmit="@(() => { DeleteServer(server.Id); })">
<button type="submit" class="btn btn-danger">Delete</button>
</EditForm>
</li>
</Virtualize>
</ul>
@code {
private List<Server> servers = ServersRepository.GetServersByCity("Eindhoven");
private void DeleteServer(int serverId)
{
if (serverId > 0)
{
ServersRepository.DeleteServer(serverId);
NavigationManager.Refresh(forceReload: true);
}
}
}

View File

@ -1,8 +1,6 @@
@page "/servers"
@using ServerManagement.Components.Controls
@inject NavigationManager NavigationManager
<h3>Servers</h3>
<br/>
<br/>
@ -35,29 +33,10 @@
<a href="@($"/servers/add")" class="btn btn-primary">Add</a>
<br/>
<ul>
<Virtualize Items="this.servers" Context="server">
<li @key="server.Id">
@server.Name in @server.City is
<span style="color:@(server.IsOnline ? "green" : "red")">
@(server.IsOnline ? "online" : "offline")
</span>;
&nbsp;
<a href="@($"/servers/{server.Id}")" class="btn btn-primary">Edit</a>
&nbsp;
<EditForm
Model="server"
FormName="@($"formDeleteServer{server.Id}")"
OnValidSubmit="@(() => { DeleteServer(server.Id); })">
<button type="submit" class="btn btn-danger">Delete</button>
</EditForm>
</li>
</Virtualize>
</ul>
<ServerListComponent></ServerListComponent>
@code {
private List<string> cities = ServersRepository.GetCities();
private List<Server> servers = ServersRepository.GetServersByCity("Eindhoven");
private string selectedCity = "Eindhoven";
private string _serverFilter = "";
private string serverFilter {
@ -65,29 +44,20 @@
set
{
_serverFilter = value;
this.servers = ServersRepository.SearchServers(_serverFilter);
//this.servers = ServersRepository.SearchServers(_serverFilter);
this.selectedCity = string.Empty;
}
}
private void DeleteServer(int serverId)
{
if (serverId > 0)
{
ServersRepository.DeleteServer(serverId);
NavigationManager.Refresh();
}
}
private void SelectCity(string cityName)
{
this.selectedCity = cityName;
this.servers = ServersRepository.GetServersByCity(this.selectedCity);
//this.servers = ServersRepository.GetServersByCity(this.selectedCity);
}
private void HandleSearch()
{
this.servers = ServersRepository.SearchServers(serverFilter);
//this.servers = ServersRepository.SearchServers(serverFilter);
this.selectedCity = string.Empty;
}
}