Skip to content

Commit 0c367b5

Browse files
authored
Merge pull request #110 from ofaruk84/ix-implement-filter-logic
IX: Implement optional filter logic
2 parents 8ec31e7 + aff5307 commit 0c367b5

File tree

7 files changed

+69
-4
lines changed

7 files changed

+69
-4
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ _pkginfo.txt
229229
# but keep track of directories ending in .cache
230230
!?*.[Cc]ache/
231231

232+
##sln
233+
*.sln
234+
232235
# Others
233236
ClientBin/
234237
~$*

SiemensIXBlazor.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.4.33205.214

SiemensIXBlazor/Components/CategoryFilter/CategoryFilter.razor.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using Microsoft.AspNetCore.Components;
1111
using Microsoft.JSInterop;
1212
using Newtonsoft.Json;
13+
using SiemensIXBlazor.Enums.CategoryFilter;
1314
using SiemensIXBlazor.Interops;
1415
using SiemensIXBlazor.Objects;
1516
using System.Text.Json;
@@ -24,6 +25,7 @@ public partial class CategoryFilter
2425
private string[] _suggestions = [];
2526
private Lazy<Task<IJSObjectReference>>? moduleTask;
2627
private BaseInterop? _interop;
28+
private LogicalFilterOperator _logicalFilterOperator = LogicalFilterOperator.Equal;
2729

2830
[Parameter, EditorRequired]
2931
public string Id { get; set; } = string.Empty;
@@ -41,8 +43,12 @@ public FilterState? FilterState
4143
get => _filterState;
4244
set
4345
{
44-
_filterState = value;
45-
InitialParameter("setFilterState", _filterState);
46+
if(value is not null)
47+
{
48+
_filterState = value;
49+
InitialParameter("setFilterState", _filterState);
50+
}
51+
4652
}
4753
}
4854
[Parameter]
@@ -80,6 +86,15 @@ public string[]? Suggestions
8086
InitialParameter("setSuggestions", new Dictionary<string, string[]> { { "suggestions", _suggestions } });
8187
}
8288
}
89+
90+
[Parameter]
91+
public LogicalFilterOperator StaticOperator {
92+
get=>_logicalFilterOperator;
93+
set {
94+
95+
_logicalFilterOperator = value;
96+
InitialParameter("setStaticOperator", _logicalFilterOperator.ToEnumString());
97+
} }
8398
[Parameter]
8499
public EventCallback<FilterState> FilterChangedEvent { get; set; }
85100
[Parameter]
@@ -130,5 +145,6 @@ private void InitialParameter(string functionName, object param)
130145
}
131146
});
132147
}
148+
133149
}
134150
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace SiemensIXBlazor.Enums.CategoryFilter
8+
{
9+
public static class LogicalFilterEnumExtension
10+
{
11+
public static string ToEnumString(this LogicalFilterOperator filter)
12+
{
13+
return filter switch
14+
{
15+
LogicalFilterOperator.Equal => "Equal",
16+
LogicalFilterOperator.NotEqual => "Not equal",
17+
_ => throw new ArgumentOutOfRangeException(nameof(filter), filter, null)
18+
};
19+
}
20+
}
21+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace SiemensIXBlazor.Enums.CategoryFilter
8+
{
9+
public enum LogicalFilterOperator
10+
{
11+
Equal,
12+
NotEqual
13+
}
14+
}

SiemensIXBlazor/SiemensIXBlazor.csproj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565

6666
<ItemGroup>
6767
<Folder Include="wwwroot\js\siemens-ix\" />
68-
<Folder Include="wwwroot\js\interops\" />
6968
<Folder Include="Components\KeyValueList\" />
7069
<Folder Include="Components\KeyValue\" />
7170
<Folder Include="Components\EmptyState\" />

SiemensIXBlazor/wwwroot/js/siemens-ix/interops/categoryFilterInterop.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,15 @@ export function setSuggestions(id, suggestionsObject) {
5454
console.error("Failed to set suggestions:", error);
5555
}
5656
}
57+
58+
export function setStaticOperator(id, logicalFilter) {
59+
try {
60+
const element = document.getElementById(id);
61+
if (!element) {
62+
throw new Error(`Element with ID ${id} not found`);
63+
}
64+
element.staticOperator = JSON.parse(logicalFilter);
65+
} catch (err) {
66+
console.error("Failed on setting staticOperator", err);
67+
}
68+
}

0 commit comments

Comments
 (0)