2022-07-15 05:38:33 +02:00
@using BTCPayServer.Abstractions.Models
@model UsersViewModel
2017-09-16 01:15:17 +09:00
@{
2021-12-16 11:17:02 +01:00
ViewData.SetActivePage(ServerNavPages.Users);
2021-03-29 22:32:44 -07:00
var nextUserEmailSortOrder = (string)ViewData["NextUserEmailSortOrder"];
String userEmailSortOrder = null;
switch (nextUserEmailSortOrder)
{
case "asc":
userEmailSortOrder = "desc";
break;
case "desc":
userEmailSortOrder = "asc";
break;
}
var sortIconClass = "fa-sort";
if (userEmailSortOrder != null)
{
sortIconClass = $"fa-sort-alpha-{userEmailSortOrder}";
}
var sortByDesc = "Sort by descending...";
var sortByAsc = "Sort by ascending...";
2017-09-16 01:15:17 +09:00
}
2022-06-20 00:02:12 -07:00
<div class="d-flex align-items-center justify-content-between mb-3">
2022-04-05 04:34:56 -07:00
<h3 class="mb-0">@ViewData["Title"]</h3>
<a asp-action="CreateUser" class="btn btn-primary" role="button" id="CreateUser">
2021-06-24 12:52:41 +02:00
<span class="fa fa-plus"></span>
Add User
</a>
2019-05-28 08:40:10 -04:00
</div>
2022-04-05 04:34:56 -07:00
2022-06-20 00:02:12 -07:00
<form asp-action="ListUsers" asp-route-sortOrder="@(userEmailSortOrder)" style="max-width:640px">
2022-04-05 04:34:56 -07:00
<div class="input-group">
<input asp-for="SearchTerm" class="form-control" placeholder="Search by email..." />
<button type="submit" class="btn btn-secondary" title="Search by email">
<span class="fa fa-search"></span> Search
</button>
</div>
<span asp-validation-for="SearchTerm" class="text-danger"></span>
</form>
2022-01-23 21:03:56 -08:00
<div class="table-responsive">
<table class="table table-hover">
<thead>
2021-04-08 15:32:42 +02:00
<tr>
2022-01-23 21:03:56 -08:00
<th>
<a
asp-action="ListUsers"
asp-route-sortOrder="@(nextUserEmailSortOrder ?? "asc")"
class="text-nowrap"
title="@(nextUserEmailSortOrder == "desc" ? sortByAsc : sortByDesc)"
>
Email
<span class="fa @(sortIconClass)" />
</a>
</th>
2022-04-26 14:27:35 +02:00
<th >Created</th>
<th class="text-center">Verified</th>
<th class="text-center">Enabled</th>
2022-01-23 21:03:56 -08:00
<th class="text-end">Actions</th>
2021-04-08 15:32:42 +02:00
</tr>
2022-01-23 21:03:56 -08:00
</thead>
<tbody>
@foreach (var user in Model.Users)
{
<tr>
<td class="d-flex align-items-center">
<span class="me-2">@user.Email</span>
@foreach (var role in user.Roles)
{
<span class="badge bg-info">@Model.Roles[role]</span>
}
</td>
<td>@user.Created?.ToBrowserDate()</td>
<td class="text-center">
@if (user.Verified)
{
<span class="text-success fa fa-check"></span>
}
else
{
<span class="text-danger fa fa-times"></span>
}
</td>
2022-04-26 14:27:35 +02:00
<td class="text-center">
@if (!user.Disabled)
{
<span class="text-success fa fa-check" title="User is enabled"></span>
}
else
{
<span class="text-danger fa fa-times" title="User is disabled"></span>
}
</td>
2022-01-23 21:03:56 -08:00
<td class="text-end">
2022-05-26 21:36:47 -07:00
@if (!user.Verified && !user.Disabled) {
<a asp-action="SendVerificationEmail" asp-route-userId="@user.Id" data-bs-toggle="modal" data-bs-target="#ConfirmModal" data-description="This will send a verification email to <strong>@user.Email</strong>.">Resend verification email</a>
<span>-</span>
}
2022-01-23 21:03:56 -08:00
<a asp-action="User" asp-route-userId="@user.Id">Edit</a> <span> - </span> <a asp-action="DeleteUser" asp-route-userId="@user.Id">Remove</a>
2022-04-26 14:27:35 +02:00
- <a asp-action="ToggleUser"
asp-route-enable="@user.Disabled"
asp-route-userId="@user.Id">
@(user.Disabled ? "Enable" : "Disable")
</a>
2022-01-23 21:03:56 -08:00
</td>
</tr>
}
</tbody>
</table>
</div>
2021-03-29 22:32:44 -07:00
2021-04-08 15:32:42 +02:00
<vc:pager view-model="Model"></vc:pager>
2022-05-26 21:36:47 -07:00
<partial name="_Confirm" model="@(new ConfirmModel("Send verification email", $"This will send a verification email to the user.", "Send"))" />