mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -03:30
add message service
This commit is contained in:
parent
34a2128af8
commit
a3fdd244b5
@ -8,6 +8,7 @@ import RenderService from '~features/output/render.service';
|
||||
import ScrollService from '~features/output/scroll.service';
|
||||
import EngineService from '~features/output/engine.service';
|
||||
import StatusService from '~features/output/status.service';
|
||||
import MessageService from '~features/output/message.service';
|
||||
import LegacyRedirect from '~features/output/legacy.route';
|
||||
|
||||
import DetailsDirective from '~features/output/details.directive';
|
||||
@ -221,6 +222,7 @@ angular
|
||||
.service('JobRenderService', RenderService)
|
||||
.service('JobEventEngine', EngineService)
|
||||
.service('JobStatusService', StatusService)
|
||||
.service('JobMessageService', MessageService)
|
||||
.directive('atJobDetails', DetailsDirective)
|
||||
.directive('atJobSearch', SearchDirective)
|
||||
.directive('atJobStats', StatsDirective)
|
||||
|
||||
41
awx/ui/client/features/output/message.service.js
Normal file
41
awx/ui/client/features/output/message.service.js
Normal file
@ -0,0 +1,41 @@
|
||||
function MessageService () {
|
||||
const listeners = {};
|
||||
const registry = {};
|
||||
|
||||
this.subscribe = (key, listener) => {
|
||||
registry[key] = registry[key] || 0;
|
||||
|
||||
listeners[key] = listeners[key] || {};
|
||||
listeners[key][registry[key]] = listener;
|
||||
|
||||
const unsubscribe = this.createCallback(key, registry[key]);
|
||||
|
||||
registry[key]++;
|
||||
|
||||
return unsubscribe;
|
||||
};
|
||||
|
||||
this.dispatch = (key, data) => {
|
||||
if (!listeners[key]) {
|
||||
return;
|
||||
}
|
||||
|
||||
const indices = Object.keys(listeners[key]);
|
||||
|
||||
for (let i = 0; i < indices.length; i++) {
|
||||
listeners[key][indices[i]](data);
|
||||
}
|
||||
};
|
||||
|
||||
this.createCallback = (key, index) => {
|
||||
const callback = () => {
|
||||
if (listeners[key]) {
|
||||
delete listeners[key][index];
|
||||
}
|
||||
};
|
||||
|
||||
return callback;
|
||||
};
|
||||
}
|
||||
|
||||
export default MessageService;
|
||||
Loading…
x
Reference in New Issue
Block a user