summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/issue.js6
-rw-r--r--app/assets/javascripts/merge_request.js6
-rw-r--r--app/assets/javascripts/notes.js14
-rw-r--r--app/assets/javascripts/task_list.js.es614
-rw-r--r--app/views/projects/notes/_note.html.haml2
5 files changed, 18 insertions, 24 deletions
diff --git a/app/assets/javascripts/issue.js b/app/assets/javascripts/issue.js
index 6c6dde1b3f0..fd9b3cb833d 100644
--- a/app/assets/javascripts/issue.js
+++ b/app/assets/javascripts/issue.js
@@ -14,7 +14,11 @@ require('./task_list');
if ($('a.btn-close').length) {
this.taskList = new gl.TaskList({
dataType: 'issue',
- selector: '.detail-page-description'
+ selector: '.detail-page-description',
+ onSuccess: (result) => {
+ document.querySelector('#task_status').innerText = result.task_status;
+ document.querySelector('#task_status_short').innerText = result.task_status_short;
+ }
});
this.initIssueBtnEventListeners();
}
diff --git a/app/assets/javascripts/merge_request.js b/app/assets/javascripts/merge_request.js
index 9e6f42beaf2..14f424b181c 100644
--- a/app/assets/javascripts/merge_request.js
+++ b/app/assets/javascripts/merge_request.js
@@ -29,7 +29,11 @@ require('./merge_request_tabs');
if ($("a.btn-close").length) {
this.taskList = new gl.TaskList({
dataType: 'merge_request',
- selector: '.detail-page-description'
+ selector: '.detail-page-description',
+ onSuccess: (result) => {
+ document.querySelector('#task_status').innerText = result.task_status;
+ document.querySelector('#task_status_short').innerText = result.task_status_short;
+ }
});
}
}
diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js
index d137e327f0e..599af9312b4 100644
--- a/app/assets/javascripts/notes.js
+++ b/app/assets/javascripts/notes.js
@@ -53,8 +53,7 @@ require('./task_list');
this.setupMainTargetNoteForm();
this.taskList = new gl.TaskList({
dataType: 'note',
- selector: '.notes',
- update: this.updateTaskList.bind(this)
+ selector: '.notes'
});
this.collapseLongCommitList();
@@ -889,17 +888,6 @@ require('./task_list');
$editForm.find('.referenced-users').hide();
};
- Notes.prototype.updateTaskList = function(e) {
- var $target = $(e.target);
- var $list = $target.closest('.js-task-list-container');
- var $editForm = $(this.getEditFormSelector($target));
- var $note = $list.closest('.note');
-
- this.putEditFormInPlace($list);
- $editForm.find('#note_note').val($note.find('.original-task-list').val());
- $('form', $list).submit();
- };
-
Notes.prototype.updateNotesCount = function(updateCount) {
return this.notesCountBadge.text(parseInt(this.notesCountBadge.text(), 10) + updateCount);
};
diff --git a/app/assets/javascripts/task_list.js.es6 b/app/assets/javascripts/task_list.js.es6
index 2001803fe13..3fa6a36e455 100644
--- a/app/assets/javascripts/task_list.js.es6
+++ b/app/assets/javascripts/task_list.js.es6
@@ -7,7 +7,7 @@ class TaskList {
constructor(options = {}) {
this.selector = options.selector;
this.dataType = options.dataType;
- this.update = options.update || this.update.bind(this);
+ this.onSuccess = options.onSuccess || () => null;
this.init();
}
@@ -15,7 +15,7 @@ class TaskList {
// 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);
+ $(document).on('tasklist:changed', `${this.selector} .js-task-list-container`, this.update.bind(this));
}
disable() {
@@ -24,18 +24,16 @@ class TaskList {
}
update(e) {
+ const $target = $(e.target);
const patchData = {};
patchData[this.dataType] = {
- description: $(e.target).val(),
+ description: $target.val(),
};
return $.ajax({
type: 'PATCH',
- url: $('form.js-issuable-update').attr('action'),
+ url: $target.data('update-url') || $('form.js-issuable-update').attr('action'),
data: patchData,
- success: (result) => {
- document.querySelector('#task_status').innerText = result.task_status;
- document.querySelector('#task_status_short').innerText = result.task_status_short;
- },
+ success: this.onSuccess,
});
}
}
diff --git a/app/views/projects/notes/_note.html.haml b/app/views/projects/notes/_note.html.haml
index 09339e520dd..89c6a65f159 100644
--- a/app/views/projects/notes/_note.html.haml
+++ b/app/views/projects/notes/_note.html.haml
@@ -69,7 +69,7 @@
- if note_editable
.original-note-content.hidden{ data: { post_url: namespace_project_note_path(@project.namespace, @project, note), target_id: note.noteable.id, target_type: note.noteable.class.name.underscore } }
#{note.note}
- %textarea.hidden.js-task-list-field.original-task-list= note.note
+ %textarea.hidden.js-task-list-field.original-task-list{ data: {update_url: namespace_project_note_path(@project.namespace, @project, note) } }= note.note
.note-awards
= render 'award_emoji/awards_block', awardable: note, inline: false
- if note.system