42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 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 == "SUCCESS") {
 | |
|                 button.innerHTML = "";
 | |
|             }
 | |
| 
 | |
|             if (message.status == "FAILED") {
 | |
|                 window.location.reload();
 | |
|             }
 | |
|         }
 | |
|     }, false);
 | |
| }; | 
