Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Knox <psimyn@gmail.com>2017-02-14 05:52:20 +0300
committerSimon Knox <psimyn@gmail.com>2017-02-14 05:52:20 +0300
commitced971b12a1f6e01bb443b81c90e8691d8cc69b4 (patch)
treefddb9c125d8c1eeed416bd854ebcb30281415e0f /app/assets/javascripts/task_list.js
parentcea0996ab126f2e8827801cf545691eb7eb6c756 (diff)
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.js39
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;