diff --git a/src/dashboard/Synapse.Dashboard/Components/CreateWorkflowInstanceDialog/CreateWorkflowInstanceDialog.razor b/src/dashboard/Synapse.Dashboard/Components/CreateWorkflowInstanceDialog/CreateWorkflowInstanceDialog.razor index eab859dd..7de0e077 100644 --- a/src/dashboard/Synapse.Dashboard/Components/CreateWorkflowInstanceDialog/CreateWorkflowInstanceDialog.razor +++ b/src/dashboard/Synapse.Dashboard/Components/CreateWorkflowInstanceDialog/CreateWorkflowInstanceDialog.razor @@ -47,6 +47,20 @@ +
+ @if (Operators != null && Operators.Count() > 0) + { + + } +
+
} + +
+ @if (operators != null && operators.Count() > 0) + { + + } +
+ @@ -63,9 +72,9 @@ else { } @@ -158,11 +167,13 @@ readonly IEnumerable columns = [ "Name", - "Status", - "Start Time", - "End Time", - ..WorkflowInstancesList.DirectActions + "Status", + "Start Time", + "End Time", + ..WorkflowInstancesList.DirectActions ]; + protected EquatableList? operators { get; set; } + protected string? operatorName { get; set; } [Parameter] public string? Version { get; set; } [Parameter] public string? InstanceName { get; set; } @@ -174,6 +185,8 @@ UpdateBreadcrumb(); Store.WorkflowInstanceName.Subscribe(value => OnStateChanged(_ => instanceName = value), token: CancellationTokenSource.Token); Store.WorkflowDefinition.Where(value => value != null).Subscribe(value => OnStateChanged(_ => workflowDefinition = value!), token: CancellationTokenSource.Token); + Store.Operators.Subscribe(value => OnStateChanged(_ => operators = value), token: CancellationTokenSource.Token); + Store.Operator.Subscribe(value => OnStateChanged(_ => operatorName = value), token: CancellationTokenSource.Token); Store.WorkflowDefinitionVersion.Where(value => !string.IsNullOrWhiteSpace(value)).Subscribe(value => { OnStateChanged(_ => version = value!); @@ -255,8 +268,8 @@ /// The to delete protected async Task OnDeleteWorkflowInstanceAsync(WorkflowInstance instance) { - if (this.Dialog == null) return; - var confirmation = await this.Dialog.ShowAsync( + if (Dialog == null) return; + var confirmation = await Dialog.ShowAsync( title: $"Are you sure you want to delete '{instance.Metadata.Name}'?", message1: $"The workflow instance will be permanently deleted. Are you sure you want to proceed ?", confirmDialogOptions: new ConfirmDialogOptions() @@ -268,10 +281,10 @@ } ); if (!confirmation) return; - await this.Store.DeleteWorkflowInstanceAsync(instance); + await Store.DeleteWorkflowInstanceAsync(instance); } - void OnCreateWorkflowVersion() => this.NavigationManager.NavigateTo($"/workflows/new/{@namespace}/{Name}"); + void OnCreateWorkflowVersion() => NavigationManager.NavigateTo($"/workflows/new/{@namespace}/{Name}"); void OnShowInstanceDetails(WorkflowInstance instance) => NavigationManager.NavigateTo($"/workflows/details/{@namespace}/{Name}/{version}/{instance.GetName()}"); @@ -286,7 +299,7 @@ void OnDismissProblemDetails() { - this.Store.SetProblemDetails(null); + Store.SetProblemDetails(null); } } diff --git a/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/Store.cs b/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/Store.cs index c98b8e5e..e834aaa5 100644 --- a/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/Store.cs +++ b/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/Store.cs @@ -12,7 +12,6 @@ // limitations under the License. using Synapse.Api.Client.Services; -using Synapse.Dashboard.Components.DocumentDetailsStateManagement; using Synapse.Resources; namespace Synapse.Dashboard.Pages.Workflows.List; @@ -43,8 +42,8 @@ public class WorkflowListComponentStore(ILogger logg /// A new awaitable public async Task ListOperatorsAsync() { - var operatorList = new EquatableList(await (await this.ApiClient.Operators.ListAsync().ConfigureAwait(false)).OrderBy(ns => ns.GetQualifiedName()).ToListAsync().ConfigureAwait(false)); - this.Reduce(s => s with + var operatorList = new EquatableList(await (await ApiClient.Operators.ListAsync().ConfigureAwait(false)).OrderBy(ns => ns.GetQualifiedName()).ToListAsync().ConfigureAwait(false)); + Reduce(s => s with { Operators = operatorList }); @@ -56,7 +55,7 @@ public async Task ListOperatorsAsync() /// The new value public void SetOperator(string? operatorName) { - this.Reduce(state => state with + Reduce(state => state with { Operator = operatorName }); @@ -66,16 +65,16 @@ public void SetOperator(string? operatorName) public override async Task InitializeAsync() { await base.InitializeAsync(); - await this.ListOperatorsAsync().ConfigureAwait(false); - this.Operator.Subscribe(operatorName => { + await ListOperatorsAsync().ConfigureAwait(false); + Operator.Subscribe(operatorName => { if (string.IsNullOrWhiteSpace(operatorName)) { - this.RemoveLabelSelector(SynapseDefaults.Resources.Labels.Operator); + RemoveLabelSelector(SynapseDefaults.Resources.Labels.Operator); } else { - this.AddLabelSelector(new(SynapseDefaults.Resources.Labels.Operator, LabelSelectionOperator.Equals, operatorName)); + AddLabelSelector(new(SynapseDefaults.Resources.Labels.Operator, LabelSelectionOperator.Equals, operatorName)); } - }, token: this.CancellationTokenSource.Token); + }, token: CancellationTokenSource.Token); } } diff --git a/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/View.razor b/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/View.razor index 6bb425c0..75cb7fea 100644 --- a/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/View.razor +++ b/src/dashboard/Synapse.Dashboard/Pages/Workflows/List/View.razor @@ -163,9 +163,9 @@ protected override void OnInitialized() { base.OnInitialized(); - this.BreadcrumbManager.Use(Breadcrumbs.Workflows); - this.Store.Operators.Subscribe(value => this.OnStateChanged(_ => Operators = value), token: this.CancellationTokenSource.Token); - this.Store.Operator.Subscribe(value => this.OnStateChanged(_ => Operator = value), token: this.CancellationTokenSource.Token); + BreadcrumbManager.Use(Breadcrumbs.Workflows); + Store.Operators.Subscribe(value => OnStateChanged(_ => Operators = value), token: CancellationTokenSource.Token); + Store.Operator.Subscribe(value => OnStateChanged(_ => Operator = value), token: CancellationTokenSource.Token); } string GetScheduleType(Workflow workflow) @@ -179,10 +179,10 @@ else throw new NotSupportedException("The specified schedule type is not supported"); } - void OnViewWorkflow(Workflow workflow) => this.NavigationManager.NavigateTo($"workflows/details/{workflow.GetNamespace()}/{workflow.GetName()}/{workflow.Spec.Versions.GetLatest().Document.Version}"); + void OnViewWorkflow(Workflow workflow) => NavigationManager.NavigateTo($"workflows/details/{workflow.GetNamespace()}/{workflow.GetName()}/{workflow.Spec.Versions.GetLatest().Document.Version}"); - void OnCreateWorkflow() => this.NavigationManager.NavigateTo("/workflows/new"); + void OnCreateWorkflow() => NavigationManager.NavigateTo("/workflows/new"); - void OnCreateWorkflowVersion(string ns, string name) => this.NavigationManager.NavigateTo($"/workflows/new/{ns}/{name}"); + void OnCreateWorkflowVersion(string ns, string name) => NavigationManager.NavigateTo($"/workflows/new/{ns}/{name}"); } \ No newline at end of file diff --git a/src/dashboard/Synapse.Dashboard/Synapse.Dashboard.csproj b/src/dashboard/Synapse.Dashboard/Synapse.Dashboard.csproj index f6a2a55e..4a67ce79 100644 --- a/src/dashboard/Synapse.Dashboard/Synapse.Dashboard.csproj +++ b/src/dashboard/Synapse.Dashboard/Synapse.Dashboard.csproj @@ -10,7 +10,7 @@ - +