diff --git a/Seenginx/Components/FilesWithEditor.razor b/Seenginx/Components/FilesWithEditor.razor index 2a26c00..052a937 100644 --- a/Seenginx/Components/FilesWithEditor.razor +++ b/Seenginx/Components/FilesWithEditor.razor @@ -4,7 +4,13 @@
-
+
+
+ + + + +
- - - -

diff --git a/Seenginx/Components/FilesWithEditor.razor.cs b/Seenginx/Components/FilesWithEditor.razor.cs index 8046a36..201d5e9 100644 --- a/Seenginx/Components/FilesWithEditor.razor.cs +++ b/Seenginx/Components/FilesWithEditor.razor.cs @@ -18,9 +18,7 @@ namespace Seenginx.Components [Parameter] public List Filters { get; set; } = new List(); [Parameter] - public List FilteredOutFiles { get; set; } = new List(); - [Parameter] - public EventCallback ApplyFilter { get; set; } + public Dictionary FilterFolder { get; set; } = new Dictionary(); [Parameter] public EventCallback AddFile { get; set; } @@ -42,6 +40,7 @@ namespace Seenginx.Components public RenderFragment DeleteDialog { get; set; } protected string SelectedFilter { get; set; } + protected string SearchInput { get; set; } protected bool IsAnyFileSelected => SelectedFile != default; @@ -58,26 +57,69 @@ namespace Seenginx.Components protected async Task OnFilterClick(string filter) { - await ApplyFilter.InvokeAsync(filter); - //for (int index = 0; index < Files.Count; index++) - // if (FilteredOutFiles.Contains(index)) - // Files[index].Hide(); - // else - // Files[index].Unhide(); + SelectedFilter = filter; + SearchFile(); } protected async Task SearchInputChanged(string searchInput) { - if (string.IsNullOrEmpty(searchInput)) - Files.ForEach(f => f.Unhide()); + SearchInput = searchInput; + SearchFile(); + } + + private void SearchFile() + { + if (string.IsNullOrEmpty(SearchInput)) + { + if (SelectedFilter == "All") + Files.ForEach(f => f.Unhide()); + else if (SelectedFilter == "Root") + Files.ForEach(f => + { + if (f.Folder == FilterFolder[SelectedFilter]) + f.Unhide(); + else + f.Hide(); + }); + else + Files.ForEach(f => + { + if (f.Folder.Contains(FilterFolder[SelectedFilter])) + f.Unhide(); + else + f.Hide(); + }); + } else - Files.ForEach(f => - { - if (f.Name.ToLower().Contains(searchInput.ToLower())) - f.Unhide(); - else - f.Hide(); - }); + { + if (SelectedFilter == "All") + Files.ForEach(f => { if (f.Name.ToLower().Contains(SearchInput)) f.Unhide(); else f.Hide(); }); + else if (SelectedFilter == "Root") + Files.ForEach(f => + { + if (f.Folder == FilterFolder[SelectedFilter]) + f.Unhide(); + else + f.Hide(); + }); + else + Files.ForEach(f => + { + if (f.Folder.Contains(FilterFolder[SelectedFilter])) + f.Unhide(); + else + f.Hide(); + }); + //Files.ForEach(f => f.Unhide()); + //else + // Files.ForEach(f => + // { + // if (f.Name.ToLower().Contains(searchInput.ToLower())) + // f.Unhide(); + // else + // f.Hide(); + // }); + } } protected async Task OnFileClick(MouseEventArgs e, CFile file) diff --git a/Seenginx/Pages/Nginx.razor b/Seenginx/Pages/Nginx.razor index d2f1760..3a47d09 100644 --- a/Seenginx/Pages/Nginx.razor +++ b/Seenginx/Pages/Nginx.razor @@ -2,8 +2,8 @@ @page "/nginx" - diff --git a/Seenginx/Pages/Nginx.razor.cs b/Seenginx/Pages/Nginx.razor.cs index 60d6049..4ca6575 100644 --- a/Seenginx/Pages/Nginx.razor.cs +++ b/Seenginx/Pages/Nginx.razor.cs @@ -23,7 +23,7 @@ namespace Seenginx.Pages public List Filters { get; set; } = new List(); public List FilteredOutFiles { get; set; } = new List(); - private Dictionary FilterFolder { get; set; } = new Dictionary(); + public Dictionary FilterFolder { get; set; } = new Dictionary(); protected override async Task OnInitializedAsync() { @@ -37,28 +37,6 @@ namespace Seenginx.Pages await base.OnInitializedAsync(); } - public async Task ApplyFilter(string filter) - { - if (filter == "All") - ConfigFiles.ForEach(f => f.Unhide()); - else if (filter == "Root") - ConfigFiles.ForEach(f => - { - if (f.Folder == FilterFolder[filter]) - f.Unhide(); - else - f.Hide(); - }); - else - ConfigFiles.ForEach(f => - { - if (f.Folder.Contains(FilterFolder[filter])) - f.Unhide(); - else - f.Hide(); - }); - } - public async Task SelectedFileChanged(ConfigFile configFile) { SelectedFile = configFile;