diff options
author | Fatih Acet <acetfatih@gmail.com> | 2016-11-16 00:32:55 +0300 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2017-01-04 23:37:54 +0300 |
commit | 18165f97858f0ea12668bec9045998dee5212ecf (patch) | |
tree | 076d47da956aeaf8327ce24f5b07e4670ea0f2b9 /app | |
parent | 56293399e6d7223e5d7287b191404d9756f245a4 (diff) | |
download | gitlab-ce-18165f97858f0ea12668bec9045998dee5212ecf.tar.gz |
Fix task list for single edit note widget changes.
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/notes.js | 53 | ||||
-rw-r--r-- | app/views/projects/notes/_edit_form.html.haml | 3 | ||||
-rw-r--r-- | app/views/projects/notes/_note.html.haml | 1 |
3 files changed, 40 insertions, 17 deletions
diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index 1087fbe9c17..8388b49e501 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -517,7 +517,11 @@ Notes.prototype.showEditForm = function(e, scrollTo, myLastNote) { e.preventDefault(); + var $target = $(e.target); + var $editForm = $('.note-edit-form'); + var $note = $target.closest('.note'); var $currentlyEditing = $('.note.is-editting'); + if ($currentlyEditing.length) { var isEditAllowed = this.checkContentToAllowEditing($currentlyEditing); @@ -526,21 +530,10 @@ } } - var $editForm = $('.note-edit-form'); - var $note = $(e.target).closest('.note'); - - $editForm.insertAfter($note.find('.note-text')); - - var $noteText = $editForm.find('.js-note-text'); - var $originalContentEl = $note.find('.original-note-content'); - var originalContent = $originalContentEl.text().trim(); - var postUrl = $originalContentEl.data('post-url'); - $note.addClass('is-editting'); - $editForm.find('form').attr('action', postUrl); - $editForm.addClass('current-note-edit-form'); $note.find('.js-note-attachment-delete').show(); // Show the attachment delete link - new GLForm($editForm.find('form')); - $editForm.find('.js-note-text').focus().val(originalContent); + $editForm.addClass('current-note-edit-form'); + $note.addClass('is-editting'); + this.putEditFormInPlace($target); }; @@ -865,15 +858,41 @@ Notes.prototype.initTaskList = function() { this.enableTaskList(); - return $(document).on('tasklist:changed', '.note .js-task-list-container', this.updateTaskList); + return $(document).on('tasklist:changed', '.note .js-task-list-container', this.updateTaskList.bind(this)); }; Notes.prototype.enableTaskList = function() { return $('.note .js-task-list-container').taskList('enable'); }; - Notes.prototype.updateTaskList = function() { - return $('form', this).submit(); + Notes.prototype.putEditFormInPlace = function($el) { + var $editForm = $('.note-edit-form'); + var $note = $el.closest('.note'); + + $editForm.insertAfter($note.find('.note-text')); + + var $originalContentEl = $note.find('.original-note-content'); + var originalContent = $originalContentEl.text().trim(); + var postUrl = $originalContentEl.data('post-url'); + var targetId = $originalContentEl.data('target-id'); + var targetType = $originalContentEl.data('target-type'); + + new GLForm($editForm.find('form')); + + $editForm.find('form').attr('action', postUrl); + $editForm.find('.formTargetId').val(targetId); + $editForm.find('.formTargetType').val(targetType); + $editForm.find('.js-note-text').focus().val(originalContent); + } + + Notes.prototype.updateTaskList = function(e) { + var $list = $(e.target).closest('.js-task-list-container'); + var $editForm = $('.note-edit-form'); + 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) { diff --git a/app/views/projects/notes/_edit_form.html.haml b/app/views/projects/notes/_edit_form.html.haml index bf2f58a0cb1..8b09eae38f0 100644 --- a/app/views/projects/notes/_edit_form.html.haml +++ b/app/views/projects/notes/_edit_form.html.haml @@ -1,5 +1,8 @@ .note-edit-form = form_tag '#', method: :put, remote: true, class: 'edit-note common-note-form js-quick-submit' do + = hidden_field_tag :authenticity_token, form_authenticity_token + = hidden_field_tag :target_id, '', class: 'formTargetId' + = hidden_field_tag :target_type, '', class: 'formTargetType' = render layout: 'projects/md_preview', locals: { preview_class: 'md-preview' } do = render 'projects/zen', attr: 'note[note]', classes: 'note-textarea js-note-text js-task-list-field', placeholder: "Write a comment or drag your files here..." = render 'projects/notes/hints' diff --git a/app/views/projects/notes/_note.html.haml b/app/views/projects/notes/_note.html.haml index fc4cb3f4a6d..3c62c94eafc 100644 --- a/app/views/projects/notes/_note.html.haml +++ b/app/views/projects/notes/_note.html.haml @@ -69,6 +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} .note-awards = render 'award_emoji/awards_block', awardable: note, inline: false - if note.system |