TrackChangesController.coffee 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. RangesManager = require "./RangesManager"
  2. logger = require "logger-sharelatex"
  3. UserInfoController = require "../User/UserInfoController"
  4. DocumentUpdaterHandler = require "../DocumentUpdater/DocumentUpdaterHandler"
  5. EditorRealTimeController = require("../Editor/EditorRealTimeController")
  6. TrackChangesManager = require "./TrackChangesManager"
  7. module.exports = TrackChangesController =
  8. getAllRanges: (req, res, next) ->
  9. project_id = req.params.project_id
  10. logger.log {project_id}, "request for project ranges"
  11. RangesManager.getAllRanges project_id, (error, docs = []) ->
  12. return next(error) if error?
  13. docs = ({id: d._id, ranges: d.ranges} for d in docs)
  14. res.json docs
  15. getAllChangesUsers: (req, res, next) ->
  16. project_id = req.params.project_id
  17. logger.log {project_id}, "request for project range users"
  18. RangesManager.getAllChangesUsers project_id, (error, users) ->
  19. return next(error) if error?
  20. users = (UserInfoController.formatPersonalInfo(user) for user in users)
  21. # Get rid of any anonymous/deleted user objects
  22. users = users.filter (u) -> u?.id?
  23. res.json users
  24. acceptChange: (req, res, next) ->
  25. {project_id, doc_id, change_id} = req.params
  26. logger.log {project_id, doc_id, change_id}, "request to accept change"
  27. DocumentUpdaterHandler.acceptChange project_id, doc_id, change_id, (error) ->
  28. return next(error) if error?
  29. EditorRealTimeController.emitToRoom project_id, "accept-change", doc_id, change_id, (err)->
  30. res.send 204
  31. toggleTrackChanges: (req, res, next) ->
  32. {project_id} = req.params
  33. track_changes_on = !!req.body.on
  34. logger.log {project_id, track_changes_on}, "request to toggle track changes"
  35. TrackChangesManager.toggleTrackChanges project_id, track_changes_on, (error) ->
  36. return next(error) if error?
  37. EditorRealTimeController.emitToRoom project_id, "toggle-track-changes", track_changes_on, (err)->
  38. res.send 204