diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js
index a5de1568c5..2ae4175bfc 100644
--- a/public/src/admin/admin.js
+++ b/public/src/admin/admin.js
@@ -162,25 +162,9 @@
$('.restart').off('click').on('click', function() {
bootbox.confirm('Are you sure you wish to restart NodeBB?', function(confirm) {
if (confirm) {
- app.alert({
- alert_id: 'instance_restart',
- type: 'info',
- title: 'Restarting... ',
- message: 'NodeBB is restarting.',
- timeout: 5000
+ require(['admin/modules/instance'], function(instance) {
+ instance.restart();
});
-
- $(window).one('action:reconnected', function() {
- app.alert({
- alert_id: 'instance_restart',
- type: 'success',
- title: ' Success',
- message: 'NodeBB has successfully restarted.',
- timeout: 5000
- });
- });
-
- socket.emit('admin.restart');
}
});
});
diff --git a/public/src/admin/modules/instance.js b/public/src/admin/modules/instance.js
index 7a213ec02d..abffdcbe64 100644
--- a/public/src/admin/modules/instance.js
+++ b/public/src/admin/modules/instance.js
@@ -37,6 +37,32 @@ define('admin/modules/instance', function() {
}
});
}
+
+ instance.restart = function(callback) {
+ app.alert({
+ alert_id: 'instance_restart',
+ type: 'info',
+ title: 'Restarting... ',
+ message: 'NodeBB is restarting.',
+ timeout: 5000
+ });
+
+ $(window).one('action:reconnected', function() {
+ app.alert({
+ alert_id: 'instance_restart',
+ type: 'success',
+ title: ' Success',
+ message: 'NodeBB has successfully restarted.',
+ timeout: 5000
+ });
+
+ if (typeof callback === 'function') {
+ callback();
+ }
+ });
+
+ socket.emit('admin.restart');
+ }
return instance;
});