v1.18.x
Julian Lam 10 years ago
parent d62cdd5127
commit aaef0ad282

@ -591,6 +591,7 @@ var fs = require('fs'),
plugins[i].id = plugins[i].name;
plugins[i].installed = false;
plugins[i].active = false;
plugins[i].error = false;
plugins[i].url = plugins[i].repository ? plugins[i].repository.url : '';
plugins[i].latest = getLatestVersion(plugins[i].versions);
pluginMap[plugins[i].name] = plugins[i];
@ -602,6 +603,13 @@ var fs = require('fs'),
}
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].id = pluginMap[plugin.id].id || plugin.id;
pluginMap[plugin.id].name = plugin.name || pluginMap[plugin.id].name;
@ -703,14 +711,20 @@ var fs = require('fs'),
}, next);
},
function(results, next) {
var packageInfo, pluginInfo;
var packageName = path.basename(file),
packageInfo, pluginInfo;
try {
packageInfo = JSON.parse(results.packageJSON);
pluginInfo = JSON.parse(results.pluginJSON);
} catch (err) {
winston.warn("Plugin: " + file + " is corrupted or invalid. Please check package.json and plugin.json for errors.");
return next(err, null);
winston.warn("Plugin `" + packageName + "` is corrupted or invalid. Please check either package.json or plugin.json for errors.");
return next(null, {
id: packageName,
installed: true,
error: true,
active: null
});
}
Plugins.isActive(packageInfo.name, function(err, active) {

@ -6,6 +6,7 @@
<ul>
<!-- BEGIN plugins -->
<!-- IF plugins.installed -->
<!-- IF !plugins.error -->
<li data-plugin-id="{plugins.id}" data-version="{plugins.version}" class="clearfix">
<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>
@ -26,6 +27,21 @@
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>
<!-- ENDIF plugins.url -->
</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 -->
<!-- END plugins -->
</ul>

Loading…
Cancel
Save