@model BTCPayServer.Controllers.ServerController.ListPluginsViewModel @{ ViewData.SetActivePageAndTitle(ServerNavPages.Plugins); var installed = Model.Installed.Select(plugin => plugin.Identifier); var availableAndNotInstalled = Model.Available.Where(plugin => !installed.Contains(plugin.Identifier)); } @if (Model.Commands.Any()) {
You need to restart BTCPay Server in order to update your active plugins. @if (Model.CanShowRestart) {
}
} @if (Model.Installed.Any()) {

Installed Plugins

@foreach (var plugin in Model.Installed) { var matchedAvailable = Model.Available.SingleOrDefault(availablePlugin => availablePlugin.Identifier == plugin.Identifier); var updateAvailable = matchedAvailable != null && plugin.Version < matchedAvailable.Version;

@plugin.Name

@plugin.Version @if (plugin.SystemPlugin) {
System plugin
} else if (updateAvailable) {
@matchedAvailable.Version available
}

@plugin.Description

@if (!plugin.SystemPlugin) { }
}
} @if (availableAndNotInstalled.Any()) {

Available Plugins

@foreach (var plugin in availableAndNotInstalled) {

@plugin.Name

@plugin.Version

@plugin.Description

}
}

Add plugin manually

This is an extremely dangerous operation!
Only upload plugins from trusted sources.
@if (Model.Commands.Any()) {

Pending actions

    @foreach (var extComm in Model.Commands.GroupBy(tuple => tuple.plugin)) {
  • @extComm.Key
  • }
} @section Scripts { }