Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
@using AXSharp.Connector;
@using AXSharp.Connector;
@using System.Reflection
@using AXSharp.Connector.ValueTypes

<div class="accordion-item">
<div class="accordion-button @(IsExpanded ? "active" : null) flex flex-wrap items-center p-0!">
<div class="flex-1 flex flex-wrap items-center" @onclick="() => IsExpanded = !IsExpanded">
<Operon.Icons.HeroIcon Icon="cube" Type="Operon.Icons.IconType.Outline" Class="size-5 me-2" />
<div class="flex-1 flex flex-wrap items-center px-2 gap-2" @onclick="() => IsExpanded = !IsExpanded">
@if (!Parent.CurrentView.IsWatchTable)
{
<div class="p-2 cursor-pointer" @onclick="() => Parent.AddItemAsync(SourceTwinElement)">
<Operon.Icons.HeroIcon Icon="plus" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</div>
}
<p>@SourceTwinElement.Symbol</p>
<button class="ms-auto cursor-pointer">
<Operon.Icons.HeroIcon Icon="chevron-down" Type="Operon.Icons.IconType.Outline" Class="@("size-5 icon-button-rotate " + (IsExpanded ? "rotated" : null))" />
</button>
</div>
@if (!Parent.CurrentView.IsWatchTable)
{
<div class="p-2 cursor-pointer" @onclick="() => Parent.AddItemAsync(SourceTwinElement)">
<Operon.Icons.HeroIcon Icon="plus" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</div>
}
</div>
@if (IsExpanded)
{
Expand All @@ -32,13 +31,12 @@
else if (kid is ITwinPrimitive prim)
{

<div class="flex flex-wrap items-center mx-4 gap-2">
<Operon.Icons.HeroIcon Icon="credit-card" Type="Operon.Icons.IconType.Outline" Class="size-5" />
<p class="truncate">@prim.Symbol</p>
<p class="ms-auto">@(((dynamic)kid).Cyclic)</p>
<div class="flex flex-wrap items-center mx-4 gap-4">
<a @onclick="() => Parent.AddItemAsync(prim)">
<Operon.Icons.HeroIcon Icon="plus" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</a>
<p class="truncate">@prim.Symbol</p>
<p class="ms-auto">@(((dynamic)kid).Cyclic)</p>
</div>
}
}
Expand All @@ -55,4 +53,4 @@
public VisualComposerContainer Parent { get; set; }

private bool IsExpanded { get; set; } = false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
{
<div onpointermove="event.preventDefault()" onpointerleave="event.preventDefault()" class="w-full h-full">
<div @onpointermove="Move"
@onpointerup="Up"
@onpointerleave="Leave" class="w-full h-full">
<ZoomableContainer Parent="this" Disable="!CurrentView.AllowZoomingAndPanning" Guid="_backgroundId">
@* <div id="@_backgroundId" class="w-full h-full">
Expand Down Expand Up @@ -177,6 +178,12 @@
<div class="modal-body">
<div class="flex flex-wrap items-center">
<BaseInput @bind-Value="_searchValue" Placeholder="Search" Class="flex-1" />
<select class="select w-auto" value="@_controllerObjectsFilterMode" @onchange="@((args) => _controllerObjectsFilterMode = Enum.Parse<FilterMode>((string)args.Value))">
@foreach (var mode in Enum.GetValues(typeof(FilterMode)).Cast<FilterMode>())
{
<option value="@mode">@mode.ToDisplayString()</option>
}
</select>
@if (!string.IsNullOrEmpty(_searchValue))
{
<div class="mx-2 cursor-pointer" @onclick="ToggleControllerObjectsSort">
Expand All @@ -196,37 +203,33 @@
}
else
{
@foreach (var item in _searchResult)
@foreach (var item in GetPagedSearchResult())
{
@if (!CurrentView.IsWatchTable || item is ITwinPrimitive)
{
<div class="flex flex-wrap items-center mx-4 gap-2">
@if (item is ITwinObject)
{
<Operon.Icons.HeroIcon Icon="cube" Type="Operon.Icons.IconType.Outline" Class="size-5" />
}
else if (item is ITwinPrimitive)
{
<Operon.Icons.HeroIcon Icon="credit-card" Type="Operon.Icons.IconType.Outline" Class="size-5" />
}
<div class="flex flex-wrap items-center mx-4 gap-4">
<a @onclick="() => AddItemAsync(item)">
<Operon.Icons.HeroIcon Icon="plus" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</a>

<p class="truncate me-auto">@item.Symbol</p>
@if (item is ITwinPrimitive)
{
<p>@(((dynamic)item).Cyclic)</p>
}
<a @onclick="() => AddItemAsync(item)">
<Operon.Icons.HeroIcon Icon="plus" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</a>
</div>
}
}
@if (_searchResultTotalCount > 0)
{
<Pagination Count="@_searchResultTotalCount" @bind-Selected="_searchResultPage" @bind-PageSize="_searchResultPageSize" ShowPages="true" ShowShowing="true" ShowPageSize="true" />
}
}
</div>
<div class="modal-footer flex justify-end gap-1 items-center">
<div class="btn-group">
<button class="btn @(_useOption ? "btn-primary" : "btn-outline-primary")" @onclick="() => _useOption = !_useOption">Options</button>
<button class="btn btn-outline-primary" @onclick="() => _modalControllerObjectsOptions.Toggle()">
<button class="btn @(_useOption ? "btn-primary" : "btn-outline-primary")" @onclick="async () => { _useOption = !_useOption; await SaveOptionsAsync(); }">Options</button>
<button class="btn btn-outline-primary" @onclick="async () => { _modalControllerObjectsOptions.Toggle(); await LoadOptionsAsync(); }">
<Operon.Icons.HeroIcon Icon="chevron-left" Type="Operon.Icons.IconType.Outline" Class="size-5" />
</button>
</div>
Expand All @@ -237,7 +240,7 @@
<Modal @ref="_modalControllerObjectsOptions">
<div class="modal-header">
<h4>Controller objects options</h4>
<button class="cursor-pointer ms-auto my-auto" @onclick="() => _modalControllerObjectsOptions.CloseModal()">
<button class="cursor-pointer ms-auto my-auto" @onclick="async () => { _modalControllerObjectsOptions.CloseModal(); await SaveOptionsAsync(); }">
<Operon.Icons.HeroIcon Icon="x-mark" Type="Operon.Icons.IconType.Outline" Class="size-6" />
</button>
</div>
Expand Down Expand Up @@ -330,7 +333,7 @@
<BaseInput @bind-Value="_options.PollingInterval" Label="PollingInterval [ms]" />
</div>
<div class="modal-footer flex justify-end gap-1 items-center">
<button class="btn btn-outline-red" @onclick="() => _modalControllerObjectsOptions.CloseModal()">Close</button>
<button class="btn btn-outline-red" @onclick="async () => { _modalControllerObjectsOptions.CloseModal(); await SaveOptionsAsync(); }">Close</button>
</div>
</Modal>

Expand Down
Loading
Loading