mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user