diff --git a/Caf.Midden.Wasm/Pages/Catalog.razor b/Caf.Midden.Wasm/Pages/Catalog.razor index a930e97..35061f6 100644 --- a/Caf.Midden.Wasm/Pages/Catalog.razor +++ b/Caf.Midden.Wasm/Pages/Catalog.razor @@ -22,7 +22,7 @@ - + diff --git a/Caf.Midden.Wasm/Pages/MetadataView.razor b/Caf.Midden.Wasm/Pages/MetadataView.razor index 7016299..6acbf40 100644 --- a/Caf.Midden.Wasm/Pages/MetadataView.razor +++ b/Caf.Midden.Wasm/Pages/MetadataView.razor @@ -1,5 +1,6 @@ @page "/catalog/{ZoneName}/{ProjectName}/{DatasetName}" @page "/datasets/{ZoneName}/{ProjectName}/{DatasetName}" +@page "/catalog/zones/{ZoneName}/projects/{ProjectName}/datasets/{DatasetName}" @inject Services.StateContainer State @inject NavigationManager NavManager @@ -16,17 +17,17 @@ - - @ZoneName + + @ZoneName - - @ProjectName + + @ProjectName - @DatasetName + @DatasetName diff --git a/Caf.Midden.Wasm/Pages/ProjectCatalog.razor b/Caf.Midden.Wasm/Pages/ProjectCatalog.razor index 2da8ae1..2d360af 100644 --- a/Caf.Midden.Wasm/Pages/ProjectCatalog.razor +++ b/Caf.Midden.Wasm/Pages/ProjectCatalog.razor @@ -1,4 +1,4 @@ -@page "/catalog/{ZoneName}/{ProjectName}" +@page "/catalog/projects/{ProjectName}" @inject Services.StateContainer State @@ -13,28 +13,20 @@ - - @ZoneName - - - - @ProjectName + @ProjectName
- - + +
@code { - [Parameter] - public string ZoneName { get; set; } - [Parameter] public string ProjectName { get; set; } } \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/Projects.razor b/Caf.Midden.Wasm/Pages/Projects.razor new file mode 100644 index 0000000..0e42f0b --- /dev/null +++ b/Caf.Midden.Wasm/Pages/Projects.razor @@ -0,0 +1,29 @@ +@page "/catalog/projects" +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + Projects + + + +
+ +

Coming soon...

+
+ + +@code { + +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/TagCatalog.razor b/Caf.Midden.Wasm/Pages/TagCatalog.razor new file mode 100644 index 0000000..28a2fe1 --- /dev/null +++ b/Caf.Midden.Wasm/Pages/TagCatalog.razor @@ -0,0 +1,32 @@ +@page "/catalog/tags/{TagName}" +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + @TagName + + + +
+ + + +
+ + +@code { + [Parameter] + public string TagName { get; set; } +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/Tags.razor b/Caf.Midden.Wasm/Pages/Tags.razor new file mode 100644 index 0000000..2a7c6f3 --- /dev/null +++ b/Caf.Midden.Wasm/Pages/Tags.razor @@ -0,0 +1,29 @@ +@page "/catalog/tags" +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + Tags + + + +
+ +

Coming soon...

+
+ + +@code { + +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/ZoneCatalog.razor b/Caf.Midden.Wasm/Pages/ZoneCatalog.razor index e81489a..73a96ef 100644 --- a/Caf.Midden.Wasm/Pages/ZoneCatalog.razor +++ b/Caf.Midden.Wasm/Pages/ZoneCatalog.razor @@ -1,4 +1,4 @@ -@page "/catalog/{ZoneName}" +@page "/catalog/zones/{ZoneName}" @inject Services.StateContainer State @@ -13,15 +13,16 @@ - @ZoneName + @ZoneName
- + Title="Dataset Catalog" + Subtitle="Filtered by zone" /> +
diff --git a/Caf.Midden.Wasm/Pages/ZoneProjectCatalog.razor b/Caf.Midden.Wasm/Pages/ZoneProjectCatalog.razor new file mode 100644 index 0000000..767f2c2 --- /dev/null +++ b/Caf.Midden.Wasm/Pages/ZoneProjectCatalog.razor @@ -0,0 +1,43 @@ +@page "/catalog/zones/{ZoneName}/projects/{ProjectName}" +@page "/catalog/zones/{ZoneName}/projects/{ProjectName}/datasets" + +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + + @ZoneName + + + + @ProjectName + + + +
+ + + +
+ + +@code { + [Parameter] + public string ProjectName { get; set; } + + [Parameter] + public string ZoneName { get; set; } +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/ZoneProjects.razor b/Caf.Midden.Wasm/Pages/ZoneProjects.razor new file mode 100644 index 0000000..bb79c08 --- /dev/null +++ b/Caf.Midden.Wasm/Pages/ZoneProjects.razor @@ -0,0 +1,36 @@ +@page "/catalog/zones/{ZoneName}/projects" +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + + @ZoneName + + + + Projects + + + +
+ +

Coming soon...

+
+ + +@code { + + [Parameter] + public string ZoneName { get; set; } +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Pages/Zones.razor b/Caf.Midden.Wasm/Pages/Zones.razor new file mode 100644 index 0000000..3527fe7 --- /dev/null +++ b/Caf.Midden.Wasm/Pages/Zones.razor @@ -0,0 +1,29 @@ +@page "/catalog/zones" +@inject Services.StateContainer State + + + + + + + + + + Catalog + + + + Zones + + + +
+ +

Coming soon...

+
+ + +@code { + +} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor b/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor deleted file mode 100644 index 13d2818..0000000 --- a/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor +++ /dev/null @@ -1,58 +0,0 @@ -@inject Caf.Midden.Wasm.Services.StateContainer State -@inject ModalService ModalService - -@if (State.Catalog != null) -{ - - - - - -} - -Datasets - -@if (FilteredMetadata != null) -{ - - @foreach (var metadata in FilteredMetadata) - { - - - - - @metadata.Dataset.Name - - - - - - - - @metadata.Dataset.Zone - / - - @metadata.Dataset.Project - - - - - @metadata.Dataset.Description - - - - @foreach (var tag in metadata.Dataset.Tags) - { - @tag - } - - - - } - -} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor.cs b/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor.cs deleted file mode 100644 index 005987f..0000000 --- a/Caf.Midden.Wasm/Shared/CatalogMetadataViewer.razor.cs +++ /dev/null @@ -1,105 +0,0 @@ -using AntDesign; -using Caf.Midden.Core.Models.v0_1; -using Caf.Midden.Wasm.Shared.Modals; -using Microsoft.AspNetCore.Components; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Caf.Midden.Wasm.Shared -{ - public partial class CatalogMetadataViewer : IDisposable - { - public List FilteredMetadata { get; set; } = new List(); - - public string SearchTerm { get; set; } - - protected override void OnInitialized() - { - State.StateChanged += async (source, property) - => await StateChanged(source, property); - - if (State?.Catalog != null) - FilteredMetadata = State?.Catalog?.Metadatas; - } - - private async Task StateChanged( - ComponentBase source, - string property) - { - if(source != this) - { - if (property == "UpdateCatalog") - { - FilteredMetadata = State?.Catalog?.Metadatas; - } - - await InvokeAsync(StateHasChanged); - } - - - } - - private void SearchHandler() - { - if (string.IsNullOrWhiteSpace(SearchTerm)) - { - FilteredMetadata = State.Catalog.Metadatas; - } - else - { - FilteredMetadata = State.Catalog.Metadatas - .Where(m => - (m.Dataset.Project.ToLower().Contains( - SearchTerm.ToLower())) || - (m.Dataset.Name.ToLower().Contains( - SearchTerm.ToLower())) || - (m.Dataset.Description.ToLower().Contains( - SearchTerm.ToLower())) || - (m.Dataset.Tags.Any(t => t.ToLower().Contains( - SearchTerm.ToLower())))) - .ToList(); - } - } - - private ModalRef metadataDetailsModalRef; - private async Task OpenMetadataDetailsModalTemplate(Metadata metadata) - { - var templateOptions = new ViewModels.MetadataDetailsViewModel - { - Metadata = metadata - }; - - var modalConfig = new ModalOptions(); - modalConfig.Title = "Metadata Preview"; - modalConfig.Width = "90%"; - modalConfig.DestroyOnClose = true; - modalConfig.OnCancel = async (e) => - { - await metadataDetailsModalRef.CloseAsync(); - }; - modalConfig.OnOk = async (e) => - { - await metadataDetailsModalRef.CloseAsync(); - }; - - modalConfig.AfterClose = () => - { - InvokeAsync(StateHasChanged); - - return Task.CompletedTask; - }; - - metadataDetailsModalRef = await ModalService - .CreateModalAsync( - modalConfig, templateOptions); - } - - public void Dispose() - { - State.StateChanged -= async (source, property) - => await StateChanged(source, property); - } - } -} diff --git a/Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor similarity index 80% rename from Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor rename to Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor index 9695c5f..4987de8 100644 --- a/Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor +++ b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor @@ -23,7 +23,7 @@ - + @metadata.Dataset.Name @@ -33,10 +33,10 @@ - + @metadata.Dataset.Zone / - + @metadata.Dataset.Project @@ -48,7 +48,7 @@ @foreach (var tag in metadata.Dataset.Tags) { - @tag + @tag } diff --git a/Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor.cs b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs similarity index 88% rename from Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor.cs rename to Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs index 70c658e..01a5793 100644 --- a/Caf.Midden.Wasm/Shared/ProjectCatalogMetadataViewer.razor.cs +++ b/Caf.Midden.Wasm/Shared/FilteredCatalogMetadataViewer.razor.cs @@ -9,7 +9,7 @@ namespace Caf.Midden.Wasm.Shared { - public partial class ProjectCatalogMetadataViewer : IDisposable + public partial class FilteredCatalogMetadataViewer : IDisposable { [Parameter] public string Zone { get; set; } @@ -17,6 +17,9 @@ public partial class ProjectCatalogMetadataViewer : IDisposable [Parameter] public string Project { get; set; } + [Parameter] + public string Tag { get; set; } + public List BaseMetadatas { get; set; } = new List(); public List FilteredMetadata { get; set; } = new List(); @@ -57,9 +60,11 @@ private void SetBaseMetadatas() { BaseMetadatas = State.Catalog.Metadatas .Where(m => - (m.Dataset.Zone.ToLower() == this.Zone.ToLower()) && - (m.Dataset.Project.ToLower() == this.Project.ToLower())) + (String.IsNullOrEmpty(this.Zone) || m.Dataset.Zone.ToLower() == this.Zone.ToLower()) && + (String.IsNullOrEmpty(this.Project) || m.Dataset.Project.ToLower() == this.Project.ToLower()) && + (String.IsNullOrEmpty(this.Tag) || m.Dataset.Tags.Any(t => t.ToLower() == this.Tag.ToLower()))) .ToList(); + } private void SearchHandler() { diff --git a/Caf.Midden.Wasm/Shared/MetadataDetails.razor b/Caf.Midden.Wasm/Shared/MetadataDetails.razor index 579a1e0..1a6cffc 100644 --- a/Caf.Midden.Wasm/Shared/MetadataDetails.razor +++ b/Caf.Midden.Wasm/Shared/MetadataDetails.razor @@ -221,7 +221,7 @@ @foreach (var tag in Metadata.Dataset.Tags) { - @tag + @tag } diff --git a/Caf.Midden.Wasm/Shared/Modals/MetadataDetailsModal.razor b/Caf.Midden.Wasm/Shared/Modals/MetadataDetailsModal.razor index 7dc9e18..2e36736 100644 --- a/Caf.Midden.Wasm/Shared/Modals/MetadataDetailsModal.razor +++ b/Caf.Midden.Wasm/Shared/Modals/MetadataDetailsModal.razor @@ -40,7 +40,7 @@ { await base.CloseFeedbackAsync(); - NavManager.NavigateTo($"catalog/{_model.Metadata.Dataset.Zone}/{_model.Metadata.Dataset.Project}/{_model.Metadata.Dataset.Name}"); + NavManager.NavigateTo($"catalog/zones/{_model.Metadata.Dataset.Zone}/projects/{_model.Metadata.Dataset.Project}/datasets/{_model.Metadata.Dataset.Name}"); } private void OnFinish(EditContext editContext) diff --git a/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor b/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor deleted file mode 100644 index 9695c5f..0000000 --- a/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor +++ /dev/null @@ -1,58 +0,0 @@ -@inject Caf.Midden.Wasm.Services.StateContainer State -@inject ModalService ModalService - -@if (State.Catalog != null) -{ - - - - - -} - -Datasets - -@if (FilteredMetadata != null) -{ - - @foreach (var metadata in FilteredMetadata) - { - - - - - @metadata.Dataset.Name - - - - - - - - @metadata.Dataset.Zone - / - - @metadata.Dataset.Project - - - - - @metadata.Dataset.Description - - - - @foreach (var tag in metadata.Dataset.Tags) - { - @tag - } - - - - } - -} \ No newline at end of file diff --git a/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor.cs b/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor.cs deleted file mode 100644 index 5fde6f3..0000000 --- a/Caf.Midden.Wasm/Shared/ZoneCatalogMetadataViewer.razor.cs +++ /dev/null @@ -1,119 +0,0 @@ -using AntDesign; -using Caf.Midden.Core.Models.v0_1; -using Caf.Midden.Wasm.Shared.Modals; -using Microsoft.AspNetCore.Components; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Caf.Midden.Wasm.Shared -{ - public partial class ZoneCatalogMetadataViewer : IDisposable - { - [Parameter] - public string Zone { get; set; } - - public List BaseMetadatas { get; set; } = new List(); - public List FilteredMetadata { get; set; } = new List(); - - public string SearchTerm { get; set; } - - protected override void OnInitialized() - { - State.StateChanged += async (source, property) - => await StateChanged(source, property); - - if (State?.Catalog != null) - { - SetBaseMetadatas(); - FilteredMetadata = this.BaseMetadatas; - } - } - - private async Task StateChanged( - ComponentBase source, - string property) - { - if (source != this) - { - if (property == "UpdateCatalog") - { - SetBaseMetadatas(); - FilteredMetadata = this.BaseMetadatas; - } - - await InvokeAsync(StateHasChanged); - } - - - } - - private void SetBaseMetadatas() - { - BaseMetadatas = State.Catalog.Metadatas - .Where(m => - m.Dataset.Zone.ToLower() == this.Zone.ToLower()) - .ToList(); - } - - private void SearchHandler() - { - if (string.IsNullOrWhiteSpace(SearchTerm)) - { - FilteredMetadata = this.BaseMetadatas; - } - else - { - FilteredMetadata = this.BaseMetadatas - .Where(m => - (m.Dataset.Name.ToLower().Contains( - SearchTerm.ToLower())) || - (m.Dataset.Description.ToLower().Contains( - SearchTerm.ToLower())) || - (m.Dataset.Tags.Any(t => t.ToLower().Contains( - SearchTerm.ToLower())))) - .ToList(); - } - } - - private ModalRef metadataDetailsModalRef; - private async Task OpenMetadataDetailsModalTemplate(Metadata metadata) - { - var templateOptions = new ViewModels.MetadataDetailsViewModel - { - Metadata = metadata - }; - - var modalConfig = new ModalOptions(); - modalConfig.Title = "Metadata Preview"; - modalConfig.Width = "90%"; - modalConfig.DestroyOnClose = true; - modalConfig.OnCancel = async (e) => - { - await metadataDetailsModalRef.CloseAsync(); - }; - modalConfig.OnOk = async (e) => - { - await metadataDetailsModalRef.CloseAsync(); - }; - - modalConfig.AfterClose = () => - { - InvokeAsync(StateHasChanged); - - return Task.CompletedTask; - }; - - metadataDetailsModalRef = await ModalService - .CreateModalAsync( - modalConfig, templateOptions); - } - - public void Dispose() - { - State.StateChanged -= async (source, property) - => await StateChanged(source, property); - } - } -}