summaryrefslogtreecommitdiff
path: root/app/assets
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-04-29 16:47:31 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-05-06 12:58:27 -0400
commita3d55db91053955a36c6a48c9ad596752a3aba40 (patch)
tree9669df0e2d0ba30623dbbca8af39712c75af9686 /app/assets
parent18baf550e1ecfd0a8cd356490c3cae4e4566fb8f (diff)
downloadgitlab-ce-a3d55db91053955a36c6a48c9ad596752a3aba40.tar.gz
Update task list behavior for Issues
Diffstat (limited to 'app/assets')
-rw-r--r--app/assets/javascripts/issue.js.coffee27
1 files changed, 23 insertions, 4 deletions
diff --git a/app/assets/javascripts/issue.js.coffee b/app/assets/javascripts/issue.js.coffee
index 4e2e6550eb2..63d38594d28 100644
--- a/app/assets/javascripts/issue.js.coffee
+++ b/app/assets/javascripts/issue.js.coffee
@@ -6,11 +6,11 @@ class @Issue
$(".context .inline-update").on "change", "#issue_assignee_id", ->
$(this).submit()
- if $("a.btn-close").length
- $("li.task-list-item input:checkbox").prop("disabled", false)
+ # Prevent duplicate event bindings
+ @disableTaskList()
- $('.task-list-item input:checkbox').off('change')
- $('.task-list-item input:checkbox').change('issue', updateTaskState)
+ if $("a.btn-close").length
+ @initTaskList()
$('.issue-details').waitForImages ->
$('.issuable-affix').affix offset:
@@ -22,3 +22,22 @@ class @Issue
$(@).width($(@).outerWidth())
.on 'affixed-top.bs.affix affixed-bottom.bs.affix', ->
$(@).width('')
+
+ initTaskList: ->
+ $('.issue-details .js-task-list-container').taskList('enable')
+ $(document).on 'tasklist:changed', '.issue-details .js-task-list-container', @updateTaskList
+
+ disableTaskList: ->
+ $('.issue-details .js-task-list-container').taskList('disable')
+ $(document).off 'tasklist:changed', '.issue-details .js-task-list-container'
+
+ # TODO (rspeicher): Make the issue description inline-editable like a note so
+ # that we can re-use its form here
+ updateTaskList: ->
+ patchData = {}
+ patchData['issue'] = {'description': $('.js-task-list-field', this).val()}
+
+ $.ajax
+ type: 'PATCH'
+ url: $('form.js-issue-update').attr('action')
+ data: patchData