@page "/design/templates/{Id:int}" @using ZB.MOM.WW.ScadaBridge.Security @using ZB.MOM.WW.ScadaBridge.Commons.Entities.Instances @using ZB.MOM.WW.ScadaBridge.Commons.Entities.Templates @using ZB.MOM.WW.ScadaBridge.Commons.Entities.Sites @using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Repositories @using ZB.MOM.WW.ScadaBridge.Commons.Types.Enums @using ZB.MOM.WW.ScadaBridge.TemplateEngine @using ZB.MOM.WW.ScadaBridge.TemplateEngine.Services @using ZB.MOM.WW.ScadaBridge.TemplateEngine.Validation @attribute [Authorize(Policy = AuthorizationPolicies.RequireDesign)] @inject ITemplateEngineRepository TemplateEngineRepository @inject ICentralUiRepository CentralUiRepository @inject TemplateService TemplateService @inject ZB.MOM.WW.ScadaBridge.CentralUI.ScriptAnalysis.ScriptAnalysisService AnalysisService @inject AuthenticationStateProvider AuthStateProvider @inject NavigationManager NavigationManager @inject IDialogService Dialog
@_baseTemplate.Name
@if (_ownerTemplate != null && _ownerComposition != null)
{
— composed inside @QualifiedTemplateName(_ownerTemplate) as @_ownerComposition.InstanceName.
}
| Name | Type | Value | Data Source | Lock | @if (derived) {Source | } else {Lock in derived | }Actions |
|---|---|---|---|---|---|---|---|
| @attr.Name | @attr.DataType | @(effectiveValue ?? "—") | @(effectiveDataSource ?? "—") | @if (attr.IsLocked) { Locked } else { Unlocked } | @if (derived) {@if (lockedByBase) { 🔒 Base-locked } else if (attr.IsInherited) { Inherited } else if (baseAttr != null) { Override } else { Local } | } else {
ToggleAttrLockedInDerived(attr, e)" />
|
}
|
| Name | Trigger | Priority | Config | Lock | Actions |
|---|---|---|---|---|---|
| @alarm.Name | @alarm.TriggerType | @alarm.PriorityLevel | @(alarm.TriggerConfiguration ?? "—") | @if (alarm.IsLocked) { Locked } else { Unlocked } |
|
Read-only mirror of alarms from an OPC UA Alarms & Conditions server or the MxAccess Gateway. Discovered at runtime and shown live in the Debug View — no ack-back.
@if (_showNativeSourceForm) { var editing = _editNativeSourceId.HasValue;No native alarm sources defined.
} else {| Name | Connection | Source Reference | Filter | Lock | Actions |
|---|---|---|---|---|---|
| @src.Name | @src.ConnectionName | @src.SourceReference | @(string.IsNullOrEmpty(src.ConditionFilter) ? "—" : src.ConditionFilter) | @if (src.IsLocked) { Locked } else { Unlocked } |
|
| Name | Trigger | Code (preview) | Lock | @if (derivedScripts) {Source | } else {Lock in derived | }Actions |
|---|---|---|---|---|---|---|
| @script.Name | @(script.TriggerType ?? "—") | @effectiveCode[..Math.Min(80, effectiveCode.Length)]@(effectiveCode.Length > 80 ? "..." : "") | @if (script.IsLocked) { Locked } else { Unlocked } | @if (derivedScripts) {@if (lockedByBase) { 🔒 Base-locked } else if (script.IsInherited) { Inherited } else if (baseScript != null) { Override } else { Local } | } else {
ToggleScriptLockedInDerived(script, e)" />
|
}
|