]> BookStack Code Mirror - bookstack/blob - resources/js/services/events.js
French translation update
[bookstack] / resources / js / services / events.js
1 /**
2  * Simple global events manager
3  */
4 class Events {
5     constructor() {
6         this.listeners = {};
7         this.stack = [];
8     }
9
10     emit(eventName, eventData) {
11         this.stack.push({name: eventName, data: eventData});
12         if (typeof this.listeners[eventName] === 'undefined') return this;
13         let eventsToStart = this.listeners[eventName];
14         for (let i = 0; i < eventsToStart.length; i++) {
15             let event = eventsToStart[i];
16             event(eventData);
17         }
18         return this;
19     }
20
21     listen(eventName, callback) {
22         if (typeof this.listeners[eventName] === 'undefined') this.listeners[eventName] = [];
23         this.listeners[eventName].push(callback);
24         return this;
25     }
26 }
27
28 export default Events;