installed plugins are displayed at the top
v1.18.x
barisusakli 11 years ago
parent 4ca7eaf1fc
commit 3ca45fa061

@ -48,7 +48,7 @@ define(function() {
btn.html('<i class="fa fa-download"></i> Install');
}
btn.toggleClass('btn-warning', status.installed).toggleClass('btn-success', !status.installed)
btn.toggleClass('btn-danger', status.installed).toggleClass('btn-success', !status.installed)
.attr('disabled', false);
activateBtn.toggleClass('hide', !status.installed);

@ -484,27 +484,58 @@ var fs = require('fs'),
return callback(null, []);
}
async.map(plugins, function(plugin, next) {
var pluginMap = {};
for(var i=0; i<plugins.length; ++i) {
plugins[i].id = plugins[i].name;
plugins[i].installed = false;
plugins[i].active = false;
pluginMap[plugins[i].name] = plugins[i];
}
Plugins.showInstalled(function(err, installedPlugins) {
if (err) {
return callback(err);
}
plugin.id = plugin.name;
async.each(installedPlugins, function(plugin, next) {
async.parallel({
active: function(next) {
Plugins.isActive(plugin.id, next);
},
installed: function(next) {
Plugins.isInstalled(plugin.id, next);
}
}, function(err, results) {
pluginMap[plugin.id] = pluginMap[plugin.id] || {};
pluginMap[plugin.id].name = plugin.id;
pluginMap[plugin.id].description = plugin.description;
pluginMap[plugin.id].url = plugin.url;
pluginMap[plugin.id].installed = true;
Plugins.isActive(plugin.id, function(err, active) {
if (err) {
return next(err);
}
pluginMap[plugin.id].active = active;
next();
});
}, function(err) {
if (err) {
return next(err);
return callback(err);
}
plugin.active = results.active;
plugin.installed = results.installed;
next(null, plugin);
});
}, callback);
var pluginArray = [];
for (var key in pluginMap) {
pluginArray.push(pluginMap[key]);
}
pluginArray.sort(function(a, b) {
if(a.installed && !b.installed) {
return -1;
} else if(!a.installed && b.installed) {
return 1;
}
return 0;
});
callback(null, pluginArray);
});
});
});
};
@ -536,7 +567,7 @@ var fs = require('fs'),
}
callback(stats.isDirectory());
})
});
}, function(plugins){
next(null, plugins);
});
@ -556,7 +587,7 @@ var fs = require('fs'),
try {
var config = JSON.parse(configJSON);
} catch (err) {
winston.warn("Plugin: " + file + " is corrupted or invalid. Please check plugin.json for errors.")
winston.warn("Plugin: " + file + " is corrupted or invalid. Please check plugin.json for errors.");
return next(err, null);
}

Loading…
Cancel
Save