103 lines
4.7 KiB
Plaintext

@page "/users"
@using UserService.Infrastructure.DataModels
@inherits UsersBase
<h1>List of all users</h1>
@if (Members == null)
{
<p>
<em>Loading...</em>
</p>
}
else
{
<TextEdit Placeholder="Search" Size="Size.Large" @bind-Text="@CustomFilterValue" />
<DataGrid
TItem="User"
RowSelectable="@(u => false)"
CustomFilter="@OnCustomFilter"
Sortable="true"
Editable="true"
EditMode="DataGridEditMode.Inline"
RowRemoving="RowDeletingCallback"
Data="@Members"
RowInserted="RowInsertedCallback"
RowInserting="RowInsertingCallback"
RowUpdating="RowUpdatingCallback">
<DataGridCommandColumn TItem="User">
<NewCommandTemplate>
<Button Color="Color.Success" Clicked="@context.Clicked" title="Create user">
<i class="fa fa-user-plus"></i>
</Button>
</NewCommandTemplate>
<EditCommandTemplate>
<Button Color="Color.Primary" Clicked="@context.Clicked" title="Edit user">
<i class="fa fa-user-edit"></i>
</Button>
</EditCommandTemplate>
<DeleteCommandTemplate>
<Button Color="Color.Danger" Clicked="@context.Clicked" title="Delete user">
<i class="fa fa-user-minus"></i>
</Button>
</DeleteCommandTemplate>
<SaveCommandTemplate>
<Button Color="Color.Success" Clicked="@context.Clicked" title="Save user">
<i class="fas fa-save"></i>
</Button>
</SaveCommandTemplate>
<CancelCommandTemplate>
<Button Color="Color.Danger" Clicked="@context.Clicked" title="Cancel editing">
<i class="far fa-times-circle"></i>
</Button>
</CancelCommandTemplate>
</DataGridCommandColumn>
<DataGridColumn TItem="User" Field="@nameof(User.Id)" Caption="#" Sortable="false" />
<DataGridColumn TItem="User" Field="@nameof(User.CommonName)" Caption="CN" CellsEditableOnEditCommand="false" Editable="true">
<EditTemplate>
<Validation Validator="@ValidateCommonName">
<TextEdit Placeholder="Enter common name" Text="@((string)(((CellEditContext)context).CellValue))" TextChanged="@(v=>((CellEditContext)context).CellValue=v)">
<Feedback>
<ValidationSuccess></ValidationSuccess>
<ValidationError>Please enter a valid common name!</ValidationError>
</Feedback>
</TextEdit>
</Validation>
</EditTemplate>
</DataGridColumn>
<DataGridColumn TItem="User" Field="@nameof(User.FirstName)" Caption="First Name" Editable="true" />
<DataGridColumn TItem="User" Field="@nameof(User.LastName)" Caption="Last Name" Editable="true"/>
<DataGridColumn TItem="User" Field="@nameof(User.EMail)" Caption="EMail" Editable="true">
<EditTemplate>
<Validation Validator="@ValidateEmail">
<TextEdit Placeholder="Enter email" Text="@((string)(((CellEditContext)context).CellValue))" TextChanged="@(v=>((CellEditContext)context).CellValue=v)">
<Feedback>
<ValidationNone>Please enter the email.</ValidationNone>
<ValidationSuccess>Email is ok.</ValidationSuccess>
<ValidationError>Enter valid email!</ValidationError>
</Feedback>
</TextEdit>
</Validation>
</EditTemplate>
</DataGridColumn>
<DataGridSelectColumn TItem="User" Field="@nameof(User.ParentId)" Caption="Parent" Editable="true">
<DisplayTemplate>
@{
var name = ((User) context ).Parent?.CommonName ?? "-";
@name
}
</DisplayTemplate>
<EditTemplate>
<Select TValue="int?" SelectedValue="@((int?)(context.CellValue))" SelectedValueChanged="@(v => context.CellValue = v)" >
@foreach (var item in OrganizationUnits ?? Enumerable.Empty<OrganizationUnit>())
{
<SelectItem TValue="int" Value="@(item.Id)">@item.CommonName</SelectItem>
}
</Select>
</EditTemplate>
</DataGridSelectColumn>
<DataGridCheckColumn TItem="User" Field="@nameof(User.IsActive)" Caption="Active" Editable="true" />
</DataGrid>
}