@page "/admin/servers/nodes"
@using Moonlight.Client.App.Models.Crud
@using Moonlight.Shared.Http.Resources
@using MoonlightServers.Client.UI.Components.Forms
@using MoonlightServers.Shared.Http.Requests.Admin.Nodes
@using MoonlightServers.Shared.Http.Responses.Admin.Nodes
@using MoonlightServers.Client.UI.Components.Partials
@inject HttpApiClient HttpApiClient
@attribute [RequirePermission("admin.servers.nodes.get")]
@code
{
private void OnConfigure(CrudOptions options)
{
options.Loader = async (page, pageSize) =>
await HttpApiClient.GetJson>($"admin/servers/nodes?page={page}&pageSize={pageSize}");
options.CreateFunction = async request => await HttpApiClient.Post("admin/servers/nodes", request);
options.UpdateFunction = async (request, item) => await HttpApiClient.Patch($"admin/servers/nodes/{item.Id}", request);
options.DeleteFunction = async item => await HttpApiClient.Delete($"admin/servers/nodes/{item.Id}");
options.ShowCreateAsModal = false;
options.ShowUpdateAsModal = false;
options.ShowDetailsAsModal = false;
options.OnConfigureCreate = option =>
{
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.Name);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.Fqdn);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.ApiPort);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.SslEnabled);
};
options.OnConfigureUpdate = (option, item) =>
{
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.Name);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.Fqdn);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.ApiPort);
option
.DefaultPage
.DefaultSection
.AddProperty(x => x.SslEnabled);
};
}
}