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
+
+
+
+
+
+
+@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
+
+
+
+
+
+
+@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
+
+
+
+
+
+
+@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
+
+
+
+
+
+
+@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);
- }
- }
-}