@page "/admin/rules"
@using Iceshrimp.Backend.Components.Admin
@using Iceshrimp.Backend.Core.Database.Tables
@using Iceshrimp.Backend.Core.Services
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.EntityFrameworkCore
@using Microsoft.AspNetCore.Components.Routing
@inherits AdminComponentBase
Here you can adjust instance rules. They get displayed to all users, including guests.
# |
Text & Description |
Actions |
@foreach (var rule in _rules)
{
@rule.Order |
@rule.Text
@if (rule.Description != null)
{
@rule.Description
}
else
{
No description
}
|
Edit
| Remove
|
}
@if (_rules is [])
{
No rules configured.
}
@code {
[Inject] public required InstanceService Instance { get; set; }
[SupplyParameterFromForm] private RuleModel Model { get; set; } = null!;
private List _rules = [];
private class RuleModel
{
public string? Text { get; set; }
public string? Description { get; set; }
}
protected override void OnParametersSet()
{
// ReSharper disable once NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract
Model ??= new RuleModel();
}
protected override async Task OnGet()
{
_rules = await Database.Rules.OrderBy(p => p.Order).ThenBy(p => p.Id).ToListAsync();
}
private async Task OnSubmit()
{
await Instance.CreateRuleAsync(Model.Text!.Trim(), Model.Description?.Trim());
ReloadPage();
}
}