mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
closed #2495
This commit is contained in:
@@ -591,6 +591,7 @@ var fs = require('fs'),
|
|||||||
plugins[i].id = plugins[i].name;
|
plugins[i].id = plugins[i].name;
|
||||||
plugins[i].installed = false;
|
plugins[i].installed = false;
|
||||||
plugins[i].active = false;
|
plugins[i].active = false;
|
||||||
|
plugins[i].error = false;
|
||||||
plugins[i].url = plugins[i].repository ? plugins[i].repository.url : '';
|
plugins[i].url = plugins[i].repository ? plugins[i].repository.url : '';
|
||||||
plugins[i].latest = getLatestVersion(plugins[i].versions);
|
plugins[i].latest = getLatestVersion(plugins[i].versions);
|
||||||
pluginMap[plugins[i].name] = plugins[i];
|
pluginMap[plugins[i].name] = plugins[i];
|
||||||
@@ -602,6 +603,13 @@ var fs = require('fs'),
|
|||||||
}
|
}
|
||||||
|
|
||||||
async.each(installedPlugins, function(plugin, next) {
|
async.each(installedPlugins, function(plugin, next) {
|
||||||
|
// If it errored out because a package.json or plugin.json couldn't be read, no need to do this stuff
|
||||||
|
if (plugin.error) {
|
||||||
|
pluginMap[plugin.id].installed = true;
|
||||||
|
pluginMap[plugin.id].error = true;
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
pluginMap[plugin.id] = pluginMap[plugin.id] || {};
|
pluginMap[plugin.id] = pluginMap[plugin.id] || {};
|
||||||
pluginMap[plugin.id].id = pluginMap[plugin.id].id || plugin.id;
|
pluginMap[plugin.id].id = pluginMap[plugin.id].id || plugin.id;
|
||||||
pluginMap[plugin.id].name = plugin.name || pluginMap[plugin.id].name;
|
pluginMap[plugin.id].name = plugin.name || pluginMap[plugin.id].name;
|
||||||
@@ -703,14 +711,20 @@ var fs = require('fs'),
|
|||||||
}, next);
|
}, next);
|
||||||
},
|
},
|
||||||
function(results, next) {
|
function(results, next) {
|
||||||
var packageInfo, pluginInfo;
|
var packageName = path.basename(file),
|
||||||
|
packageInfo, pluginInfo;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
packageInfo = JSON.parse(results.packageJSON);
|
packageInfo = JSON.parse(results.packageJSON);
|
||||||
pluginInfo = JSON.parse(results.pluginJSON);
|
pluginInfo = JSON.parse(results.pluginJSON);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
winston.warn("Plugin: " + file + " is corrupted or invalid. Please check package.json and plugin.json for errors.");
|
winston.warn("Plugin `" + packageName + "` is corrupted or invalid. Please check either package.json or plugin.json for errors.");
|
||||||
return next(err, null);
|
return next(null, {
|
||||||
|
id: packageName,
|
||||||
|
installed: true,
|
||||||
|
error: true,
|
||||||
|
active: null
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Plugins.isActive(packageInfo.name, function(err, active) {
|
Plugins.isActive(packageInfo.name, function(err, active) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<!-- BEGIN plugins -->
|
<!-- BEGIN plugins -->
|
||||||
<!-- IF plugins.installed -->
|
<!-- IF plugins.installed -->
|
||||||
|
<!-- IF !plugins.error -->
|
||||||
<li data-plugin-id="{plugins.id}" data-version="{plugins.version}" class="clearfix">
|
<li data-plugin-id="{plugins.id}" data-version="{plugins.version}" class="clearfix">
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<button data-action="toggleActive" class="btn <!-- IF plugins.active --> btn-warning<!-- ELSE --> btn-success<!-- ENDIF plugins.active -->"><i class="fa fa-power-off"></i> <!-- IF plugins.active -->Deactivate<!-- ELSE -->Activate<!-- ENDIF plugins.active --></button>
|
<button data-action="toggleActive" class="btn <!-- IF plugins.active --> btn-warning<!-- ELSE --> btn-success<!-- ENDIF plugins.active -->"><i class="fa fa-power-off"></i> <!-- IF plugins.active -->Deactivate<!-- ELSE -->Activate<!-- ENDIF plugins.active --></button>
|
||||||
@@ -26,6 +27,21 @@
|
|||||||
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>
|
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>
|
||||||
<!-- ENDIF plugins.url -->
|
<!-- ENDIF plugins.url -->
|
||||||
</li>
|
</li>
|
||||||
|
<!-- ENDIF !plugins.error -->
|
||||||
|
<!-- IF plugins.error -->
|
||||||
|
<li data-plugin-id="{plugins.id}" class="clearfix">
|
||||||
|
<div class="pull-right">
|
||||||
|
<button class="btn btn-default disabled"><i class="fa fa-exclamation-triangle"></i> Unknown</button>
|
||||||
|
|
||||||
|
<button data-action="toggleInstall" data-installed="1" class="btn btn-danger"><i class="fa fa-trash-o"></i> Uninstall</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2><strong>{plugins.id}</strong></h2>
|
||||||
|
<p>
|
||||||
|
The state of this plugin could not be determined, possibly due to a misconfiguration error.
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<!-- ENDIF plugins.error -->
|
||||||
<!-- ENDIF plugins.installed -->
|
<!-- ENDIF plugins.installed -->
|
||||||
<!-- END plugins -->
|
<!-- END plugins -->
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Reference in New Issue
Block a user