Compare commits

..

7 Commits

Author SHA1 Message Date
Kukks
8290a1606f Fix posdata with primitive array
fixes #4952
2023-05-05 11:29:53 +02:00
Kukks
eddd458744 Fix missing shopify link
fixes #4945
2023-05-05 09:51:45 +02:00
rockstardev
439ea20a89 Resolving weird Firefox form autocomplete behavior on our POS (#4950) 2023-05-04 18:49:35 +02:00
d11n
cec223c8e7 Fix missing closing div (#4944) 2023-05-03 10:55:20 +02:00
rockstardev
25cb188d00 Bumping LND to 0.16.2-beta 2023-04-29 09:10:07 -05:00
Pavlenex
31007a8d96 Merge pull request #4929 from dennisreimann/esc
Supporters: Add ESC
2023-04-27 18:30:09 +02:00
Dennis Reimann
a4fa8db69b Supporters: Add ESC 2023-04-27 18:28:29 +02:00
12 changed files with 157 additions and 60 deletions

View File

@@ -243,7 +243,7 @@ services:
- "5432"
merchant_lnd:
image: btcpayserver/lnd:v0.16.1-beta
image: btcpayserver/lnd:v0.16.2-beta
restart: unless-stopped
environment:
LND_CHAIN: "btc"
@@ -278,7 +278,7 @@ services:
- bitcoind
customer_lnd:
image: btcpayserver/lnd:v0.16.1-beta
image: btcpayserver/lnd:v0.16.2-beta
restart: unless-stopped
environment:
LND_CHAIN: "btc"

View File

@@ -230,7 +230,7 @@ services:
- "5432"
merchant_lnd:
image: btcpayserver/lnd:v0.16.1-beta
image: btcpayserver/lnd:v0.16.2-beta
restart: unless-stopped
environment:
LND_CHAIN: "btc"
@@ -267,7 +267,7 @@ services:
- bitcoind
customer_lnd:
image: btcpayserver/lnd:v0.16.1-beta
image: btcpayserver/lnd:v0.16.2-beta
restart: unless-stopped
environment:
LND_CHAIN: "btc"

View File

@@ -1301,10 +1301,20 @@ namespace BTCPayServer.Controllers
{
case JTokenType.Array:
var items = item.Value.AsEnumerable().ToList();
var arrayResult = new List<object>();
for (var i = 0; i < items.Count; i++)
{
result.TryAdd($"{item.Key}[{i}]", ParsePosData(items[i]));
if (items[i] is JObject)
{
arrayResult.Add( ParsePosData(items[i]));
}
else
{
arrayResult.Add( items[i].ToString());
}
}
result.TryAdd(item.Key, arrayResult);
break;
case JTokenType.Object:

View File

@@ -15,6 +15,7 @@ namespace BTCPayServer.Plugins.Shopify
public override void Execute(IServiceCollection applicationBuilder)
{
applicationBuilder.AddSingleton<IHostedService, ShopifyOrderMarkerHostedService>();
applicationBuilder.AddSingleton<IUIExtension>(new UIExtension("Shopify/NavExtension", "header-nav"));
base.Execute(applicationBuilder);
}
}

View File

@@ -31,7 +31,7 @@
{
@if (item.Price.Type != ViewPointOfSaleViewModel.Item.ItemPrice.ItemPriceType.Topup)
{
<form method="post" asp-action="ViewPointOfSale" asp-route-appId="@Model.AppId" asp-antiforgery="false" data-buy>
<form method="post" asp-action="ViewPointOfSale" asp-route-appId="@Model.AppId" asp-antiforgery="false" data-buy autocomplete="off">
<input type="hidden" name="choiceKey" value="@item.Id" />
@{PayFormInputContent(item.BuyButtonText ?? Model.CustomButtonText, item.Price.Type, item.Price.Value, item.Price.Value);}
</form>

View File

@@ -1,47 +1,77 @@
@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);
return Uri.TryCreate(source, UriKind.Absolute, out var uriResult) &&
(uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
}
}
@if (Model.Items.Count > 0)
{
<table class="table my-0" v-pre>
@foreach (var (key, value) in Model.Items)
{
<tr>
@if (value is string str)
{
if (!string.IsNullOrEmpty(key))
<table class="table my-0" v-pre>
@foreach (var (key, value) in Model.Items)
{
<tr>
@if (value is string str)
{
<th class="w-150px">@key</th>
if (!string.IsNullOrEmpty(key))
{
<th class="w-150px">@key</th>
}
<td>
@if (IsValidURL(str))
{
<a href="@str" target="_blank" rel="noreferrer noopener">@str</a>
}
else
{
@value?.ToString()
}
</td>
}
<td>
@if (IsValidURL(str))
{
<a href="@str" target="_blank" rel="noreferrer noopener">@str</a>
}
else
{
@value?.ToString()
}
</td>
}
else if (value is Dictionary<string, object> {Count: > 0 } subItems)
{
<td colspan="2" >
@{
Write(Html.Raw($"<h{Model.Level + 3} class=\"mt-4 mb-3\">"));
Write(key);
Write(Html.Raw($"</h{Model.Level + 3}>"));
}
<partial name="PosData" model="@((subItems, Model.Level + 1))"/>
</td>
}
</tr>
}
</table>
else if (value is Dictionary<string, object> {Count: > 0 } subItems)
{
<td colspan="2">
@{
@if (!string.IsNullOrEmpty(key))
{
Write(Html.Raw($"<h{Model.Level + 3} class=\"mt-4 mb-3\">"));
Write(key);
Write(Html.Raw($"</h{Model.Level + 3}>"));
}
}
<partial name="PosData" model="@((subItems, Model.Level + 1))" />
</td>
}
else if (value is IEnumerable<object> valueArray)
{
<td colspan="2">
@{
@if (!string.IsNullOrEmpty(key))
{
Write(Html.Raw($"<h{Model.Level + 3} class=\"mt-4 mb-3\">"));
Write(key);
Write(Html.Raw($"</h{Model.Level + 3}>"));
}
}
@foreach (var item in valueArray)
{
@if (item is Dictionary<string, object> {Count: > 0 } subItems2)
{
<partial name="PosData" model="@((subItems2, Model.Level + 1))" />
}
else
{
<partial name="PosData" model="@((new Dictionary<string, object>() {{"", item}}, Model.Level + 1))" />
}
}
</td>
}
</tr>
}
</table>
}

View File

@@ -0,0 +1,20 @@
@using BTCPayServer.Client
@using Microsoft.AspNetCore.Mvc.TagHelpers
@using BTCPayServer.Abstractions.Extensions
@using BTCPayServer.Abstractions.TagHelpers
@using BTCPayServer.Views.Stores
@model BTCPayServer.Components.MainNav.MainNavViewModel
@{
var store = Context.GetStoreData();
}
@if (store != null)
{
<li class="nav-item" permission="@Policies.CanModifyStoreSettings">
<a asp-area="" asp-controller="UIShopify" asp-action="EditShopify" asp-route-storeId="@store.Id" class="nav-link @ViewData.IsActivePage("shopify", nameof(StoreNavPages))" id="StoreNav-Shopify">
<vc:icon symbol="shopify" />
<span>Shopify</span>
</a>
</li>
}

View File

@@ -1,12 +0,0 @@
@using BTCPayServer.Views.Stores
@using BTCPayServer.Abstractions.Extensions
@{
var store = Context.GetStoreData();
}
<li class="nav-item">
<a asp-area="" asp-controller="UIShopify" asp-action="EditShopify" asp-route-storeId="@store.Id" class="nav-link @ViewData.IsActivePage("shopify", nameof(StoreNavPages))" id="StoreNav-Shopify">
<vc:icon symbol="shopify"/>
<span>Shopify</span>
</a>
</li>

View File

@@ -31,9 +31,10 @@
<vc:icon symbol="warning" />
</div>
<div class="lead text-center">
<h1 class="text-center text-warning mb-3">
Secure your recovery&nbsp;phrase
</h1>
<h1 class="text-center text-warning mb-3">
Secure your recovery&nbsp;phrase
</h1>
</div>
</div>
<div class="lead text-center">
<p class="mb-0">

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View File

@@ -0,0 +1 @@
<svg width="150" height="100" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" version="1.1" id="svg587" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><style id="style324">.st2{fill:#ffc214}.st3{fill:#f9f185}.st0{fill:#222221}.st1{fill:#272425}</style><g id="g821-3" transform="translate(1.936 86.514) scale(.13236)" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"><path style="clip-rule:evenodd;fill:#fff;fill-rule:evenodd;stroke-width:8.91671;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" id="rect875-3-6" d="M-14.629-653.622H1118.63v755.506H-14.629z"/><g transform="matrix(.14533 0 0 -.14533 261.343 12.553)" fill="#000" stroke="none" id="g919" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"><path d="M360 3891c-150-48-258-176-281-334-11-82-11-3062 0-3144 24-161 136-291 290-337 49-14 211-16 1631-16s1582 2 1631 16c154 46 266 176 290 337 11 82 11 3062 0 3144-24 161-136 291-290 337-49 14-211 16-1635 15-1483 0-1584-1-1636-18zm3239-156c63-22 98-51 131-108l30-52V395l-30-52c-33-57-68-86-131-108-63-23-3135-23-3198 0-63 22-98 51-131 108l-30 52v3180l30 52c32 55 68 86 127 108 59 21 3141 22 3202 0z" id="path911" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"/><path d="M1043 2620c-142-29-257-130-304-267-17-51-19-85-19-368s2-317 19-368c39-113 126-204 238-248 54-22 73-23 276-24h219l24 28c31 36 31 71-1 102-24 25-26 25-208 25-226 0-268 10-337 79-59 59-70 94-70 222v97l31 6c17 3 152 6 300 6h268l20 26c27 34 27 64 0 98l-20 26h-268c-148 0-283 3-301 6l-32 7 3 117c4 108 6 120 32 158 36 56 97 98 158 111 27 6 129 11 225 11 172 0 175 0 199 25 32 31 32 66 1 102l-24 28-194 2c-106 1-212-3-235-7z" id="path913" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"/><path d="M1952 2614c-109-29-192-99-241-203-22-48-26-70-26-146 0-82 3-97 33-157 37-75 96-133 170-169 35-17 76-24 163-30 131-9 151-15 198-55 119-100 77-295-73-339-37-11-103-15-251-15-198 0-202 0-223-23-30-32-29-77 4-108 26-24 26-24 257-24 215 1 236 2 287 23 80 32 153 100 192 180 30 60 33 75 33 157s-3 97-33 157c-36 75-96 133-170 169-36 17-74 24-163 30-86 6-127 13-157 28-124 63-148 217-49 319 51 53 102 62 333 62h203l20 26c31 39 27 77-10 108l-31 26-206-1c-146 0-223-5-260-15z" id="path915" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"/><path d="M2971 2619c-156-30-285-155-320-310-14-57-14-591 0-648 36-158 164-281 324-310 91-17 389-14 424 4 44 22 56 80 25 120-14 19-30 20-227 25-205 5-214 7-263 32-59 31-101 82-120 146-20 65-20 550 0 615 19 63 64 118 123 147 46 24 58 25 253 28 192 3 206 5 228 25 12 11 22 32 22 48 0 80-26 89-247 88-98-1-198-5-222-10z" id="path917" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -217,6 +217,7 @@ The BTCPay Server Project is proudly supported by these entities through the [BT
[![Baillie Gifford](BTCPayServer/wwwroot/img/readme/supporter_bailliegifford.svg)](https://www.bailliegifford.com)
[![Strike](BTCPayServer/wwwroot/img/readme/supporter_strike.svg)](https://strike.me)
[![Human Rights Foundation](BTCPayServer/wwwroot/img/readme/supporter_hrf.svg)](https://hrf.org)
[![Escape to El Salvador](BTCPayServer/wwwroot/img/readme/supporter_esc.svg)](https://escapetoelsalvador.org/)
[![LunaNode](BTCPayServer/wwwroot/img/readme/supporter_lunanode.svg)](https://lunanode.com)
[![Wallet of Satoshi](BTCPayServer/wwwroot/img/readme/supporter_walletofsatoshi.svg)](https://walletofsatoshi.com/)
[![Coincards](BTCPayServer/wwwroot/img/readme/supporter_coincards.svg)](https://coincards.com/)