diff --git a/.gitignore b/.gitignore index 05bfcc3..878aae1 100644 --- a/.gitignore +++ b/.gitignore @@ -229,6 +229,9 @@ _pkginfo.txt # but keep track of directories ending in .cache !?*.[Cc]ache/ +##sln +*.sln + # Others ClientBin/ ~$* diff --git a/SiemensIXBlazor.sln b/SiemensIXBlazor.sln index 1d52acf..ba13dae 100644 --- a/SiemensIXBlazor.sln +++ b/SiemensIXBlazor.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.4.33205.214 diff --git a/SiemensIXBlazor/Components/CategoryFilter/CategoryFilter.razor.cs b/SiemensIXBlazor/Components/CategoryFilter/CategoryFilter.razor.cs index 60da13b..05815ed 100644 --- a/SiemensIXBlazor/Components/CategoryFilter/CategoryFilter.razor.cs +++ b/SiemensIXBlazor/Components/CategoryFilter/CategoryFilter.razor.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using Newtonsoft.Json; +using SiemensIXBlazor.Enums.CategoryFilter; using SiemensIXBlazor.Interops; using SiemensIXBlazor.Objects; using System.Text.Json; @@ -24,6 +25,7 @@ public partial class CategoryFilter private string[] _suggestions = []; private Lazy>? moduleTask; private BaseInterop? _interop; + private LogicalFilterOperator _logicalFilterOperator = LogicalFilterOperator.Equal; [Parameter, EditorRequired] public string Id { get; set; } = string.Empty; @@ -41,8 +43,12 @@ public FilterState? FilterState get => _filterState; set { - _filterState = value; - InitialParameter("setFilterState", _filterState); + if(value is not null) + { + _filterState = value; + InitialParameter("setFilterState", _filterState); + } + } } [Parameter] @@ -80,6 +86,15 @@ public string[]? Suggestions InitialParameter("setSuggestions", new Dictionary { { "suggestions", _suggestions } }); } } + + [Parameter] + public LogicalFilterOperator StaticOperator { + get=>_logicalFilterOperator; + set { + + _logicalFilterOperator = value; + InitialParameter("setStaticOperator", _logicalFilterOperator.ToEnumString()); + } } [Parameter] public EventCallback FilterChangedEvent { get; set; } [Parameter] @@ -130,5 +145,6 @@ private void InitialParameter(string functionName, object param) } }); } + } } diff --git a/SiemensIXBlazor/Enums/CategoryFilter/LogicalFilterEnumExtension.cs b/SiemensIXBlazor/Enums/CategoryFilter/LogicalFilterEnumExtension.cs new file mode 100644 index 0000000..5656729 --- /dev/null +++ b/SiemensIXBlazor/Enums/CategoryFilter/LogicalFilterEnumExtension.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SiemensIXBlazor.Enums.CategoryFilter +{ + public static class LogicalFilterEnumExtension + { + public static string ToEnumString(this LogicalFilterOperator filter) + { + return filter switch + { + LogicalFilterOperator.Equal => "Equal", + LogicalFilterOperator.NotEqual => "Not equal", + _ => throw new ArgumentOutOfRangeException(nameof(filter), filter, null) + }; + } + } +} diff --git a/SiemensIXBlazor/Enums/CategoryFilter/LogicalFiterOperator.cs b/SiemensIXBlazor/Enums/CategoryFilter/LogicalFiterOperator.cs new file mode 100644 index 0000000..31a36fa --- /dev/null +++ b/SiemensIXBlazor/Enums/CategoryFilter/LogicalFiterOperator.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SiemensIXBlazor.Enums.CategoryFilter +{ + public enum LogicalFilterOperator + { + Equal, + NotEqual + } +} diff --git a/SiemensIXBlazor/SiemensIXBlazor.csproj b/SiemensIXBlazor/SiemensIXBlazor.csproj index db01cfc..58cdd9f 100644 --- a/SiemensIXBlazor/SiemensIXBlazor.csproj +++ b/SiemensIXBlazor/SiemensIXBlazor.csproj @@ -65,7 +65,6 @@ - diff --git a/SiemensIXBlazor/wwwroot/js/siemens-ix/interops/categoryFilterInterop.js b/SiemensIXBlazor/wwwroot/js/siemens-ix/interops/categoryFilterInterop.js index e8f519c..f7fe765 100644 --- a/SiemensIXBlazor/wwwroot/js/siemens-ix/interops/categoryFilterInterop.js +++ b/SiemensIXBlazor/wwwroot/js/siemens-ix/interops/categoryFilterInterop.js @@ -54,3 +54,15 @@ export function setSuggestions(id, suggestionsObject) { console.error("Failed to set suggestions:", error); } } + +export function setStaticOperator(id, logicalFilter) { + try { + const element = document.getElementById(id); + if (!element) { + throw new Error(`Element with ID ${id} not found`); + } + element.staticOperator = JSON.parse(logicalFilter); + } catch (err) { + console.error("Failed on setting staticOperator", err); + } +}