mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04:00
Broadcast references-key changes back to connected clients.
This commit is contained in:
parent
af75bb8a60
commit
c911b7d6a3
2 changed files with 18 additions and 4 deletions
|
@ -2,6 +2,7 @@ logger = require('logger-sharelatex')
|
|||
ReferencesSearchHandler = require('./ReferencesSearchHandler')
|
||||
ProjectLocator = require("../Project/ProjectLocator")
|
||||
settings = require('settings-sharelatex')
|
||||
EditorRealTimeController = require("../Editor/EditorRealTimeController")
|
||||
|
||||
module.exports = ReferencesSearchController =
|
||||
|
||||
|
@ -49,5 +50,7 @@ module.exports = ReferencesSearchController =
|
|||
if err
|
||||
logger.err {err, projectId}, "error indexing references"
|
||||
return res.send 500
|
||||
# TODO: optionally broadcast to all connected clients
|
||||
if shouldBroadcast
|
||||
logger.log {projectId}, "emitting new references keys to connected clients"
|
||||
EditorRealTimeController.emitToRoom projectId, 'references:keys:updated', data.keys
|
||||
return res.json data
|
||||
|
|
|
@ -3,6 +3,7 @@ define [
|
|||
class ReferencesSearchManager
|
||||
constructor: (@ide, @$scope) ->
|
||||
|
||||
console.log @ide
|
||||
@$scope.$root._references = @state = keys: []
|
||||
|
||||
@$scope.$on 'document:closed', (e, doc) =>
|
||||
|
@ -15,6 +16,17 @@ define [
|
|||
@$scope.$on 'project:joined', (e) =>
|
||||
@indexReferences("ALL", false)
|
||||
|
||||
setTimeout(
|
||||
(self) ->
|
||||
self.ide.socket.on 'references:keys:updated', (keys) ->
|
||||
self._storeReferencesKeys(keys)
|
||||
, 100
|
||||
, this
|
||||
)
|
||||
|
||||
_storeReferencesKeys: (newKeys) ->
|
||||
@$scope.$root._references.keys = newKeys
|
||||
|
||||
# docIds: List[String]|String('ALL'), shouldBroadcast: Bool
|
||||
indexReferences: (docIds, shouldBroadcast) ->
|
||||
if window._ENABLE_REFERENCES_AUTOCOMPLETE != true
|
||||
|
@ -23,13 +35,12 @@ define [
|
|||
docIds: docIds
|
||||
shouldBroadcast: shouldBroadcast
|
||||
_csrf: window.csrfToken
|
||||
console.log ">>", opts
|
||||
$.post(
|
||||
"/project/#{@$scope.project_id}/references/index",
|
||||
opts,
|
||||
(data) =>
|
||||
console.log ">> done ", data
|
||||
@$scope.$root._references.keys = data.keys
|
||||
@_storeReferencesKeys(data.keys)
|
||||
)
|
||||
|
||||
getReferenceKeys: (callback=(keys)->) ->
|
||||
|
@ -41,7 +52,7 @@ define [
|
|||
_csrf: window.csrfToken
|
||||
},
|
||||
(data) =>
|
||||
@$scope.$root._references.keys = data.keys
|
||||
@_storeReferencesKeys(data.keys)
|
||||
if callback
|
||||
callback(data.keys)
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue