@page "/registry/{RegistryId:guid}/admin" @rendermode InteractiveServer @using Blazored.TextEditor Registry Admin @if (!IsAuthorized) {

Access denied.

} else {

Registry Admin

@if (!IsSmtpConfigured) { }

Add or edit item

@foreach (var category in ItemCategories) { }

Categories and items

@if (!string.IsNullOrWhiteSpace(ItemManagementMessage)) { }

Drag categories or items to reorder. Drop items into another category to regroup them.

@foreach (var category in ItemCategories) {
@if (EditingCategoryId == category.Id) {
} else { @category.Name
}
@if (category.Items.Count == 0) {
Drop items here.
} else { @foreach (var item in category.Items) { }
Name Desired Qty Participation Purchased by / Contributed by
@item.Name @item.DesiredQuantity @(item.ParticipationAllowed ? "Yes" : "No") @if (item.Purchasers.Count > 0) {
Purchased:
@foreach (var purchaser in item.Purchasers) {
@purchaser.DisplayName (@purchaser.Quantity)
}
} @if (item.Contributors.Count > 0) {
Contributed:
@foreach (var contributor in item.Contributors) {
@contributor.DisplayName (@contributor.Amount.ToString("0.00"))
}
}
}
}

Registry Settings

Line breaks will be preserved

Bank Account Settings

Contribution Payment Options

Optional: one QR code that donors can scan for any amount.

Amount-specific QR codes

@if (SettingsModel.ContributionAmountQrCodes.Count == 0) {

No amount-specific QR codes configured.

} else {
@foreach (var amountQr in SettingsModel.ContributionAmountQrCodes) {
}
}

User addresses

@if (AccessibleUserAddresses.Count == 0) {

No users found yet.

} else { @foreach (var user in AccessibleUserAddresses) { }
Name Email Address
@user.DisplayName @(string.IsNullOrWhiteSpace(user.Email) ? "-" : user.Email) @(string.IsNullOrWhiteSpace(user.Address) ? "-" : user.Address)
}

Current administrators

@if (Admins.Count == 0) {

No admins assigned yet.

} else { @foreach (var admin in Admins) { }
Email / Name
@admin.DisplayName
}

Invite administrator

@if (!string.IsNullOrWhiteSpace(InviteLink)) {

Invite link:
@InviteLink

}
}