Compare commits
7 Commits
v1.9.2
...
fix-array-
Author | SHA1 | Date | |
---|---|---|---|
|
8290a1606f | ||
|
eddd458744 | ||
|
439ea20a89 | ||
|
cec223c8e7 | ||
|
25cb188d00 | ||
|
31007a8d96 | ||
|
a4fa8db69b |
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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:
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -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>
|
||||
}
|
||||
|
20
BTCPayServer/Views/Shared/Shopify/NavExtension.cshtml
Normal file
20
BTCPayServer/Views/Shared/Shopify/NavExtension.cshtml
Normal 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>
|
||||
}
|
@@ -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>
|
@@ -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 phrase
|
||||
</h1>
|
||||
<h1 class="text-center text-warning mb-3">
|
||||
Secure your recovery 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 |
1
BTCPayServer/wwwroot/img/readme/supporter_esc.svg
Normal file
1
BTCPayServer/wwwroot/img/readme/supporter_esc.svg
Normal 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 |
@@ -217,6 +217,7 @@ The BTCPay Server Project is proudly supported by these entities through the [BT
|
||||
[](https://www.bailliegifford.com)
|
||||
[](https://strike.me)
|
||||
[](https://hrf.org)
|
||||
[](https://escapetoelsalvador.org/)
|
||||
[](https://lunanode.com)
|
||||
[](https://walletofsatoshi.com/)
|
||||
[](https://coincards.com/)
|
||||
|
Reference in New Issue
Block a user