diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-04-29 16:47:31 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-05-06 12:58:27 -0400 |
commit | a3d55db91053955a36c6a48c9ad596752a3aba40 (patch) | |
tree | 9669df0e2d0ba30623dbbca8af39712c75af9686 /app/assets | |
parent | 18baf550e1ecfd0a8cd356490c3cae4e4566fb8f (diff) | |
download | gitlab-ce-a3d55db91053955a36c6a48c9ad596752a3aba40.tar.gz |
Update task list behavior for Issues
Diffstat (limited to 'app/assets')
-rw-r--r-- | app/assets/javascripts/issue.js.coffee | 27 |
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 |