58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
var start = function (url) {
|
|
var es = new ReconnectingEventSource(url);
|
|
|
|
console.log("url: " + url);
|
|
|
|
es.onopen = function () {
|
|
console.log('connected');
|
|
};
|
|
|
|
es.addEventListener('stream-error', function (e) {
|
|
es.close();
|
|
message = JSON.parse(e.data);
|
|
console.log('stream error: ' + message.condition + ': ' + message.text);
|
|
}, false);
|
|
|
|
es.onerror = function (e) {
|
|
console.log('connection error');
|
|
};
|
|
|
|
// listening on `message` events and update the corresponding table line.
|
|
// If the status is `FAILED`, we reload the window to ensure a new csrf_token.
|
|
es.addEventListener('message', function (e) {
|
|
message = JSON.parse(e.data);
|
|
console.log("id: " + message.id);
|
|
console.log("status: " + message.status);
|
|
|
|
const tr = document.getElementById(message.id);
|
|
if (tr) {
|
|
var status = tr.querySelector("th[name='status']");
|
|
status.innerHTML = message.status;
|
|
|
|
var button = tr.querySelector("th[name='deploy']");
|
|
if (message.status == "RUNNING") {
|
|
var innerBtn = document.createElement("button");
|
|
innerBtn.setAttribute("disabled", "");
|
|
innerBtn.setAttribute("type", "button");
|
|
innerBtn.className = "btn btn-primary btn-sm"
|
|
|
|
innerSpan = document.createElement("span");
|
|
innerSpan.setAttribute("role", "status");
|
|
innerSpan.innerHTML = "Deploying...";
|
|
|
|
innerBtn.appendChild(innerSpan);
|
|
|
|
button.innerHTML = "";
|
|
button.appendChild(innerBtn);
|
|
}
|
|
|
|
if (message.status == "SUCCESS") {
|
|
button.innerHTML = "";
|
|
}
|
|
|
|
if (message.status == "FAILED") {
|
|
window.location.reload();
|
|
}
|
|
}
|
|
}, false);
|
|
}; |