From 9d75225bd5cb32a12e9a037375741b26463dbdb5 Mon Sep 17 00:00:00 2001 From: rustywave <100967048+rustywave@users.noreply.github.com> Date: Sat, 4 Jun 2022 14:33:26 -0700 Subject: [PATCH] Redirect create and edit payment request to list view upon completion Create and edit now redirect to list view. Both actions use the same method. Also updated notification message. Kept extraneous redirect value for xUnit tests. Update selenium test to account for redirect to list view. --- BTCPayServer.Tests/SeleniumTests.cs | 3 +++ BTCPayServer/Controllers/UIPaymentRequestController.cs | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/BTCPayServer.Tests/SeleniumTests.cs b/BTCPayServer.Tests/SeleniumTests.cs index 411cc0300..ab8147166 100644 --- a/BTCPayServer.Tests/SeleniumTests.cs +++ b/BTCPayServer.Tests/SeleniumTests.cs @@ -758,6 +758,7 @@ namespace BTCPayServer.Tests currencyInput.SendKeys("BTC"); s.Driver.FindElement(By.Id("SaveButton")).Click(); + s.Driver.FindElement(By.XPath($"//a[starts-with(@id, 'Edit-')]")).Click(); s.Driver.FindElement(By.Id("ViewPaymentRequest")).Click(); s.Driver.SwitchTo().Window(s.Driver.WindowHandles.Last()); Assert.Equal("Amount due", s.Driver.FindElement(By.CssSelector("[data-test='amount-due-title']")).Text); @@ -768,6 +769,7 @@ namespace BTCPayServer.Tests s.Driver.SwitchTo().Window(s.Driver.WindowHandles.First()); s.Driver.ExecuteJavaScript("document.getElementById('ExpiryDate').value = '2021-01-21T21:00:00.000Z'"); s.Driver.FindElement(By.Id("SaveButton")).Click(); + s.Driver.FindElement(By.XPath($"//a[starts-with(@id, 'Edit-')]")).Click(); s.Driver.SwitchTo().Window(s.Driver.WindowHandles.Last()); s.Driver.Navigate().Refresh(); Assert.Equal("Expired", s.Driver.WaitForElement(By.CssSelector("[data-test='status']")).Text); @@ -776,6 +778,7 @@ namespace BTCPayServer.Tests s.Driver.SwitchTo().Window(s.Driver.WindowHandles.First()); s.Driver.FindElement(By.Id("ClearExpiryDate")).Click(); s.Driver.FindElement(By.Id("SaveButton")).Click(); + s.Driver.FindElement(By.XPath($"//a[starts-with(@id, 'Edit-')]")).Click(); s.Driver.SwitchTo().Window(s.Driver.WindowHandles.Last()); s.Driver.Navigate().Refresh(); s.Driver.AssertElementNotFound(By.CssSelector("[data-test='status']")); diff --git a/BTCPayServer/Controllers/UIPaymentRequestController.cs b/BTCPayServer/Controllers/UIPaymentRequestController.cs index f0d10216f..33c76fe82 100644 --- a/BTCPayServer/Controllers/UIPaymentRequestController.cs +++ b/BTCPayServer/Controllers/UIPaymentRequestController.cs @@ -139,7 +139,8 @@ namespace BTCPayServer.Controllers blob.AllowCustomPaymentAmounts = viewModel.AllowCustomPaymentAmounts; data.SetBlob(blob); - if (string.IsNullOrEmpty(payReqId)) + var isNewPaymentRequest = string.IsNullOrEmpty(payReqId); + if (isNewPaymentRequest) { data.Created = DateTimeOffset.UtcNow; } @@ -147,8 +148,8 @@ namespace BTCPayServer.Controllers data = await _PaymentRequestRepository.CreateOrUpdatePaymentRequest(data); _EventAggregator.Publish(new PaymentRequestUpdated { Data = data, PaymentRequestId = data.Id, }); - TempData[WellKnownTempData.SuccessMessage] = "Saved"; - return RedirectToAction(nameof(EditPaymentRequest), new { storeId = store.Id, payReqId = data.Id }); + TempData[WellKnownTempData.SuccessMessage] = $"Payment request [{viewModel.Title}] {(isNewPaymentRequest ? "created" : "updated")} successfully"; + return RedirectToAction(nameof(GetPaymentRequests), new { storeId = store.Id, payReqId = data.Id }); } [HttpGet("{payReqId}")]