Make unused assets in store settings collapsed (#1310)

This commit is contained in:
Andrew Camilleri
2020-01-26 11:45:24 +01:00
committed by Nicolas Dorier
parent e00136de93
commit 06f1c17a5f
3 changed files with 25 additions and 4 deletions

View File

@@ -499,13 +499,16 @@ namespace BTCPayServer.Controllers
case BitcoinPaymentType _: case BitcoinPaymentType _:
var strategy = derivationByCryptoCode.TryGet(paymentMethodId.CryptoCode); var strategy = derivationByCryptoCode.TryGet(paymentMethodId.CryptoCode);
var network = _NetworkProvider.GetNetwork<BTCPayNetwork>(paymentMethodId.CryptoCode); var network = _NetworkProvider.GetNetwork<BTCPayNetwork>(paymentMethodId.CryptoCode);
var value = strategy?.ToPrettyString() ?? string.Empty;
vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme() vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme()
{ {
Crypto = paymentMethodId.CryptoCode, Crypto = paymentMethodId.CryptoCode,
WalletSupported = network.WalletSupported, WalletSupported = network.WalletSupported,
Value = strategy?.ToPrettyString() ?? string.Empty, Value = value,
WalletId = new WalletId(store.Id, paymentMethodId.CryptoCode), WalletId = new WalletId(store.Id, paymentMethodId.CryptoCode),
Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null,
Collapsed = network is ElementsBTCPayNetwork elementsBTCPayNetwork && elementsBTCPayNetwork.NetworkCryptoCode != elementsBTCPayNetwork.CryptoCode && string.IsNullOrEmpty(value)
}); });
break; break;
case LightningPaymentType _: case LightningPaymentType _:

View File

@@ -14,6 +14,7 @@ namespace BTCPayServer.Models.StoreViewModels
public WalletId WalletId { get; set; } public WalletId WalletId { get; set; }
public bool WalletSupported { get; set; } public bool WalletSupported { get; set; }
public bool Enabled { get; set; } public bool Enabled { get; set; }
public bool Collapsed { get; set; }
} }
public class AdditionalPaymentMethod public class AdditionalPaymentMethod

View File

@@ -97,9 +97,9 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach(var scheme in Model.DerivationSchemes) @foreach(var scheme in Model.DerivationSchemes.OrderBy(scheme => scheme.Collapsed))
{ {
<tr> <tr class="@(@scheme.Collapsed? "collapsed": "")">
<td>@scheme.Crypto</td> <td>@scheme.Crypto</td>
<td class="smMaxWidth text-truncate">@scheme.Value</td> <td class="smMaxWidth text-truncate">@scheme.Value</td>
<td style="text-align:center;"> <td style="text-align:center;">
@@ -121,6 +121,13 @@
</td> </td>
</tr> </tr>
} }
@if (Model.DerivationSchemes.Any(scheme => scheme.Collapsed))
{
<tr class="only-for-js">
<td colspan="4"><button class="btn btn-link" id="toggle-assets" type="button">Show additional assets</button></td>
</tr>
}
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -250,4 +257,14 @@
@section Scripts { @section Scripts {
@await Html.PartialAsync("_ValidationScriptsPartial") @await Html.PartialAsync("_ValidationScriptsPartial")
<script>
$(document).ready(function(){
$(".collapsed").hide();
$("#toggle-assets").click(function() {
$(".collapsed").show();
$(this).parents("tr").hide();
});
});
</script>
} }