|
|
@@ -14,6 +14,7 @@ SubscriptionHandler = require('../Subscription/SubscriptionHandler')
|
|
|
projectEntityHandler = require('../Project/ProjectEntityHandler')
|
|
|
TpdsPollingBackgroundTasks = require("../ThirdPartyDataStore/TpdsPollingBackgroundTasks")
|
|
|
EditorRealTimeController = require("../Editor/EditorRealTimeController")
|
|
|
+SystemMessageManager = require("../SystemMessages/SystemMessageManager")
|
|
|
|
|
|
oneMinInMs = 60 * 1000
|
|
|
|
|
|
@@ -29,66 +30,20 @@ setTimeout updateOpenConnetionsMetrics, oneMinInMs
|
|
|
|
|
|
module.exports = AdminController =
|
|
|
|
|
|
- index : (req, res)=>
|
|
|
+ index : (req, res, next)=>
|
|
|
http = require('http')
|
|
|
openSockets = {}
|
|
|
for url, agents of require('http').globalAgent.sockets
|
|
|
openSockets["http://#{url}"] = (agent._httpMessage.path for agent in agents)
|
|
|
for url, agents of require('https').globalAgent.sockets
|
|
|
openSockets["https://#{url}"] = (agent._httpMessage.path for agent in agents)
|
|
|
- memory = process.memoryUsage()
|
|
|
- io = require("../../infrastructure/Server").io
|
|
|
- allUsers = io.sockets.clients()
|
|
|
- users = []
|
|
|
- allUsers.forEach (user)->
|
|
|
- u = {}
|
|
|
- user.get "email", (err, email)->
|
|
|
- u.email = email
|
|
|
- user.get "first_name", (err, first_name)->
|
|
|
- u.first_name = first_name
|
|
|
- user.get "last_name", (err, last_name)->
|
|
|
- u.last_name = last_name
|
|
|
- user.get "project_id", (err, project_id)->
|
|
|
- u.project_id = project_id
|
|
|
- user.get "user_id", (err, user_id)->
|
|
|
- u.user_id = user_id
|
|
|
- user.get "signup_date", (err, signup_date)->
|
|
|
- u.signup_date = signup_date
|
|
|
- user.get "login_count", (err, login_count)->
|
|
|
- u.login_count = login_count
|
|
|
- user.get "connected_time", (err, connected_time)->
|
|
|
- now = new Date()
|
|
|
- connected_mins = (((now - new Date(connected_time))/1000)/60).toFixed(2)
|
|
|
- u.connected_mins = connected_mins
|
|
|
- users.push u
|
|
|
|
|
|
- d = new Date()
|
|
|
- today = d.getDate()+":"+(d.getMonth()+1)+":"+d.getFullYear()+":"
|
|
|
- yesterday = (d.getDate()-1)+":"+(d.getMonth()+1)+":"+d.getFullYear()+":"
|
|
|
-
|
|
|
- multi = rclient.multi()
|
|
|
- multi.get today+"docsets"
|
|
|
- multi.get yesterday+"docsets"
|
|
|
- multi.exec (err, replys)->
|
|
|
- redisstats =
|
|
|
- today:
|
|
|
- docsets: replys[0]
|
|
|
- compiles: replys[1]
|
|
|
- yesterday:
|
|
|
- docsets: replys[2]
|
|
|
- compiles: replys[3]
|
|
|
- DocumentUpdaterHandler.getNumberOfDocsInMemory (err, numberOfInMemoryDocs)=>
|
|
|
- User.count (err, totalUsers)->
|
|
|
- Project.count (err, totalProjects)->
|
|
|
- res.render 'admin',
|
|
|
- title: 'System Admin'
|
|
|
- currentConnectedUsers:allUsers.length
|
|
|
- users: users
|
|
|
- numberOfAceDocs : numberOfInMemoryDocs
|
|
|
- totalUsers: totalUsers
|
|
|
- totalProjects: totalProjects
|
|
|
- openSockets: openSockets
|
|
|
- redisstats: redisstats
|
|
|
+ SystemMessageManager.getMessagesFromDB (error, systemMessages) ->
|
|
|
+ return next(error) if error?
|
|
|
+ res.render 'admin',
|
|
|
+ title: 'System Admin'
|
|
|
+ openSockets: openSockets
|
|
|
+ systemMessages: systemMessages
|
|
|
|
|
|
dissconectAllUsers: (req, res)=>
|
|
|
logger.warn "disconecting everyone"
|
|
|
@@ -122,3 +77,13 @@ module.exports = AdminController =
|
|
|
pollUsersWithDropbox: (req, res)->
|
|
|
TpdsPollingBackgroundTasks.pollUsersWithDropbox ->
|
|
|
res.send 200
|
|
|
+
|
|
|
+ createMessage: (req, res, next) ->
|
|
|
+ SystemMessageManager.createMessage req.body.content, (error) ->
|
|
|
+ return next(error) if error?
|
|
|
+ res.send 200
|
|
|
+
|
|
|
+ clearMessages: (req, res, next) ->
|
|
|
+ SystemMessageManager.clearMessages (error) ->
|
|
|
+ return next(error) if error?
|
|
|
+ res.send 200
|