mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-18 06:21:25 -05:00
65 lines
No EOL
1.7 KiB
CoffeeScript
65 lines
No EOL
1.7 KiB
CoffeeScript
define [
|
|
"base"
|
|
], (App) ->
|
|
App.directive "commentEntry", ($timeout) ->
|
|
restrict: "E"
|
|
templateUrl: "commentEntryTemplate"
|
|
scope:
|
|
entry: "="
|
|
threads: "="
|
|
permissions: "="
|
|
onResolve: "&"
|
|
onReply: "&"
|
|
onIndicatorClick: "&"
|
|
onSaveEdit: "&"
|
|
onDelete: "&"
|
|
onBodyClick: "&"
|
|
link: (scope, element, attrs) ->
|
|
scope.state =
|
|
animating: false
|
|
|
|
element.on "click", (e) ->
|
|
if $(e.target).is('.rp-entry, .rp-comment-loaded, .rp-comment-content, .rp-comment-reply, .rp-entry-metadata')
|
|
scope.onBodyClick()
|
|
|
|
scope.handleCommentReplyKeyPress = (ev) ->
|
|
if ev.keyCode == 13 and !ev.shiftKey and !ev.ctrlKey and !ev.metaKey
|
|
ev.preventDefault()
|
|
if scope.entry.replyContent.length > 0
|
|
ev.target.blur()
|
|
scope.onReply()
|
|
|
|
scope.animateAndCallOnResolve = () ->
|
|
scope.state.animating = true
|
|
element.find(".rp-entry").css("top", 0)
|
|
$timeout((() -> scope.onResolve()), 350)
|
|
return true
|
|
|
|
scope.startEditing = (comment) ->
|
|
comment.editing = true
|
|
setTimeout () ->
|
|
scope.$emit "review-panel:layout"
|
|
|
|
scope.saveEdit = (comment) ->
|
|
comment.editing = false
|
|
scope.onSaveEdit({comment:comment})
|
|
|
|
scope.confirmDelete = (comment) ->
|
|
comment.deleting = true
|
|
setTimeout () ->
|
|
scope.$emit "review-panel:layout"
|
|
|
|
scope.cancelDelete = (comment) ->
|
|
comment.deleting = false
|
|
setTimeout () ->
|
|
scope.$emit "review-panel:layout"
|
|
|
|
scope.doDelete = (comment) ->
|
|
comment.deleting = false
|
|
scope.onDelete({comment: comment})
|
|
|
|
scope.saveEditOnEnter = (ev, comment) ->
|
|
if ev.keyCode == 13 and !ev.shiftKey and !ev.ctrlKey and !ev.metaKey
|
|
ev.preventDefault()
|
|
scope.saveEdit(comment)
|
|
|