summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/notes.js.coffee35
-rw-r--r--app/views/projects/issues/show.html.haml4
-rw-r--r--app/views/projects/merge_requests/_show.html.haml4
3 files changed, 37 insertions, 6 deletions
diff --git a/app/assets/javascripts/notes.js.coffee b/app/assets/javascripts/notes.js.coffee
index 199cf1eed67..51c617bd584 100644
--- a/app/assets/javascripts/notes.js.coffee
+++ b/app/assets/javascripts/notes.js.coffee
@@ -16,13 +16,18 @@ class Notes
$(document).on "ajax:success", ".js-main-target-form", @addNote
$(document).on "ajax:success", ".js-discussion-note-form", @addDiscussionNote
- # change note in UI after update
+ # change note in UI after update
$(document).on "ajax:success", "form.edit_note", @updateNote
# Edit note link
$(document).on "click", ".js-note-edit", @showEditForm
$(document).on "click", ".note-edit-cancel", @cancelEdit
+ # Reopen and close actions for Issue/MR combined with note form submit
+ $(document).on "click", ".js-note-target-reopen", @targetReopen
+ $(document).on "click", ".js-note-target-close", @targetClose
+ $(document).on "keyup", ".js-note-text", @updateTargetButtons
+
# remove a note (in general)
$(document).on "click", ".js-note-delete", @removeNote
@@ -78,7 +83,9 @@ class Notes
$(document).off "click", ".js-add-diff-note-button"
$(document).off "visibilitychange"
$(document).off "keypress", @notes_forms
-
+ $(document).off "keyup", ".js-note-text"
+ $(document).off "click", ".js-note-target-reopen"
+ $(document).off "click", ".js-note-target-close"
initRefresh: ->
clearInterval(Notes.interval)
@@ -478,4 +485,28 @@ class Notes
visibilityChange: =>
@refresh()
+ targetReopen: (e) =>
+ @submitNoteForm($(e.target).parents('form'))
+
+ targetClose: (e) =>
+ @submitNoteForm($(e.target).parents('form'))
+
+ submitNoteForm: (form) =>
+ noteText = form.find(".js-note-text").val()
+ if noteText.trim().length > 0
+ form.submit()
+
+ updateTargetButtons: (e) =>
+ textarea = $(e.target)
+ form = textarea.parents('form')
+
+ if textarea.val().trim().length > 0
+ form.find('.js-note-target-reopen').text('Comment & reopen')
+ form.find('.js-note-target-close').text('Comment & close')
+ else
+ form.find('.js-note-target-reopen').text('Reopen')
+ form.find('.js-note-target-close').text('Close')
+
+
+
@Notes = Notes
diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml
index bd5f01ff6a7..fd0f5446b34 100644
--- a/app/views/projects/issues/show.html.haml
+++ b/app/views/projects/issues/show.html.haml
@@ -57,9 +57,9 @@
- content_for :note_actions do
- if can?(current_user, :modify_issue, @issue)
- if @issue.closed?
- = link_to 'Reopen Issue', project_issue_path(@project, @issue, issue: {state_event: :reopen }, status_only: true), method: :put, class: "btn btn-grouped btn-reopen"
+ = link_to 'Reopen Issue', project_issue_path(@project, @issue, issue: {state_event: :reopen }, status_only: true), method: :put, class: "btn btn-grouped btn-reopen js-note-target-reopen", title: 'Reopen Issue'
- else
- = link_to 'Close Issue', project_issue_path(@project, @issue, issue: {state_event: :close }, status_only: true), method: :put, class: "btn btn-grouped btn-close", title: "Close Issue"
+ = link_to 'Close Issue', project_issue_path(@project, @issue, issue: {state_event: :close }, status_only: true), method: :put, class: "btn btn-grouped btn-close js-note-target-close", title: "Close Issue"
.participants
%cite.cgray #{@issue.participants.count} participants
diff --git a/app/views/projects/merge_requests/_show.html.haml b/app/views/projects/merge_requests/_show.html.haml
index 8fca9f0212b..4323c8f65a4 100644
--- a/app/views/projects/merge_requests/_show.html.haml
+++ b/app/views/projects/merge_requests/_show.html.haml
@@ -22,9 +22,9 @@
- content_for :note_actions do
- if can?(current_user, :modify_merge_request, @merge_request)
- unless @merge_request.closed? || @merge_request.merged?
- = link_to 'Close', project_merge_request_path(@project, @merge_request, merge_request: {state_event: :close }), method: :put, class: "btn btn-grouped btn-close close-mr-link", title: "Close merge request"
+ = link_to 'Close', project_merge_request_path(@project, @merge_request, merge_request: {state_event: :close }), method: :put, class: "btn btn-grouped btn-close close-mr-link js-note-target-close", title: "Close merge request"
- if @merge_request.closed?
- = link_to 'Reopen', project_merge_request_path(@project, @merge_request, merge_request: {state_event: :reopen }), method: :put, class: "btn btn-grouped btn-reopen reopen-mr-link", title: "Close merge request"
+ = link_to 'Reopen', project_merge_request_path(@project, @merge_request, merge_request: {state_event: :reopen }), method: :put, class: "btn btn-grouped btn-reopen reopen-mr-link js-note-target-reopen", title: "Reopen merge request"
.diffs.tab-content
- if current_page?(action: 'diffs')