Added discard button to comment form
Also changed the labels on the buttons to better match the action they are completing. Closes #8057
This commit is contained in:
parent
f8c4dc9723
commit
e033b9a7f1
4 changed files with 57 additions and 17 deletions
|
@ -51,6 +51,9 @@ class @Notes
|
||||||
$(document).on "ajax:complete", ".js-main-target-form", @reenableTargetFormSubmitButton
|
$(document).on "ajax:complete", ".js-main-target-form", @reenableTargetFormSubmitButton
|
||||||
$(document).on "ajax:success", ".js-main-target-form", @resetMainTargetForm
|
$(document).on "ajax:success", ".js-main-target-form", @resetMainTargetForm
|
||||||
|
|
||||||
|
# reset main target form when clicking discard
|
||||||
|
$(document).on "click", ".js-note-discard", @resetMainTargetForm
|
||||||
|
|
||||||
# update the file name when an attachment is selected
|
# update the file name when an attachment is selected
|
||||||
$(document).on "change", ".js-note-attachment-input", @updateFormAttachment
|
$(document).on "change", ".js-note-attachment-input", @updateFormAttachment
|
||||||
|
|
||||||
|
@ -85,6 +88,7 @@ class @Notes
|
||||||
$(document).off "keyup", ".js-note-text"
|
$(document).off "keyup", ".js-note-text"
|
||||||
$(document).off "click", ".js-note-target-reopen"
|
$(document).off "click", ".js-note-target-reopen"
|
||||||
$(document).off "click", ".js-note-target-close"
|
$(document).off "click", ".js-note-target-close"
|
||||||
|
$(document).off "click", ".js-note-discard"
|
||||||
|
|
||||||
$('.note .js-task-list-container').taskList('disable')
|
$('.note .js-task-list-container').taskList('disable')
|
||||||
$(document).off 'tasklist:changed', '.note .js-task-list-container'
|
$(document).off 'tasklist:changed', '.note .js-task-list-container'
|
||||||
|
@ -219,7 +223,7 @@ class @Notes
|
||||||
Resets text and preview.
|
Resets text and preview.
|
||||||
Resets buttons.
|
Resets buttons.
|
||||||
###
|
###
|
||||||
resetMainTargetForm: ->
|
resetMainTargetForm: (e) =>
|
||||||
form = $(".js-main-target-form")
|
form = $(".js-main-target-form")
|
||||||
|
|
||||||
# remove validation errors
|
# remove validation errors
|
||||||
|
@ -231,6 +235,8 @@ class @Notes
|
||||||
|
|
||||||
form.find(".js-note-text").data("autosave").reset()
|
form.find(".js-note-text").data("autosave").reset()
|
||||||
|
|
||||||
|
@updateTargetButtons(e)
|
||||||
|
|
||||||
reenableTargetFormSubmitButton: ->
|
reenableTargetFormSubmitButton: ->
|
||||||
form = $(".js-main-target-form")
|
form = $(".js-main-target-form")
|
||||||
|
|
||||||
|
@ -274,8 +280,10 @@ class @Notes
|
||||||
form.removeClass "js-new-note-form"
|
form.removeClass "js-new-note-form"
|
||||||
form.find('.div-dropzone').remove()
|
form.find('.div-dropzone').remove()
|
||||||
|
|
||||||
|
# hide discard button
|
||||||
|
form.find('.js-note-discard').hide()
|
||||||
|
|
||||||
# setup preview buttons
|
# setup preview buttons
|
||||||
form.find(".js-md-write-button, .js-md-preview-button").tooltip placement: "left"
|
|
||||||
previewButton = form.find(".js-md-preview-button")
|
previewButton = form.find(".js-md-preview-button")
|
||||||
|
|
||||||
textarea = form.find(".js-note-text")
|
textarea = form.find(".js-note-text")
|
||||||
|
@ -561,21 +569,52 @@ class @Notes
|
||||||
updateCloseButton: (e) =>
|
updateCloseButton: (e) =>
|
||||||
textarea = $(e.target)
|
textarea = $(e.target)
|
||||||
form = textarea.parents('form')
|
form = textarea.parents('form')
|
||||||
form.find('.js-note-target-close').text('Close')
|
closebtn = form.find('.js-note-target-close')
|
||||||
|
closebtn.text(closebtn.data('original-text'))
|
||||||
|
|
||||||
updateTargetButtons: (e) =>
|
updateTargetButtons: (e) =>
|
||||||
textarea = $(e.target)
|
textarea = $(e.target)
|
||||||
form = textarea.parents('form')
|
form = textarea.parents('form')
|
||||||
|
reopenbtn = form.find('.js-note-target-reopen')
|
||||||
|
closebtn = form.find('.js-note-target-close')
|
||||||
|
discardbtn = form.find('.js-note-discard')
|
||||||
|
|
||||||
if textarea.val().trim().length > 0
|
if textarea.val().trim().length > 0
|
||||||
form.find('.js-note-target-reopen').text('Comment & reopen')
|
reopentext = reopenbtn.data('alternative-text')
|
||||||
form.find('.js-note-target-close').text('Comment & close')
|
closetext = closebtn.data('alternative-text')
|
||||||
form.find('.js-note-target-reopen').addClass('btn-comment-and-reopen')
|
|
||||||
form.find('.js-note-target-close').addClass('btn-comment-and-close')
|
if reopenbtn.text() isnt reopentext
|
||||||
|
reopenbtn.text(reopentext)
|
||||||
|
|
||||||
|
if closebtn.text() isnt closetext
|
||||||
|
closebtn.text(closetext)
|
||||||
|
|
||||||
|
if reopenbtn.is(':not(.btn-comment-and-reopen)')
|
||||||
|
reopenbtn.addClass('btn-comment-and-reopen')
|
||||||
|
|
||||||
|
if closebtn.is(':not(.btn-comment-and-close)')
|
||||||
|
closebtn.addClass('btn-comment-and-close')
|
||||||
|
|
||||||
|
if discardbtn.is(':hidden')
|
||||||
|
discardbtn.show()
|
||||||
else
|
else
|
||||||
form.find('.js-note-target-reopen').text('Reopen')
|
reopentext = reopenbtn.data('original-text')
|
||||||
form.find('.js-note-target-close').text('Close')
|
closetext = closebtn.data('original-text')
|
||||||
form.find('.js-note-target-reopen').removeClass('btn-comment-and-reopen')
|
|
||||||
form.find('.js-note-target-close').removeClass('btn-comment-and-close')
|
if reopenbtn.text() isnt reopentext
|
||||||
|
reopenbtn.text(reopentext)
|
||||||
|
|
||||||
|
if closebtn.text() isnt closetext
|
||||||
|
closebtn.text(closebtn.data('original-text'))
|
||||||
|
|
||||||
|
if reopenbtn.is(':not(.btn-comment-and-reopen)')
|
||||||
|
reopenbtn.removeClass('btn-comment-and-reopen')
|
||||||
|
|
||||||
|
if closebtn.is(':not(.btn-comment-and-close)')
|
||||||
|
closebtn.removeClass('btn-comment-and-close')
|
||||||
|
|
||||||
|
if discardbtn.is(':visible')
|
||||||
|
discardbtn.hide()
|
||||||
|
|
||||||
initTaskList: ->
|
initTaskList: ->
|
||||||
@enableTaskList()
|
@enableTaskList()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for :note_actions do
|
- content_for :note_actions do
|
||||||
- if can?(current_user, :update_issue, @issue)
|
- if can?(current_user, :update_issue, @issue)
|
||||||
= link_to 'Reopen issue', issue_path(@issue, issue: {state_event: :reopen}, status_only: true, format: 'json'), data: {no_turbolink: true}, class: "btn btn-nr btn-grouped btn-reopen btn-comment js-note-target-reopen #{issue_button_visibility(@issue, false)}", title: 'Reopen issue'
|
= link_to 'Reopen issue', issue_path(@issue, issue: {state_event: :reopen}, status_only: true, format: 'json'), data: {no_turbolink: true, original_text: "Reopen issue", alternative_text: "Comment & reopen issue"}, class: "btn btn-nr btn-grouped btn-reopen btn-comment js-note-target-reopen #{issue_button_visibility(@issue, false)}", title: 'Reopen issue'
|
||||||
= link_to 'Close issue', issue_path(@issue, issue: {state_event: :close}, status_only: true, format: 'json'), data: {no_turbolink: true}, class: "btn btn-nr btn-grouped btn-close btn-comment js-note-target-close #{issue_button_visibility(@issue, true)}", title: 'Close issue'
|
= link_to 'Close issue', issue_path(@issue, issue: {state_event: :close}, status_only: true, format: 'json'), data: {no_turbolink: true, original_text: "Close issue", alternative_text: "Comment & close issue"}, class: "btn btn-nr btn-grouped btn-close btn-comment js-note-target-close #{issue_button_visibility(@issue, true)}", title: 'Close issue'
|
||||||
|
|
||||||
#notes
|
#notes
|
||||||
= render 'projects/notes/notes_with_form'
|
= render 'projects/notes/notes_with_form'
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
- content_for :note_actions do
|
- content_for :note_actions do
|
||||||
- if can?(current_user, :update_merge_request, @merge_request)
|
- if can?(current_user, :update_merge_request, @merge_request)
|
||||||
- if @merge_request.open?
|
- if @merge_request.open?
|
||||||
= link_to 'Close', merge_request_path(@merge_request, merge_request: {state_event: :close }), method: :put, class: "btn btn-nr btn-comment btn-grouped btn-close close-mr-link js-note-target-close", title: "Close merge request"
|
= link_to 'Close merge request', merge_request_path(@merge_request, merge_request: {state_event: :close }), method: :put, class: "btn btn-nr btn-comment btn-grouped btn-close close-mr-link js-note-target-close", title: "Close merge request", data: {original_text: "Close merge request", alternative_text: "Comment & close merge request"}
|
||||||
- if @merge_request.closed?
|
- if @merge_request.closed?
|
||||||
= link_to 'Reopen', merge_request_path(@merge_request, merge_request: {state_event: :reopen }), method: :put, class: "btn btn-nr btn-comment btn-grouped btn-reopen reopen-mr-link js-note-target-reopen", title: "Reopen merge request"
|
= link_to 'Reopen merge request', merge_request_path(@merge_request, merge_request: {state_event: :reopen }), method: :put, class: "btn btn-nr btn-comment btn-grouped btn-reopen reopen-mr-link js-note-target-reopen", title: "Reopen merge request", data: {original_text: "Reopen merge request", alternative_text: "Comment & reopen merge request"}
|
||||||
|
|
||||||
#notes= render "projects/notes/notes_with_form"
|
#notes= render "projects/notes/notes_with_form"
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
.error-alert
|
.error-alert
|
||||||
|
|
||||||
.note-form-actions.clearfix
|
.note-form-actions.clearfix
|
||||||
= f.submit 'Add Comment', class: "btn btn-nr btn-create comment-btn btn-grouped js-comment-button"
|
= f.submit 'Comment', class: "btn btn-nr btn-create comment-btn btn-grouped js-comment-button"
|
||||||
= yield(:note_actions)
|
= yield(:note_actions)
|
||||||
%a.btn.btn-nr.btn-cancel.js-close-discussion-note-form Cancel
|
%a.btn.btn-cancel.js-note-discard{role: "button"}
|
||||||
|
Discard draft
|
||||||
|
|
Loading…
Reference in a new issue