mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 14:40:36 +01:00
* wip * Cleanups * UI updates * Update UIFormsController.cs * Make predefined forms usable statically * Add support for pos app + forms * pay request form rough support * invoice form through receipt page * Display form name in inherit from store setting * Do not request additional forms on invoice from pay request * fix up code * move checkoutform id in checkout appearance outside of checkotu v2 toggle * general fixes for form system * fix pav bug * UI updates * Fix warnings in Form builder (#4331) * Fix build warnings about string? Enable nullable on UIFormsController.cs Fixes CS8632 The annotation for nullable reference types should only be used in code within a '#nullable' annotations context. * Clean up lack of space in injected services in Submit() of UIFormsController.cs * Remove unused variables (CS0219) and assignment of nullable value to nullable type (CS8600) * Cleanup double semicolons while we're at tit * Fix: If reverse proxy wasn't well configured, and error message should have been displayed (#4322) * fix monero issue * Server Settings: Update Policies page (#4326) Handles the multiple submit buttons on that page and closes #4319. Contains some UI unifications with other pages and also shows the block explorers without needing to toggle the section via JS. * Change confirmed to settled. (#4328) * POS: Fix null pointer Introduced in #4307, the referenced object needs to be `itemChoice` instead of `choice`. * Add documentation link to plugins (#4329) * Add documentation link to plugins * Minor UI updates Co-authored-by: Dennis Reimann <mail@dennisreimann.de> * Fix flaky test (#4330) * Fix flaky test * Update BTCPayServer/PayoutProcessors/BaseAutomatedPayoutProcessor.cs Co-authored-by: d11n <mail@dennisreimann.de> Co-authored-by: d11n <mail@dennisreimann.de> * Remove invoice and store level form * add form test * fix migration for forms * fix * make pay request form submission redirect to invoice * Refactor FormQuery to only be able to query single store and single form * Put the Authorize at controller level on UIForms * Fix warnings * Fix ef request * Fix query to forms, ensure no permission bypass * Fix modify * Remove storeId from step form * Remove useless storeId parameter * Hide custom form feature in UI * Minor cleanups * Remove custom form options from select for now * More minor syntax cleanups * Update test * Add index - needs migration * Refactoring: Use PostRedirect instead of TempData for data transfer * Remove untested and unfinished code * formResponse should be a JObject, not a string * Fix case for Form type Co-authored-by: Dennis Reimann <mail@dennisreimann.de> Co-authored-by: JesterHodl <103882255+jesterhodl@users.noreply.github.com> Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com> Co-authored-by: Andreas Tasch <andy.tasch@gmail.com>
60 lines
2 KiB
Text
60 lines
2 KiB
Text
@model (Dictionary<string, object> Items, int Level)
|
|
|
|
@functions {
|
|
private bool IsValidURL(string source)
|
|
{
|
|
return Uri.TryCreate(source, UriKind.Absolute, out var uriResult) &&
|
|
(uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
|
|
}
|
|
}
|
|
|
|
<table class="table my-0">
|
|
@foreach (var (key, value) in Model.Items)
|
|
{
|
|
<tr>
|
|
@if (value is string str)
|
|
{
|
|
if (!string.IsNullOrEmpty(key))
|
|
{
|
|
<th class="w-150px">@Safe.Raw(key)</th>
|
|
}
|
|
<td>
|
|
@if (IsValidURL(str))
|
|
{
|
|
<a href="@Safe.Raw(str)" target="_blank" rel="noreferrer noopener">@Safe.Raw(str)</a>
|
|
}
|
|
else
|
|
{
|
|
@Safe.Raw(value?.ToString())
|
|
}
|
|
</td>
|
|
}
|
|
else if (value is Dictionary<string, object>subItems)
|
|
{
|
|
@* This is the array case *@
|
|
if (subItems.Count == 1 && subItems.First().Value is string str2)
|
|
{
|
|
<th class="w-150px">@Safe.Raw(key)</th>
|
|
<td>
|
|
@if (IsValidURL(str2))
|
|
{
|
|
<a href="@Safe.Raw(str2)" target="_blank" rel="noreferrer noopener">@Safe.Raw(str2)</a>
|
|
}
|
|
else
|
|
{
|
|
@Safe.Raw(subItems.First().Value?.ToString())
|
|
}
|
|
</td>
|
|
}
|
|
else
|
|
{
|
|
<td colspan="2" >
|
|
@Safe.Raw($"<h{Model.Level + 3} class=\"mt-4 mb-3\">{key}</h{Model.Level + 3}>")
|
|
<partial name="PosData" model="(subItems, Model.Level + 1)"/>
|
|
</td>
|
|
}
|
|
}
|
|
</tr>
|
|
}
|
|
</table>
|
|
|