mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import EventEmitter from 'events';
|
|
|
|
const CHANGE_EVENT = 'change';
|
|
|
|
import store from 'stores/redux_store.jsx';
|
|
|
|
class AnalyticsStoreClass extends EventEmitter {
|
|
constructor() {
|
|
super();
|
|
|
|
this.entities = {};
|
|
|
|
store.subscribe(() => {
|
|
const newEntities = store.getState().entities.admin;
|
|
|
|
if (newEntities.analytics !== this.entities.analytics) {
|
|
this.emitChange();
|
|
}
|
|
|
|
if (newEntities.teamAnalytics !== this.entities.teamAnalytics) {
|
|
this.emitChange();
|
|
}
|
|
|
|
this.entities = newEntities;
|
|
});
|
|
}
|
|
|
|
emitChange() {
|
|
this.emit(CHANGE_EVENT);
|
|
}
|
|
|
|
addChangeListener(callback) {
|
|
this.on(CHANGE_EVENT, callback);
|
|
}
|
|
|
|
removeChangeListener(callback) {
|
|
this.removeListener(CHANGE_EVENT, callback);
|
|
}
|
|
|
|
getAllSystem() {
|
|
return JSON.parse(JSON.stringify(store.getState().entities.admin.analytics));
|
|
}
|
|
|
|
getAllTeam(id) {
|
|
const teamStats = store.getState().entities.admin.teamAnalytics[id];
|
|
if (teamStats) {
|
|
return JSON.parse(JSON.stringify(teamStats));
|
|
}
|
|
|
|
return {};
|
|
}
|
|
}
|
|
|
|
var AnalyticsStore = new AnalyticsStoreClass();
|
|
export default AnalyticsStore;
|