mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +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() {
|
$('#plugin-search').on('input propertychange', function() {
|
||||||
var term = $(this).val();
|
var term = $(this).val();
|
||||||
$('.plugins li').each(function() {
|
$('.plugins li').each(function() {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ var fs = require('fs'),
|
|||||||
nconf = require('nconf'),
|
nconf = require('nconf'),
|
||||||
semver = require('semver'),
|
semver = require('semver'),
|
||||||
express = require('express'),
|
express = require('express'),
|
||||||
|
npm = require('npm'),
|
||||||
|
|
||||||
db = require('./database'),
|
db = require('./database'),
|
||||||
emitter = require('./emitter'),
|
emitter = require('./emitter'),
|
||||||
@@ -555,8 +556,6 @@ var fs = require('fs'),
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
var npm = require('npm');
|
|
||||||
|
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
function(next) {
|
function(next) {
|
||||||
Plugins.isActive(id, 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) {
|
Plugins.getTemplates = function(callback) {
|
||||||
var templates = {};
|
var templates = {};
|
||||||
|
|
||||||
@@ -684,7 +694,6 @@ var fs = require('fs'),
|
|||||||
};
|
};
|
||||||
|
|
||||||
function getVersion(name, callback) {
|
function getVersion(name, callback) {
|
||||||
var npm = require('npm');
|
|
||||||
npm.load({}, function() {
|
npm.load({}, function() {
|
||||||
npm.commands.show([name, 'version'], true, function(err, version) {
|
npm.commands.show([name, 'version'], true, function(err, version) {
|
||||||
if (err || !version) {
|
if (err || !version) {
|
||||||
|
|||||||
@@ -98,6 +98,10 @@ SocketAdmin.plugins.toggleInstall = function(socket, plugin_id, callback) {
|
|||||||
plugins.toggleInstall(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) {
|
SocketAdmin.widgets.set = function(socket, data, callback) {
|
||||||
if(!data) {
|
if(!data) {
|
||||||
return callback(new Error('[[error:invalid-data]]'));
|
return callback(new Error('[[error:invalid-data]]'));
|
||||||
|
|||||||
@@ -20,9 +20,9 @@
|
|||||||
<!-- IF plugins.description -->
|
<!-- IF plugins.description -->
|
||||||
<p>{plugins.description}</p>
|
<p>{plugins.description}</p>
|
||||||
<!-- ENDIF plugins.description -->
|
<!-- 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 -->
|
<!-- 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 -->
|
<!-- ENDIF plugins.outdated -->
|
||||||
<!-- IF plugins.url -->
|
<!-- IF plugins.url -->
|
||||||
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>
|
<p>For more information: <a href="{plugins.url}">{plugins.url}</a></p>
|
||||||
|
|||||||
Reference in New Issue
Block a user