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].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>

Loading…
Cancel
Save