Upgraded to ShadcnBlazor 1.0.10. Started implementing instance management ui page

This commit is contained in:
2026-01-26 16:49:25 +01:00
parent 4e96905fb2
commit deb69e6014
11 changed files with 72 additions and 17 deletions

View File

@@ -24,8 +24,8 @@
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="10.0.1"/> <PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="10.0.1"/>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.1"/> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.1"/>
<PackageReference Include="Riok.Mapperly" Version="4.3.1-next.0"/> <PackageReference Include="Riok.Mapperly" Version="4.3.1-next.0"/>
<PackageReference Include="ShadcnBlazor" Version="1.0.9" /> <PackageReference Include="ShadcnBlazor" Version="1.0.10" />
<PackageReference Include="ShadcnBlazor.Extras" Version="1.0.9" /> <PackageReference Include="ShadcnBlazor.Extras" Version="1.0.10" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -21,7 +21,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="keyName">Name</Label> <Label for="keyName">Name</Label>
<InputField @bind-Value="Request.Name" id="keyName" placeholder="My API key" /> <TextInputField @bind-Value="Request.Name" id="keyName" placeholder="My API key" />
</div> </div>
<div class="grid gap-2"> <div class="grid gap-2">

View File

@@ -25,7 +25,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="roleName">Name</Label> <Label for="roleName">Name</Label>
<InputField <TextInputField
@bind-Value="Request.Name" @bind-Value="Request.Name"
id="roleName" id="roleName"
placeholder="My fancy role"/> placeholder="My fancy role"/>

View File

@@ -23,7 +23,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="username">Username</Label> <Label for="username">Username</Label>
<InputField <TextInputField
@bind-Value="Request.Username" @bind-Value="Request.Username"
id="username" id="username"
placeholder="Name of the user"/> placeholder="Name of the user"/>
@@ -31,7 +31,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="emailAddress">Email Address</Label> <Label for="emailAddress">Email Address</Label>
<InputField <TextInputField
@bind-Value="Request.Email" @bind-Value="Request.Email"
id="emailAddress" id="emailAddress"
Type="email" Type="email"

View File

@@ -23,7 +23,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="keyName">Name</Label> <Label for="keyName">Name</Label>
<InputField @bind-Value="Request.Name" id="keyName" placeholder="My API key" /> <TextInputField @bind-Value="Request.Name" id="keyName" placeholder="My API key" />
</div> </div>
<div class="grid gap-2"> <div class="grid gap-2">

View File

@@ -27,7 +27,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="roleName">Name</Label> <Label for="roleName">Name</Label>
<InputField <TextInputField
@bind-Value="Request.Name" @bind-Value="Request.Name"
id="roleName" id="roleName"
placeholder="My fancy role"/> placeholder="My fancy role"/>

View File

@@ -25,7 +25,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="username">Username</Label> <Label for="username">Username</Label>
<InputField <TextInputField
@bind-Value="Request.Username" @bind-Value="Request.Username"
id="username" id="username"
placeholder="Name of the user"/> placeholder="Name of the user"/>
@@ -33,7 +33,7 @@
<div class="grid gap-2"> <div class="grid gap-2">
<Label for="emailAddress">Email Address</Label> <Label for="emailAddress">Email Address</Label>
<InputField <TextInputField
@bind-Value="Request.Email" @bind-Value="Request.Email"
id="emailAddress" id="emailAddress"
Type="email" Type="email"

View File

@@ -42,7 +42,7 @@
<div class="grid grid-cols-1 lg:grid-cols-3 gap-5"> <div class="grid grid-cols-1 lg:grid-cols-3 gap-5">
<div class="col-span-1 grid gap-3"> <div class="col-span-1 grid gap-3">
<Label for="instance-name">Instance Name</Label> <Label for="instance-name">Instance Name</Label>
<InputField id="instance-name" /> <TextInputField id="instance-name" />
</div> </div>
</div> </div>
</CardContent> </CardContent>

View File

@@ -1,7 +1,11 @@
@using LucideBlazor @using LucideBlazor
@using Moonlight.Shared.Http.Responses.Admin @using Moonlight.Shared.Http.Responses.Admin
@using ShadcnBlazor.Cards
@using ShadcnBlazor.Emptys @using ShadcnBlazor.Emptys
@using ShadcnBlazor.Buttons
@using ShadcnBlazor.Extras.Common @using ShadcnBlazor.Extras.Common
@using ShadcnBlazor.Fields
@using ShadcnBlazor.Selects
@inject HttpClient HttpClient @inject HttpClient HttpClient
@@ -11,6 +15,57 @@
{ {
if (StatusDto.IsReachable) if (StatusDto.IsReachable)
{ {
<div class="grid grid-cols-1 lg:grid-cols-2 gap-5">
<Card ClassName="col-span-1">
<CardHeader>
<CardTitle>Version</CardTitle>
</CardHeader>
<CardContent>
<FieldGroup>
<FieldSet>
<FieldLegend>Update instance</FieldLegend>
<FieldDescription>
Select the version you want to update to
</FieldDescription>
<Field>
<FieldLabel>
Version
</FieldLabel>
<Select DefaultValue="Testy">
<SelectTrigger>
<SelectValue/>
</SelectTrigger>
<SelectContent>
<SelectItem Value="Testy">Testy</SelectItem>
</SelectContent>
</Select>
</Field>
</FieldSet>
<Field Orientation="FieldOrientation.Horizontal">
<Button>Apply</Button>
</Field>
</FieldGroup>
</CardContent>
</Card>
<Card ClassName="col-span-1">
<CardHeader>
<CardTitle>Plugins</CardTitle>
</CardHeader>
<CardContent>
<Empty>
<EmptyHeader>
<EmptyMedia Variant="EmptyMediaVariant.Icon">
<SearchIcon />
</EmptyMedia>
<EmptyTitle>No Plugins found</EmptyTitle>
<EmptyDescription>
No plugins found in instance configuration
</EmptyDescription>
</EmptyHeader>
</Empty>
</CardContent>
</Card>
</div>
} }
else else
{ {

View File

@@ -55,7 +55,7 @@
<div class="grid grid-cols-1 lg:grid-cols-2 gap-5"> <div class="grid grid-cols-1 lg:grid-cols-2 gap-5">
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeName">Name</Label> <Label for="themeName">Name</Label>
<InputField <TextInputField
@bind-Value="Request.Name" @bind-Value="Request.Name"
id="themeName" id="themeName"
placeholder="My cool theme"/> placeholder="My cool theme"/>
@@ -63,7 +63,7 @@
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeVersion">Version</Label> <Label for="themeVersion">Version</Label>
<InputField <TextInputField
@bind-Value="Request.Version" @bind-Value="Request.Version"
id="themeVersion" id="themeVersion"
Type="text" Type="text"
@@ -72,7 +72,7 @@
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeAuthor">Author</Label> <Label for="themeAuthor">Author</Label>
<InputField <TextInputField
@bind-Value="Request.Author" @bind-Value="Request.Author"
id="themeAuthor" id="themeAuthor"
Type="text" Type="text"

View File

@@ -59,7 +59,7 @@
<div class="grid grid-cols-1 lg:grid-cols-2 gap-5"> <div class="grid grid-cols-1 lg:grid-cols-2 gap-5">
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeName">Name</Label> <Label for="themeName">Name</Label>
<InputField <TextInputField
@bind-Value="Request.Name" @bind-Value="Request.Name"
id="themeName" id="themeName"
placeholder="My cool theme"/> placeholder="My cool theme"/>
@@ -67,7 +67,7 @@
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeVersion">Version</Label> <Label for="themeVersion">Version</Label>
<InputField <TextInputField
@bind-Value="Request.Version" @bind-Value="Request.Version"
id="themeVersion" id="themeVersion"
Type="text" Type="text"
@@ -76,7 +76,7 @@
<div class="col-span-1 grid gap-2"> <div class="col-span-1 grid gap-2">
<Label for="themeAuthor">Author</Label> <Label for="themeAuthor">Author</Label>
<InputField <TextInputField
@bind-Value="Request.Author" @bind-Value="Request.Author"
id="themeAuthor" id="themeAuthor"
Type="text" Type="text"