Adds View Style to Apps list

This commit is contained in:
Samuel Adams
2021-11-02 14:55:31 -04:00
committed by Andrew Camilleri
parent 193b209c92
commit e914c84ad3
4 changed files with 50 additions and 1 deletions

View File

@@ -73,6 +73,8 @@ namespace BTCPayServer.Controllers
return app.StoreName;
case nameof(app.AppType):
return app.AppType;
case nameof(app.ViewStyle):
return app.ViewStyle;
default:
return app.Id;
}

View File

@@ -9,6 +9,7 @@ namespace BTCPayServer.Models.AppViewModels
public string StoreId { get; set; }
public string AppName { get; set; }
public string AppType { get; set; }
public string ViewStyle { get; set; }
public bool IsOwner { get; set; }
public string UpdateAction { get { return "Update" + AppType; } }

View File

@@ -5,6 +5,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using BTCPayServer.Client.Models;
using BTCPayServer.Controllers;
using BTCPayServer.Data;
using BTCPayServer.Models.AppViewModels;
using BTCPayServer.Payments;
@@ -232,7 +233,7 @@ namespace BTCPayServer.Services.Apps
{
using (var ctx = _ContextFactory.CreateContext())
{
return await ctx.UserStore
var listApps = await ctx.UserStore
.Where(us =>
(allowNoUser && string.IsNullOrEmpty(userId) || us.ApplicationUserId == userId) &&
(storeId == null || us.StoreDataId == storeId))
@@ -248,7 +249,38 @@ namespace BTCPayServer.Services.Apps
Id = app.Id
})
.ToArrayAsync();
foreach (ListAppsViewModel.ListAppViewModel app in listApps)
{
app.ViewStyle = await GetAppViewStyleAsync(app.Id, app.AppType);
}
return listApps;
}
}
public async Task<string> GetAppViewStyleAsync(string appId, string appType)
{
AppType appTypeEnum = Enum.Parse<AppType>(appType);
AppData appData = await GetApp(appId, appTypeEnum, false);
var settings = appData.GetSettings<AppsController.PointOfSaleSettings>();
string style;
switch (appTypeEnum)
{
case AppType.PointOfSale:
string posViewStyle = (settings.EnableShoppingCart ? PosViewType.Cart : settings.DefaultView).ToString();
style = typeof(PosViewType).DisplayName(posViewStyle);
break;
case AppType.Crowdfund:
style = string.Empty;
break;
default:
style = string.Empty;
break;
}
return style;
}
public async Task<List<AppData>> GetApps(string[] appIds, bool includeStore = false)

View File

@@ -5,6 +5,7 @@
var storeNameSortOrder = (string)ViewData["StoreNameSortOrder"];
var appNameSortOrder = (string)ViewData["AppNameSortOrder"];
var appTypeSortOrder = (string)ViewData["AppTypeSortOrder"];
var viewStyleSortOrder = (string)ViewData["ViewStyleSortOrder"];
var sortByDesc = "Sort by descending...";
var sortByAsc = "Sort by ascending...";
}
@@ -68,6 +69,18 @@
<span class="fa @(appTypeSortOrder == "asc" ? "fa-sort-alpha-desc" : appTypeSortOrder == "desc" ? "fa-sort-alpha-asc" : "fa-sort")" />
</a>
</th>
<th>
<a
asp-action="ListApps"
asp-route-sortOrder="@(viewStyleSortOrder ?? "asc")"
asp-route-sortOrderColumn="ViewStyle"
class="text-nowrap"
title="@(viewStyleSortOrder == "desc" ? sortByDesc : sortByAsc)"
>
View Style
<span class="fa @(viewStyleSortOrder == "asc" ? "fa-sort-alpha-desc" : viewStyleSortOrder == "desc" ? "fa-sort-alpha-asc" : "fa-sort")" />
</a>
</th>
<th style="text-align:right">Actions</th>
</tr>
</thead>
@@ -87,6 +100,7 @@
</td>
<td>@app.AppName</td>
<td>@typeof(AppType).DisplayName(app.AppType)</td>
<td>@app.ViewStyle</td>
<td style="text-align:right">
@if (app.IsOwner)
{