Remove system plugins from the plugin list (#4429)

This commit is contained in:
Nicolas Dorier 2022-12-13 18:54:41 +09:00 committed by GitHub
parent 0c3f819200
commit e2c5e2c7fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 10 deletions

View file

@ -123,8 +123,12 @@ namespace BTCPayServer.Plugins
_plugins.Add(plugin);
var fileProvider = CreateEmbeddedFileProviderForAssembly(pluginAssembly);
loadedPlugins.Add((plugin, pluginAssembly, fileProvider));
plugins.AddRange(GetAllPluginTypesFromAssembly(pluginAssembly)
.Select(GetPluginInstanceFromType));
foreach (var p in GetAllPluginTypesFromAssembly(pluginAssembly)
.Select(GetPluginInstanceFromType))
{
p.SystemPlugin = false;
plugins.Add(p);
}
}
catch (Exception e)

View file

@ -52,6 +52,7 @@ namespace BTCPayServer.Plugins
{
var p = v.ManifestInfo.ToObject<AvailablePlugin>();
p.Documentation = v.Documentation;
p.SystemPlugin = false;
return p;
}).ToArray();
}

View file

@ -132,11 +132,11 @@
{
<h3 class="mb-4">Installed Plugins</h3>
<div class="row mb-4">
@foreach (var plugin in Model.Installed)
@foreach (var plugin in Model.Installed.Where(i => !i.SystemPlugin))
{
var matchedAvailable = Model.Available.Where(availablePlugin => availablePlugin.Identifier == plugin.Identifier && availablePlugin.Version > plugin.Version).OrderByDescending(availablePlugin => availablePlugin.Version).ToArray();
var x = matchedAvailable.FirstOrDefault(availablePlugin => DependenciesMet(availablePlugin.Dependencies)) ?? matchedAvailable.FirstOrDefault();
var updateAvailable = !plugin.SystemPlugin && matchedAvailable.Any();
var updateAvailable = matchedAvailable.Any();
var tabId = plugin.Identifier.ToLowerInvariant().Replace(".", "_");
<div class="col col-12 col-md-6 col-lg-12 col-xl-6 col-xxl-4 mb-4">
<div class="card h-100" id="@plugin.Identifier">
@ -151,11 +151,7 @@
<div class="d-flex flex-wrap align-items-center mb-2">
<h5 class="text-muted d-flex align-items-center mt-1 gap-3">
@plugin.Version
@if (plugin.SystemPlugin)
{
<div class="badge bg-light">System plugin</div>
}
else if (updateAvailable && x != null)
@if (updateAvailable && x != null)
{
<div class="badge bg-info">
@x.Version available
@ -219,7 +215,7 @@
@{
var pendingAction = Model.Commands.Any(tuple => tuple.plugin.Equals(plugin.Identifier, StringComparison.InvariantCultureIgnoreCase));
}
@if (!plugin.SystemPlugin && (pendingAction || (updateAvailable && x != null && DependenciesMet(x.Dependencies)) || !DependentOn(plugin.Identifier)))
@if (pendingAction || (updateAvailable && x != null && DependenciesMet(x.Dependencies)) || !DependentOn(plugin.Identifier))
{
<div class="card-footer border-0 pb-3 d-flex">
@if (pendingAction)