barisusakli 11 years ago
parent 4cbb7e9832
commit 3819d11be2

@ -65,6 +65,24 @@ define('admin/extend/plugins', function() {
});
});
pluginsList.on('click', 'button[data-action="upgrade"]', function() {
var btn = $(this);
var parent = btn.parents('li');
pluginID = parent.attr('data-plugin-id');
btn.attr('disabled', true).find('i').attr('class', 'fa fa-refresh fa-spin');
socket.emit('admin.plugins.upgrade', pluginID, function(err) {
if (err) {
return app.alertError(err.message);
}
parent.find('.fa-exclamation-triangle').remove();
parent.find('.currentVersion').text(parent.find('.latestVersion').text());
btn.remove();
});
});
$('#plugin-search').on('input propertychange', function() {
var term = $(this).val();
$('.plugins li').each(function() {

@ -7,6 +7,7 @@ var fs = require('fs'),
nconf = require('nconf'),
semver = require('semver'),
express = require('express'),
npm = require('npm'),
db = require('./database'),
emitter = require('./emitter'),
@ -555,8 +556,6 @@ var fs = require('fs'),
return callback(err);
}
var npm = require('npm');
async.waterfall([
function(next) {
Plugins.isActive(id, next);
@ -585,6 +584,17 @@ var fs = require('fs'),
});
};
Plugins.upgrade = function(id, callback) {
async.waterfall([
function(next) {
npm.load({}, next);
},
function(res, next) {
npm.commands.install([id], next);
}
], callback);
};
Plugins.getTemplates = function(callback) {
var templates = {};
@ -684,7 +694,6 @@ var fs = require('fs'),
};
function getVersion(name, callback) {
var npm = require('npm');
npm.load({}, function() {
npm.commands.show([name, 'version'], true, function(err, version) {
if (err || !version) {

@ -98,6 +98,10 @@ SocketAdmin.plugins.toggleInstall = function(socket, plugin_id, callback) {
plugins.toggleInstall(plugin_id, callback);
};
SocketAdmin.plugins.upgrade = function(socket, plugin_id, callback) {
plugins.upgrade(plugin_id, callback);
};
SocketAdmin.widgets.set = function(socket, data, callback) {
if(!data) {
return callback(new Error('[[error:invalid-data]]'));

@ -20,9 +20,9 @@
<!-- IF plugins.description -->
<p>{plugins.description}</p>
<!-- ENDIF plugins.description -->
<!-- IF plugins.outdated --><i class="fa fa-exclamation-triangle text-danger"></i> <!-- ENDIF plugins.outdated --><small>Installed <strong>{plugins.version}</strong> | Latest <strong>{plugins.latest}</strong></small>
<!-- IF plugins.outdated --><i class="fa fa-exclamation-triangle text-danger"></i> <!-- ENDIF plugins.outdated --><small>Installed <strong class="currentVersion">{plugins.version}</strong> | Latest <strong class="latestVersion">{plugins.latest}</strong></small>
<!-- IF plugins.outdated -->
<button data-action="upgrade" class="btn btn-success btn-xs">Upgrade</button>
<button data-action="upgrade" class="btn btn-success btn-xs"><i class="fa fa-download"></i> Upgrade</button>
<!-- ENDIF plugins.outdated -->
<!-- IF plugins.url -->
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>

Loading…
Cancel
Save