2023-03-17 03:56:32 +01:00
|
|
|
@using BTCPayServer.Plugins.Crowdfund
|
2022-04-12 09:55:10 +02:00
|
|
|
@model BTCPayServer.Components.AppTopItems.AppTopItemsViewModel
|
|
|
|
|
2023-03-16 07:51:24 +01:00
|
|
|
<div id="AppTopItems-@Model.Id" class="widget app-top-items">
|
2023-03-17 03:56:32 +01:00
|
|
|
<header class="mb-3">
|
2024-10-17 15:51:40 +02:00
|
|
|
<h3>
|
|
|
|
@if (Model.AppType == CrowdfundAppType.AppType)
|
|
|
|
{
|
|
|
|
<span text-translate="true">Top Perks</span>
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<span text-translate="true">Top Items</span>
|
|
|
|
}
|
|
|
|
</h3>
|
2023-03-17 03:56:32 +01:00
|
|
|
</header>
|
|
|
|
@if (Model.InitialRendering)
|
|
|
|
{
|
|
|
|
<div class="loading d-flex justify-content-center p-3">
|
|
|
|
<div class="spinner-border text-light" role="status">
|
2024-10-17 15:51:40 +02:00
|
|
|
<span class="visually-hidden" text-translate="true">Loading...</span>
|
2023-03-17 03:56:32 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script src="~/Components/AppTopItems/Default.cshtml.js" asp-append-version="true"></script>
|
|
|
|
<script>
|
2023-03-16 07:51:24 +01:00
|
|
|
(async () => {
|
2023-03-17 03:56:32 +01:00
|
|
|
const url = @Safe.Json(Model.DataUrl);
|
2023-03-16 07:51:24 +01:00
|
|
|
const appId = @Safe.Json(Model.Id);
|
|
|
|
const response = await fetch(url);
|
|
|
|
if (response.ok) {
|
|
|
|
document.getElementById(`AppTopItems-${appId}`).outerHTML = await response.text();
|
2023-09-14 02:26:47 +02:00
|
|
|
const data = document.querySelector(`#AppTopItems-${appId} template`);
|
|
|
|
if (data) window.appTopItems.dataLoaded(JSON.parse(data.innerHTML));
|
2023-03-16 07:51:24 +01:00
|
|
|
}
|
|
|
|
})();
|
2023-03-17 03:56:32 +01:00
|
|
|
</script>
|
|
|
|
}
|
|
|
|
else if (Model.Entries.Any())
|
|
|
|
{
|
|
|
|
<div class="ct-chart mb-3"></div>
|
|
|
|
<template>
|
|
|
|
@Safe.Json(Model)
|
|
|
|
</template>
|
|
|
|
<div class="app-items">
|
|
|
|
@for (var i = 0; i < Model.Entries.Count; i++)
|
|
|
|
{
|
|
|
|
var entry = Model.Entries[i];
|
|
|
|
<div class="app-item ct-series-@i">
|
|
|
|
<span class="app-item-name">
|
|
|
|
<span class="app-item-point ct-point"></span>
|
|
|
|
@entry.Title
|
|
|
|
</span>
|
2023-05-11 10:35:51 +02:00
|
|
|
<span class="app-item-value" data-sensitive>
|
2024-10-17 15:51:40 +02:00
|
|
|
<span class="text-muted">
|
|
|
|
@entry.SalesCount
|
|
|
|
@if (Model.AppType == CrowdfundAppType.AppType)
|
|
|
|
{
|
|
|
|
if (entry.SalesCount == 1)
|
|
|
|
{
|
|
|
|
<span text-translate="true">contribution</span>
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<span text-translate="true">contributions</span>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (entry.SalesCount == 1)
|
|
|
|
{
|
|
|
|
<span text-translate="true">sale</span>
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<span text-translate="true">sales</span>
|
|
|
|
}
|
|
|
|
},
|
|
|
|
</span>
|
2023-03-17 03:56:32 +01:00
|
|
|
@entry.TotalFormatted
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<p class="text-secondary mt-3">
|
2024-10-17 15:51:40 +02:00
|
|
|
@if (Model.AppType == CrowdfundAppType.AppType)
|
|
|
|
{
|
|
|
|
<span text-translate="true">No contributions have been made yet.</span>
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
<span text-translate="true">No sales have been made yet.</span>
|
|
|
|
}
|
2023-03-17 03:56:32 +01:00
|
|
|
</p>
|
|
|
|
}
|
2022-04-12 09:55:10 +02:00
|
|
|
</div>
|