mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-31 21:21:03 -04:00
44 lines
1.3 KiB
CoffeeScript
44 lines
1.3 KiB
CoffeeScript
define [
|
|
"base"
|
|
], (App) ->
|
|
App.directive "resolvedCommentsDropdown", () ->
|
|
restrict: "E"
|
|
templateUrl: "resolvedCommentsDropdownTemplate"
|
|
scope:
|
|
entries : "="
|
|
threads : "="
|
|
docs : "="
|
|
onOpen : "&"
|
|
onUnresolve : "&"
|
|
isLoading : "="
|
|
|
|
link: (scope, element, attrs) ->
|
|
scope.state =
|
|
isOpen: false
|
|
|
|
scope.toggleOpenState = () ->
|
|
scope.state.isOpen = !scope.state.isOpen
|
|
if (scope.state.isOpen)
|
|
scope.onOpen()
|
|
|
|
scope.resolvedCommentsPerFile = {}
|
|
|
|
scope.handleUnresolve = (threadId) ->
|
|
scope.onUnresolve({ threadId })
|
|
filterResolvedComments()
|
|
|
|
filterResolvedComments = () ->
|
|
scope.resolvedCommentsPerFile = {}
|
|
|
|
for fileId, fileEntries of scope.entries
|
|
scope.resolvedCommentsPerFile[fileId] = {}
|
|
for entryId, entry of fileEntries
|
|
if entry.type == "comment" and scope.threads[entry.thread_id]?.resolved?
|
|
scope.resolvedCommentsPerFile[fileId][entryId] = angular.copy scope.threads[entry.thread_id]
|
|
scope.resolvedCommentsPerFile[fileId][entryId].content = entry.content
|
|
scope.resolvedCommentsPerFile[fileId][entryId].threadId = entry.thread_id
|
|
|
|
scope.$watchCollection "entries", filterResolvedComments
|
|
scope.$watchCollection "threads", filterResolvedComments
|
|
|
|
|