mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 05:17:36 -02:30
always remove websocket listeners
This commit is contained in:
@@ -9,6 +9,7 @@ let engine;
|
|||||||
let status;
|
let status;
|
||||||
|
|
||||||
let vm;
|
let vm;
|
||||||
|
let listeners = [];
|
||||||
|
|
||||||
function JobsIndexController (
|
function JobsIndexController (
|
||||||
_resource_,
|
_resource_,
|
||||||
@@ -89,21 +90,32 @@ function init () {
|
|||||||
status.setJobStatus('running');
|
status.setJobStatus('running');
|
||||||
},
|
},
|
||||||
onStop () {
|
onStop () {
|
||||||
|
stopListening();
|
||||||
status.updateStats();
|
status.updateStats();
|
||||||
status.dispatch();
|
status.dispatch();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!status.state.running) {
|
if (!status.state.running) {
|
||||||
return next();
|
next();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.$on(resource.ws.events, (scope, data) => handleJobEvent(data));
|
resource.model.get(`related.${resource.related}.results`)
|
||||||
$scope.$on(resource.ws.status, (scope, data) => handleStatusEvent(data));
|
|
||||||
|
|
||||||
return resource.model
|
|
||||||
.get(`related.${resource.related}.results`)
|
|
||||||
.forEach(handleJobEvent);
|
.forEach(handleJobEvent);
|
||||||
|
|
||||||
|
startListening();
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopListening () {
|
||||||
|
listeners.forEach(deregister => deregister());
|
||||||
|
listeners = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
function startListening () {
|
||||||
|
stopListening();
|
||||||
|
listeners.push($scope.$on(resource.ws.events, (scope, data) => handleJobEvent(data)));
|
||||||
|
listeners.push($scope.$on(resource.ws.status, (scope, data) => handleStatusEvent(data)));
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleStatusEvent (data) {
|
function handleStatusEvent (data) {
|
||||||
@@ -115,9 +127,8 @@ function handleJobEvent (data) {
|
|||||||
status.pushJobEvent(data);
|
status.pushJobEvent(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function devClear (pageMode) {
|
function devClear () {
|
||||||
init(pageMode);
|
render.clear().then(() => init());
|
||||||
render.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function next () {
|
function next () {
|
||||||
|
|||||||
Reference in New Issue
Block a user