98 lines
3.8 KiB
Plaintext
98 lines
3.8 KiB
Plaintext
@implements IDisposable
|
|
<div class="d-flex w-100 h-100 flex-column">
|
|
<EditForm EditContext="EditContext">
|
|
<DataAnnotationsValidator />
|
|
<div class="row g-2 mb-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Very Slow (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedVerySlow" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedVerySlow)" />
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Slow (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedSlow" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedSlow)" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-2 mb-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Normal (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedNormal" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedNormal)" />
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Medium (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedMedium" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedMedium)" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-2 mb-2">
|
|
<div class="col-6">
|
|
<label class="form-label">Optimal (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedOptimal" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedOptimal)" />
|
|
</div>
|
|
<div class="col-6">
|
|
<label class="form-label">Fast (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedFast" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedFast)" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-2">
|
|
<label class="form-label">Very Fast (m/s)</label>
|
|
<InputNumber class="form-control" @bind-Value="Model.SafetySpeedVeryFast" />
|
|
<ValidationMessage For="@(() => Model.SafetySpeedVeryFast)" />
|
|
</div>
|
|
|
|
<div class="mb-2">
|
|
<label class="form-label">Description</label>
|
|
<InputTextArea class="form-control" @bind-Value="Model.Description" />
|
|
<ValidationMessage For="@(() => Model.Description)" />
|
|
</div>
|
|
</EditForm>
|
|
<div class="flex-grow-1" />
|
|
<div>
|
|
@if (Model.CreatedAt != default || Model.UpdatedAt != default)
|
|
{
|
|
<div class="d-flex justify-content-end mt-2">
|
|
<small class="text-muted">Created: @Model.CreatedAt.ToString("dd/MM/yyyy HH:mm:ss")</small>
|
|
<small class="text-muted ms-3">Updated: @Model.UpdatedAt.ToString("dd/MM/yyyy HH:mm:ss")</small>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@code {
|
|
[Parameter]
|
|
public RobotSafetyConfigDto Model { get; set; } = new();
|
|
|
|
[Parameter]
|
|
public EventCallback<RobotSafetyConfigDto> ModelChanged { get; set; }
|
|
|
|
private EditContext? EditContext;
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
if (EditContext is null || !EditContext.Model!.Equals(Model))
|
|
{
|
|
if (EditContext is not null) EditContext.OnFieldChanged -= EditContext_OnFieldChanged;
|
|
EditContext = new EditContext(Model);
|
|
EditContext.OnFieldChanged += EditContext_OnFieldChanged;
|
|
}
|
|
}
|
|
|
|
private void EditContext_OnFieldChanged(object? sender, FieldChangedEventArgs e)
|
|
{
|
|
_ = ModelChanged.InvokeAsync(Model);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if (EditContext is not null) EditContext.OnFieldChanged -= EditContext_OnFieldChanged;
|
|
}
|
|
}
|