feat: Events / audit log (#1008)
* feat: Record events in DB * feat: events API * First pass, hacky activity feed * WIP * Reset dashboard * feat: audit log UI feat: store ip address * chore: Document events.list api * fix: command specs * await event create * fix: backlinks service * tidy * fix: Hide audit log menu item if not admin
This commit is contained in:
@@ -153,6 +153,7 @@ export default class BaseStore<T: BaseModel> {
|
||||
res.data.forEach(this.add);
|
||||
this.isLoaded = true;
|
||||
});
|
||||
return res.data;
|
||||
} finally {
|
||||
this.isFetching = false;
|
||||
}
|
||||
|
||||
19
app/stores/EventsStore.js
Normal file
19
app/stores/EventsStore.js
Normal file
@@ -0,0 +1,19 @@
|
||||
// @flow
|
||||
import { sortBy } from 'lodash';
|
||||
import { computed } from 'mobx';
|
||||
import BaseStore from './BaseStore';
|
||||
import RootStore from './RootStore';
|
||||
import Event from 'models/Event';
|
||||
|
||||
export default class EventsStore extends BaseStore<Event> {
|
||||
actions = ['list'];
|
||||
|
||||
constructor(rootStore: RootStore) {
|
||||
super(rootStore, Event);
|
||||
}
|
||||
|
||||
@computed
|
||||
get orderedData(): Event[] {
|
||||
return sortBy(Array.from(this.data.values()), 'createdAt').reverse();
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ import ApiKeysStore from './ApiKeysStore';
|
||||
import AuthStore from './AuthStore';
|
||||
import CollectionsStore from './CollectionsStore';
|
||||
import DocumentsStore from './DocumentsStore';
|
||||
import EventsStore from './EventsStore';
|
||||
import IntegrationsStore from './IntegrationsStore';
|
||||
import NotificationSettingsStore from './NotificationSettingsStore';
|
||||
import RevisionsStore from './RevisionsStore';
|
||||
@@ -16,6 +17,7 @@ export default class RootStore {
|
||||
auth: AuthStore;
|
||||
collections: CollectionsStore;
|
||||
documents: DocumentsStore;
|
||||
events: EventsStore;
|
||||
integrations: IntegrationsStore;
|
||||
notificationSettings: NotificationSettingsStore;
|
||||
revisions: RevisionsStore;
|
||||
@@ -29,6 +31,7 @@ export default class RootStore {
|
||||
this.auth = new AuthStore(this);
|
||||
this.collections = new CollectionsStore(this);
|
||||
this.documents = new DocumentsStore(this);
|
||||
this.events = new EventsStore(this);
|
||||
this.integrations = new IntegrationsStore(this);
|
||||
this.notificationSettings = new NotificationSettingsStore(this);
|
||||
this.revisions = new RevisionsStore(this);
|
||||
@@ -42,6 +45,7 @@ export default class RootStore {
|
||||
this.apiKeys.clear();
|
||||
this.collections.clear();
|
||||
this.documents.clear();
|
||||
this.events.clear();
|
||||
this.integrations.clear();
|
||||
this.notificationSettings.clear();
|
||||
this.revisions.clear();
|
||||
|
||||
Reference in New Issue
Block a user