Smaller adjustments on server list
This commit is contained in:
@@ -27,9 +27,9 @@ public class ServersController : Controller
|
|||||||
NodeService = nodeService;
|
NodeService = nodeService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("list")]
|
[HttpGet]
|
||||||
[RequirePermission("meta.authenticated")]
|
[RequirePermission("meta.authenticated")]
|
||||||
public async Task<PagedData<ServerDetailResponse>> List([FromQuery] int page, [FromQuery] int pageSize)
|
public async Task<PagedData<ServerDetailResponse>> GetAll([FromQuery] int page, [FromQuery] int pageSize)
|
||||||
{
|
{
|
||||||
var user = User.AsIdentity<User>();
|
var user = User.AsIdentity<User>();
|
||||||
|
|
||||||
@@ -67,6 +67,33 @@ public class ServersController : Controller
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet("{serverId:int}")]
|
||||||
|
[RequirePermission("meta.authenticated")]
|
||||||
|
public async Task<ServerDetailResponse> Get([FromRoute] int serverId)
|
||||||
|
{
|
||||||
|
var server = await GetServerWithPermCheck(
|
||||||
|
serverId,
|
||||||
|
query =>
|
||||||
|
query
|
||||||
|
.Include(x => x.Allocations)
|
||||||
|
.Include(x => x.Star)
|
||||||
|
);
|
||||||
|
|
||||||
|
return new ServerDetailResponse()
|
||||||
|
{
|
||||||
|
Id = server.Id,
|
||||||
|
Name = server.Name,
|
||||||
|
NodeName = server.Node.Name,
|
||||||
|
StarName = server.Star.Name,
|
||||||
|
Allocations = server.Allocations.Select(y => new AllocationDetailResponse()
|
||||||
|
{
|
||||||
|
Id = y.Id,
|
||||||
|
Port = y.Port,
|
||||||
|
IpAddress = y.IpAddress
|
||||||
|
}).ToArray()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("{serverId:int}/status")]
|
[HttpGet("{serverId:int}/status")]
|
||||||
[RequirePermission("meta.authenticated")]
|
[RequirePermission("meta.authenticated")]
|
||||||
public async Task<ServerStatusResponse> GetStatus([FromRoute] int serverId)
|
public async Task<ServerStatusResponse> GetStatus([FromRoute] int serverId)
|
||||||
@@ -92,13 +119,19 @@ public class ServersController : Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Server> GetServerWithPermCheck(int serverId)
|
private async Task<Server> GetServerWithPermCheck(int serverId,
|
||||||
|
Func<IQueryable<Server>, IQueryable<Server>>? queryModifier = null)
|
||||||
{
|
{
|
||||||
var user = User.AsIdentity<User>();
|
var user = User.AsIdentity<User>();
|
||||||
|
|
||||||
var server = await ServerRepository
|
var query = ServerRepository
|
||||||
.Get()
|
.Get()
|
||||||
.Include(x => x.Node)
|
.Include(x => x.Node) as IQueryable<Server>;
|
||||||
|
|
||||||
|
if (queryModifier != null)
|
||||||
|
query = queryModifier.Invoke(query);
|
||||||
|
|
||||||
|
var server = await query
|
||||||
.FirstOrDefaultAsync(x => x.Id == serverId);
|
.FirstOrDefaultAsync(x => x.Id == serverId);
|
||||||
|
|
||||||
if (server == null)
|
if (server == null)
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
<a href="/servers/@Server.Id"
|
<a href="/servers/@Server.Id"
|
||||||
class="w-full bg-gradient-to-r @gradient to-gray-750/65 to-25% px-5 py-3.5 rounded-xl border-l-8 @border">
|
class="w-full bg-gradient-to-r @gradient to-gray-750 to-25% px-5 py-3.5 rounded-xl border-l-8 @border">
|
||||||
<div class="grid grid-cols-6">
|
<div class="grid grid-cols-6">
|
||||||
<div class="flex items-center col-span-6 sm:col-span-2 2xl:col-span-1">
|
<div class="flex items-center col-span-6 sm:col-span-2 2xl:col-span-1">
|
||||||
<div class="bg-gray-900 bg-opacity-45 py-1 px-2 rounded-lg flex items-center">
|
<div class="bg-gray-900 bg-opacity-45 py-1 px-2 rounded-lg flex items-center">
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
{
|
{
|
||||||
Servers = await PagedData<ServerDetailResponse>.All(async (page, pageSize) =>
|
Servers = await PagedData<ServerDetailResponse>.All(async (page, pageSize) =>
|
||||||
await ApiClient.GetJson<PagedData<ServerDetailResponse>>(
|
await ApiClient.GetJson<PagedData<ServerDetailResponse>>(
|
||||||
$"api/servers/list?page={page}&pageSize={pageSize}"
|
$"api/servers?page={page}&pageSize={pageSize}"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user