diff --git a/CaddyManager/Components/Pages/Caddy/CaddyReverseProxies/CaddyReverseProxiesPage.razor.cs b/CaddyManager/Components/Pages/Caddy/CaddyReverseProxies/CaddyReverseProxiesPage.razor.cs index 87a7314..a7580e5 100644 --- a/CaddyManager/Components/Pages/Caddy/CaddyReverseProxies/CaddyReverseProxiesPage.razor.cs +++ b/CaddyManager/Components/Pages/Caddy/CaddyReverseProxies/CaddyReverseProxiesPage.razor.cs @@ -53,13 +53,8 @@ public partial class CaddyReverseProxiesPage : ComponentBase { p => p.FileName, string.Empty } }); - var result = await dialog.Result; - - if (result is { Data: bool, Canceled: false } && (bool)result.Data) - { - Refresh(); - await RestartCaddy(); - } + _ = await dialog.Result; + Refresh(); } /// diff --git a/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor b/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor index f6c3a01..b449539 100644 --- a/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor +++ b/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor @@ -15,6 +15,10 @@ Cancel + @if (!IsNew) + { + Duplicate + } Save Save & Restart diff --git a/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor.cs b/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor.cs index 522904a..8275f82 100644 --- a/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor.cs +++ b/CaddyManager/Components/Pages/Caddy/CaddyfileEditor/CaddyfileEditor.razor.cs @@ -24,10 +24,13 @@ public partial class CaddyfileEditor : ComponentBase [Parameter] public string FileName { get; set; } = string.Empty; + [Parameter] public string InitialContent { get; set; } = string.Empty; + [Inject] private ICaddyService CaddyService { get; set; } = null!; [Inject] private ISnackbar Snackbar { get; set; } = null!; [Inject] private IDockerService DockerService { get; set; } = null!; + [Inject] private IDialogService DialogService { get; set; } = null!; protected override Task OnInitializedAsync() { @@ -38,6 +41,10 @@ public partial class CaddyfileEditor : ComponentBase // Load the content of the Caddy configuration file _caddyConfigurationContent = CaddyService.GetCaddyConfigurationContent(FileName); } + else if (!string.IsNullOrWhiteSpace(InitialContent)) + { + _caddyConfigurationContent = InitialContent; + } return base.OnInitializedAsync(); } @@ -120,4 +127,25 @@ public partial class CaddyfileEditor : ComponentBase MudDialog.Close(DialogResult.Ok(false)); } } + + /// + /// Duplicates the Caddy configuration file + /// + private async Task Duplicate() + { + var content = await _codeEditor.GetValue(); + + MudDialog.Close(DialogResult.Ok(false)); + + await DialogService.ShowAsync("New configuration", + options: new DialogOptions + { + FullWidth = true, + MaxWidth = MaxWidth.Medium + }, parameters: new DialogParameters + { + { p => p.FileName, string.Empty }, + { p => p.InitialContent, content } + }); + } } \ No newline at end of file