From aeb96b5b7019b2f0bc40ed699dc2877a8729a06b Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Thu, 29 Mar 2018 10:47:58 +0200
Subject: [dnbd3] Fix dnbd3 reboot status feedback
Closes #3276
---
.../dnbd3/templates/page-serverlist.html | 24 ++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
(limited to 'modules-available/dnbd3/templates/page-serverlist.html')
diff --git a/modules-available/dnbd3/templates/page-serverlist.html b/modules-available/dnbd3/templates/page-serverlist.html
index a51e9723..65e4d6ea 100644
--- a/modules-available/dnbd3/templates/page-serverlist.html
+++ b/modules-available/dnbd3/templates/page-serverlist.html
@@ -389,20 +389,32 @@ document.addEventListener('DOMContentLoaded', function () {
}
$t.html('');
var sid = rebootServerId;
+ var taskId = false;
+ var lastText;
var query = function() {
+ data = {"token": TOKEN, "action": "reboot", "server": sid};
+ if (taskId !== false) data['taskid'] = taskId;
$.ajax({
- "data": {"token": TOKEN, "action": "reboot", "server": sid},
+ "data": data,
"method": "POST",
- "dataType": "text",
+ "dataType": "json",
"url": "?do=dnbd3"
}).done(function (data) {
- $t.text(data);
- if (data.indexOf('REBOOTING') !== -1 || data.indexOf('CONNECTING') !== -1) {
+ if (!data || !data.taskId) return;
+ if (taskId === false) taskId = data.taskId;
+ if (data.error) data.rebootStatus += ' (' + data.error + ')';
+ if (data.rebootStatus !== lastText) {
+ $t.empty().text(data.rebootStatus);
+ }
+ if (data.taskStatus === 'TASK_PROCESSING' || data.taskStatus === 'TASK_WAITING') {
setTimeout(query, 5000);
- $t.append($(''));
+ if (data.rebootStatus !== lastText) {
+ $t.append($(''));
+ }
}
+ lastText = data.rebootStatus;
}).fail(function () {
- $.text('Failed');
+ $t.text('Failed');
});
};
query();
--
cgit v1.2.3-55-g7522