summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/line_comments/components
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/line_comments/components')
-rw-r--r--app/assets/javascripts/line_comments/components/all_lines.js.coffee28
-rw-r--r--app/assets/javascripts/line_comments/components/comment_button.js.coffee13
2 files changed, 39 insertions, 2 deletions
diff --git a/app/assets/javascripts/line_comments/components/all_lines.js.coffee b/app/assets/javascripts/line_comments/components/all_lines.js.coffee
new file mode 100644
index 00000000000..bcdbae8e02e
--- /dev/null
+++ b/app/assets/javascripts/line_comments/components/all_lines.js.coffee
@@ -0,0 +1,28 @@
+@AllLines =
+ controller: (args) ->
+ @noteIds = m.prop(args.noteIds || [])
+ @resolvedCount = m.prop(args.resolvedNoteIds || [])
+ @resolvedtext = m.prop =>
+ "#{@resolvedCount().length}/#{@noteIds().length} comments resolved"
+ @resolveButtontext = m.prop =>
+ 'Resolve all line comments'
+
+ LinesObserver.register (resolved, noteId) =>
+ if resolved
+ @resolvedCount().push noteId
+ else
+ @resolvedCount().splice @resolvedCount().indexOf(noteId), 1
+ return
+ view: (ctrl) ->
+ m('div',
+ class: 'line-resolve-all'
+ ,[
+ m('button',
+ 'aria-label': ctrl.resolveButtontext()()
+ class: 'btn btn-gray'
+ type: 'button'
+ , ctrl.resolveButtontext()())
+ m('span',
+ class: 'line-resolve-text'
+ , ctrl.resolvedtext()())
+ ])
diff --git a/app/assets/javascripts/line_comments/components/comment_button.js.coffee b/app/assets/javascripts/line_comments/components/comment_button.js.coffee
index 2f022d062d7..13ef6afef09 100644
--- a/app/assets/javascripts/line_comments/components/comment_button.js.coffee
+++ b/app/assets/javascripts/line_comments/components/comment_button.js.coffee
@@ -1,6 +1,6 @@
@CommentButton =
model: (args) ->
- @note = m.prop(args.note_id or false)
+ @note = m.prop(args.noteId or undefined)
@resolved = m.prop(args.resolved or false)
return
controller: (args) ->
@@ -11,16 +11,25 @@
@resolveLine = =>
@model.resolved(!@model.resolved())
+ LinesObserver.trigger(@model.resolved(), @model.note())
return
view: (ctrl) ->
buttonText = ctrl.resolvedText()()
+ isActive = if ctrl.model.resolved() then 'is-active' else ''
# Return the view elements
m('button',
'aria-label': buttonText
- class: 'line-resolve-btn'
+ title: buttonText
+ type: 'button'
+ class: "line-resolve-btn #{isActive}"
onclick: ctrl.resolveLine
+ config: (el) ->
+ $(el)
+ .tooltip('hide')
+ .tooltip()
+ .tooltip('fixTitle')
, [
m('i',
class: 'fa fa-check'