From d6fb3ee8082024d2ba32154d820ccb22bda940d5 Mon Sep 17 00:00:00 2001 From: gregorybesson Date: Fri, 31 Mar 2017 15:49:45 +0200 Subject: [PATCH] enhancement: Activity stream updated even when no one is listening --- src/cli/core/manager/Manager.js | 6 ++++++ src/server/routes/operations/post/submit.js | 2 +- src/server/routes/rest/activity-stream.js | 3 +-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/cli/core/manager/Manager.js b/src/cli/core/manager/Manager.js index f46895ea..1db7b9ef 100644 --- a/src/cli/core/manager/Manager.js +++ b/src/cli/core/manager/Manager.js @@ -68,8 +68,14 @@ class Manager { template: new events.EventEmitter(0), structure: new events.EventEmitter(0), reference: new events.EventEmitter(0), + activity: new events.EventEmitter(0), } + this.events.activity.on('activity', function(data) { + this.addActivity(data) + this.events.activity.emit("activity-stream", data) + }.bind(this)); + // watch template folder try { fse.accessSync(this._pathTemplate, fse.F_OK) diff --git a/src/server/routes/operations/post/submit.js b/src/server/routes/operations/post/submit.js index 0fa0cfba..806dbe30 100644 --- a/src/server/routes/operations/post/submit.js +++ b/src/server/routes/operations/post/submit.js @@ -36,7 +36,7 @@ var route = function(req, res, next){ if(res.user && res.user.username){ username = res.user.username } - res.app.emit("activity-stream", {operation: operation.workflow, post: operation.postUrl, user: username}) + Manager.instance.events.activity.emit("activity", {operation: operation.workflow, post: operation.postUrl, user: username}) res.set('Content-Type', 'application/json') res.send(JSON.stringify(result)) }, diff --git a/src/server/routes/rest/activity-stream.js b/src/server/routes/rest/activity-stream.js index 400e9d5a..e70fa788 100644 --- a/src/server/routes/rest/activity-stream.js +++ b/src/server/routes/rest/activity-stream.js @@ -4,7 +4,6 @@ import { } from '../../../cli' var eventOnActivity = function(data) { - Manager.instance.addActivity(data) var activities = Manager.instance.getActivities() this.write('data: {\n') var i = 0 @@ -34,7 +33,7 @@ var route = function(req, res) { }) let evt = eventOnActivity.bind(res) - res.app.on("activity-stream", evt) + Manager.instance.events.activity.on("activity-stream", evt) if (!req.headers['last-event-id']) { var activities = Manager.instance.getActivities()