mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2026-01-31 11:54:24 +01:00
Fixing tests
This commit is contained in:
@@ -828,14 +828,16 @@ namespace BTCPayServer.Tests
|
||||
Assert.DoesNotContain("You need to configure email settings before this feature works", s.Driver.PageSource);
|
||||
|
||||
s.Driver.FindElement(By.Id("CreateEmailRule")).Click();
|
||||
var select = new SelectElement(s.Driver.FindElement(By.Id("Rules_0__Trigger")));
|
||||
var select = new SelectElement(s.Driver.FindElement(By.Id("Trigger")));
|
||||
select.SelectByText("An invoice has been settled", true);
|
||||
s.Driver.FindElement(By.Id("Rules_0__To")).SendKeys("test@gmail.com");
|
||||
s.Driver.FindElement(By.Id("Rules_0__CustomerEmail")).Click();
|
||||
s.Driver.FindElement(By.Id("Rules_0__Subject")).SendKeys("Thanks!");
|
||||
s.Driver.FindElement(By.Id("To")).SendKeys("test@gmail.com");
|
||||
s.Driver.FindElement(By.Id("CustomerEmail")).Click();
|
||||
s.Driver.FindElement(By.Id("Subject")).SendKeys("Thanks!");
|
||||
s.Driver.FindElement(By.ClassName("note-editable")).SendKeys("Your invoice is settled");
|
||||
s.Driver.FindElement(By.Id("SaveEmailRules")).Click();
|
||||
Assert.Contains("Store email rules saved", s.FindAlertMessage().Text);
|
||||
// we now have a rule
|
||||
Assert.DoesNotContain("There are no rules yet.", s.Driver.PageSource);
|
||||
Assert.Contains("test@gmail.com", s.Driver.PageSource);
|
||||
|
||||
s.GoToStore(StoreNavPages.Emails);
|
||||
Assert.True(s.Driver.FindElement(By.Id("IsCustomSMTP")).Selected);
|
||||
|
||||
@@ -4,6 +4,8 @@ using System.ComponentModel.DataAnnotations;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BTCPayServer.Abstractions.Extensions;
|
||||
using BTCPayServer.Abstractions.Models;
|
||||
using BTCPayServer.Client;
|
||||
using BTCPayServer.Data;
|
||||
using BTCPayServer.Models;
|
||||
@@ -18,10 +20,21 @@ namespace BTCPayServer.Controllers
|
||||
public partial class UIStoresController
|
||||
{
|
||||
[HttpGet("{storeId}/emails/rules")]
|
||||
public IActionResult EmailRulesIndex(string storeId)
|
||||
public async Task<IActionResult> EmailRulesIndex(string storeId)
|
||||
{
|
||||
var store = HttpContext.GetStoreData();
|
||||
if (store == null) return NotFound();
|
||||
|
||||
var configured = await _emailSenderFactory.IsComplete(store.Id);
|
||||
if (!configured && !TempData.HasStatusMessage())
|
||||
{
|
||||
TempData.SetStatusMessageModel(new StatusMessageModel
|
||||
{
|
||||
Severity = StatusMessageModel.StatusSeverity.Warning,
|
||||
Html = "You need to configure email settings before this feature works." +
|
||||
$" <a class='alert-link' href='{Url.Action("StoreEmailSettings", new { storeId })}'>Configure store email settings</a>."
|
||||
});
|
||||
}
|
||||
|
||||
var rules = store.GetStoreBlob().EmailRules ?? new List<StoreEmailRule>();
|
||||
return View("StoreEmailRulesList", rules);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</ol>
|
||||
<h2>@ViewData["Title"]</h2>
|
||||
</nav>
|
||||
<a id="page-primary" permission="@Policies.CanCreateNonApprovedPullPayments" asp-action="EmailRulesCreate" asp-route-storeId="@storeId"
|
||||
<a id="CreateEmailRule" permission="@Policies.CanCreateNonApprovedPullPayments" asp-action="EmailRulesCreate" asp-route-storeId="@storeId"
|
||||
class="btn btn-primary" role="button">
|
||||
Create Email Rule
|
||||
</a>
|
||||
@@ -28,34 +28,43 @@
|
||||
Email rules allow BTCPay Server to send customized emails from your store based on events.
|
||||
</p>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Trigger</th>
|
||||
<th>Customer Email</th>
|
||||
<th>To</th>
|
||||
<th>Subject</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var rule in Model.Select((value, index) => new { value, index }))
|
||||
{
|
||||
<tr>
|
||||
<td>@rule.value.Trigger</td>
|
||||
<td>@(rule.value.CustomerEmail ? "Yes" : "No")</td>
|
||||
<td>@rule.value.To</td>
|
||||
<td>@rule.value.Subject</td>
|
||||
<td>
|
||||
<a asp-action="EmailRulesEdit" asp-route-storeId="@storeId" asp-route-ruleIndex="@rule.index">Edit</a>
|
||||
-
|
||||
<form asp-action="EmailRulesDelete" asp-route-storeId="@storeId" asp-route-ruleIndex="@rule.index" method="post" style="display:inline;">
|
||||
<a href="#" class="text-danger" onclick="event.preventDefault(); if (confirm('Are you sure you want to delete this email rule?')) this.closest('form').submit();">Delete</a>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@if (Model.Any())
|
||||
{
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Trigger</th>
|
||||
<th>Customer Email</th>
|
||||
<th>To</th>
|
||||
<th>Subject</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var rule in Model.Select((value, index) => new { value, index }))
|
||||
{
|
||||
<tr>
|
||||
<td>@rule.value.Trigger</td>
|
||||
<td>@(rule.value.CustomerEmail ? "Yes" : "No")</td>
|
||||
<td>@rule.value.To</td>
|
||||
<td>@rule.value.Subject</td>
|
||||
<td>
|
||||
<a asp-action="EmailRulesEdit" asp-route-storeId="@storeId" asp-route-ruleIndex="@rule.index">Edit</a>
|
||||
-
|
||||
<form asp-action="EmailRulesDelete" asp-route-storeId="@storeId" asp-route-ruleIndex="@rule.index" method="post" style="display:inline;">
|
||||
<a href="#" class="text-danger" onclick="event.preventDefault(); if (confirm('Are you sure you want to delete this email rule?')) this.closest('form').submit();">Delete</a>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p class="text-secondary" text-translate="true">
|
||||
There are no rules yet.
|
||||
</p>
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="sticky-header">
|
||||
<h2 text-translate="true">@ViewData["Title"]</h2>
|
||||
<div>
|
||||
<button id="page-primary" type="submit" class="btn btn-primary">Save</button>
|
||||
<button id="SaveEmailRules" type="submit" class="btn btn-primary">Save</button>
|
||||
<a asp-action="EmailRulesIndex" asp-route-storeId="@storeId" class="btn btn-secondary">Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user