@@ -519,34 +591,51 @@
private RenderFragment RenderNodeLabel(TmplNode node) => __builder =>
{
- switch (node.Kind)
- {
- case TmplNodeKind.Folder:
-
📁
-
@node.Label
-
@node.Children.Count
- break;
- case TmplNodeKind.Template:
-
@node.Label
- if (node.Template?.ParentTemplateId is int pid)
- {
-
inherits @(_templates.FirstOrDefault(t => t.Id == pid)?.Name)
- }
-
- @node.Template!.Attributes.Count attr,
- @node.Template.Alarms.Count alm,
- @node.Template.Scripts.Count scr
-
- if (node.Template.Compositions.Count > 0)
- {
-
@node.Template.Compositions.Count comp
- }
- break;
- case TmplNodeKind.Composition:
-
@node.Label
-
→ @(_templates.FirstOrDefault(t => t.Id == node.Composition!.ComposedTemplateId)?.Name ?? $"#{node.Composition!.ComposedTemplateId}")
- break;
- }
+ var draggable = node.Kind != TmplNodeKind.Composition;
+ var isDropTarget = node.Kind == TmplNodeKind.Folder;
+ var classes = "d-inline-block " + (_dragOverKey == node.Key ? "bg-info bg-opacity-25" : "");
+ var style = node.Kind == TmplNodeKind.Composition && _dragPayload != null
+ ? "opacity: 0.5;" : "";
+
+
OnDragStart(node)"
+ @ondragend="OnDragEnd"
+ @ondragenter="() => OnDragEnter(node)"
+ @ondragleave="() => OnDragLeave(node)"
+ @ondragover:preventDefault="@isDropTarget"
+ @ondrop="() => OnDrop(node)">
+ @switch (node.Kind)
+ {
+ case TmplNodeKind.Folder:
+ 📁
+ @node.Label
+ @node.Children.Count
+ break;
+ case TmplNodeKind.Template:
+ @node.Label
+ if (node.Template?.ParentTemplateId is int pid)
+ {
+ inherits @(_templates.FirstOrDefault(t => t.Id == pid)?.Name)
+ }
+
+ @node.Template!.Attributes.Count attr,
+ @node.Template.Alarms.Count alm,
+ @node.Template.Scripts.Count scr
+
+ if (node.Template.Compositions.Count > 0)
+ {
+ @node.Template.Compositions.Count comp
+ }
+ break;
+ case TmplNodeKind.Composition:
+ var composedName = _templates.FirstOrDefault(t => t.Id == node.Composition!.ComposedTemplateId)?.Name
+ ?? $"#{node.Composition!.ComposedTemplateId}";
+ @node.Label
+ → @composedName
+ break;
+ }
+
};
private async Task OnTreeNodeSelected(object? key)