Files
lmxopcua/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Shared/Drivers/DriverFormShell.razor
T
Joseph Doherty ec652f6bde ui(adminui): group driver/acl shared button pairs, adopt notice-alert + tree-twist
Sweep task 5 (Shared/Drivers + Acls):
- btn-group the Save/Cancel pair in DriverFormShell (all 13 driver forms),
  CollectionEditor foot + per-row Edit/Delete, DriverConfigModal /
  DeviceModal / DriverTagPicker / AclScopePickerModal feet,
  DriverStatusPanel Reconnect+Restart and its inline restart confirm,
  and the Refresh+Close browse toolbars on the FOCAS/AbCip/TwinCAT pickers.
- Replace the no-op inline border-color:var(--alert) tint with .notice-alert
  in DriverFormShell, DriverConfigModal, DeviceModal, MqttDriverForm,
  MTConnectDriverForm, MqttDeviceForm.
- Replace inline style="width:18px" expander sizing with .tree-twist in
  DriverBrowseTree and AclScopeTree.

Markup only — every @onclick, binding, disabled and arm->confirm flow is
unchanged.
2026-08-10 16:32:47 -04:00

37 lines
1.3 KiB
Plaintext

@* Shared shell for driver edit/new pages — panel layout + Save/Cancel/Delete bar + error banner.
The parent page owns the <EditForm> — this shell only renders the button bar. *@
<div>
@ChildContent
@if (!string.IsNullOrWhiteSpace(Error))
{
<div class="panel notice notice-alert mt-3">@Error</div>
}
<div class="mt-3 d-flex gap-2">
<div class="btn-group" role="group">
<button type="submit" class="btn btn-primary" disabled="@Busy">
@if (Busy) { <span class="spinner-border spinner-border-sm me-1"></span> }
@(IsNew ? "Create" : "Save changes")
</button>
<a href="@CancelHref" class="btn btn-outline-secondary">Cancel</a>
</div>
@if (OnDelete.HasValue)
{
<button type="button" class="btn btn-outline-danger ms-auto" @onclick="OnDelete.Value" disabled="@Busy">
Delete
</button>
}
</div>
</div>
@code {
[Parameter] public bool IsNew { get; set; }
[Parameter] public bool Busy { get; set; }
[Parameter] public string? Error { get; set; }
[Parameter, EditorRequired] public string CancelHref { get; set; } = "";
[Parameter] public EventCallback? OnDelete { get; set; }
[Parameter] public RenderFragment? ChildContent { get; set; }
}