diff options
author | Simon Knox <psimyn@gmail.com> | 2017-02-14 13:52:20 +1100 |
---|---|---|
committer | Simon Knox <psimyn@gmail.com> | 2017-02-14 13:52:20 +1100 |
commit | ced971b12a1f6e01bb443b81c90e8691d8cc69b4 (patch) | |
tree | fddb9c125d8c1eeed416bd854ebcb30281415e0f /app/assets/javascripts/task_list.js | |
parent | cea0996ab126f2e8827801cf545691eb7eb6c756 (diff) | |
download | gitlab-ce-ced971b12a1f6e01bb443b81c90e8691d8cc69b4.tar.gz |
code style and test fixes
fix test following https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9172
Diffstat (limited to 'app/assets/javascripts/task_list.js')
-rw-r--r-- | app/assets/javascripts/task_list.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/assets/javascripts/task_list.js b/app/assets/javascripts/task_list.js new file mode 100644 index 00000000000..3bbae06cee9 --- /dev/null +++ b/app/assets/javascripts/task_list.js @@ -0,0 +1,39 @@ +require('vendor/task_list'); + +class TaskList { + constructor(options = {}) { + this.selector = options.selector; + this.dataType = options.dataType; + this.onSuccess = options.onSuccess || (() => {}); + this.init(); + } + + init() { + // Prevent duplicate event bindings + this.disable(); + $(`${this.selector} .js-task-list-container`).taskList('enable'); + $(document).on('tasklist:changed', `${this.selector} .js-task-list-container`, this.update.bind(this)); + } + + disable() { + $(`${this.selector} .js-task-list-container`).taskList('disable'); + $(document).off('tasklist:changed', `${this.selector} .js-task-list-container`); + } + + update(e) { + const $target = $(e.target); + const patchData = {}; + patchData[this.dataType] = { + description: $target.val(), + }; + return $.ajax({ + type: 'PATCH', + url: $target.data('update-url') || $('form.js-issuable-update').attr('action'), + data: patchData, + success: this.onSuccess, + }); + } +} + +window.gl = window.gl || {}; +window.gl.TaskList = TaskList; |