diff options
Diffstat (limited to 'app/assets/javascripts')
6 files changed, 34 insertions, 24 deletions
diff --git a/app/assets/javascripts/notes/components/issue_comment_form.vue b/app/assets/javascripts/notes/components/issue_comment_form.vue index 390be5c26af..751d7578087 100644 --- a/app/assets/javascripts/notes/components/issue_comment_form.vue +++ b/app/assets/javascripts/notes/components/issue_comment_form.vue @@ -175,6 +175,7 @@ this.noteType = type; }, editCurrentUserLastNote() { + console.log('editCurrentUserLastNote') if (this.note === '') { const lastNote = this.getCurrentUserLastNote(window.gon.current_user_id); @@ -228,9 +229,8 @@ :quick-actions-docs="quickActionsDocsUrl" :add-spacing-classes="false"> <textarea - id="note-body" name="note[note]" - class="note-textarea js-gfm-input js-autosize markdown-area" + class="note-textarea js-vue-comment-form js-gfm-input js-autosize markdown-area" data-supports-quick-actions="true" aria-label="Description" v-model="note" diff --git a/app/assets/javascripts/notes/components/issue_note.vue b/app/assets/javascripts/notes/components/issue_note.vue index 63df996a0e0..3b0c684f2a1 100644 --- a/app/assets/javascripts/notes/components/issue_note.vue +++ b/app/assets/javascripts/notes/components/issue_note.vue @@ -60,10 +60,9 @@ }, deleteHandler() { // eslint-disable-next-line no-alert - const isConfirmed = confirm('Are you sure you want to delete this list?'); - - if (isConfirmed) { + if (confirm('Are you sure you want to delete this list?')) { this.isDeleting = true; + this.deleteNote(this.note) .then(() => { this.isDeleting = false; @@ -149,8 +148,8 @@ :can-delete="note.current_user.can_edit" :can-report-as-abuse="canReportAsAbuse" :report-abuse-path="note.report_abuse_path" - :edit-handler="editHandler" - :delete-handler="deleteHandler" + @editHandler="editHandler" + @deleteHandler="deleteHandler" /> </div> <issue-note-body diff --git a/app/assets/javascripts/notes/components/issue_note_actions.vue b/app/assets/javascripts/notes/components/issue_note_actions.vue index 6982b201f41..638362f4588 100644 --- a/app/assets/javascripts/notes/components/issue_note_actions.vue +++ b/app/assets/javascripts/notes/components/issue_note_actions.vue @@ -37,14 +37,6 @@ type: Boolean, required: true, }, - editHandler: { - type: Function, - required: true, - }, - deleteHandler: { - type: Function, - required: true, - }, }, directives: { tooltip, @@ -76,6 +68,14 @@ return this.getUserDataByProp('id'); }, }, + methods: { + onEdit() { + this.$emit('editHandler'); + }, + onDelete() { + this.$emit('deleteHandler'); + } + } }; </script> @@ -125,7 +125,7 @@ <template v-if="canEdit"> <li> <button - @click="editHandler" + @click="onEdit" type="button" class="btn btn-transparent js-note-edit"> Edit comment @@ -140,7 +140,7 @@ </li> <li v-if="canEdit"> <button - @click.prevent="deleteHandler" + @click.prevent="onDelete" class="btn btn-transparent js-note-delete js-note-delete" type="button"> <span class="text-danger"> diff --git a/app/assets/javascripts/notes/components/issue_note_form.vue b/app/assets/javascripts/notes/components/issue_note_form.vue index 6bd5bd2d8a1..a4d677a780f 100644 --- a/app/assets/javascripts/notes/components/issue_note_form.vue +++ b/app/assets/javascripts/notes/components/issue_note_form.vue @@ -118,8 +118,7 @@ </div> <div class="flash-container timeline-content"></div> <form - class="edit-note common-note-form" - @submit="handleUpdate"> + class="edit-note common-note-form"> <markdown-field :markdown-preview-url="markdownPreviewUrl" :markdown-docs="markdownDocsUrl" @@ -128,7 +127,7 @@ <textarea id="note-body" name="note[note]" - class="note-textarea js-gfm-input js-autosize markdown-area" + class="note-textarea js-gfm-input js-autosize markdown-area js-vue-issue-note-form" :data-supports-quick-actions="!isEditing" aria-label="Description" v-model="note" @@ -143,8 +142,9 @@ <div class="note-form-actions clearfix"> <button type="submit" + @click="handleUpdate" :disabled="isDisabled" - class="btn btn-nr btn-save"> + class="js-vue-issue-save btn btn-save"> {{saveButtonTitle}} </button> <button diff --git a/app/assets/javascripts/notes/components/issue_notes_app.vue b/app/assets/javascripts/notes/components/issue_notes_app.vue index 371addd937e..adb08f97b22 100644 --- a/app/assets/javascripts/notes/components/issue_notes_app.vue +++ b/app/assets/javascripts/notes/components/issue_notes_app.vue @@ -113,9 +113,11 @@ mounted() { this.fetchNotes(); this.initPolling(); + const parentElement = this.$el.parentElement; - if (this.$el.parentElement) { - this.$el.parentElement.addEventListener('toggleAward', (event) => { + if (parentElement && + parentElement.classList.contains('js-vue-notes-event')) { + parentElement.addEventListener('toggleAward', (event) => { const { awardName, noteId } = event.detail; this.actionToggleAward({ awardName, noteId }); }); diff --git a/app/assets/javascripts/notes/stores/actions.js b/app/assets/javascripts/notes/stores/actions.js index 1ad7648e533..bb9c2c53b79 100644 --- a/app/assets/javascripts/notes/stores/actions.js +++ b/app/assets/javascripts/notes/stores/actions.js @@ -87,7 +87,7 @@ export const saveNote = ({ commit, dispatch }, noteData) => { const commandsChanges = res.commands_changes; if (hasQuickActions && Object.keys(errors).length) { - dispatch('poll'); + dispatch('fetchData'); $('.js-gfm-input').trigger('clear-commands-cache.atwho'); Flash('Commands applied', 'notice', $(noteData.flashContainer)); @@ -186,6 +186,15 @@ export const poll = ({ commit, state, getters }) => { }); }; +export const fetchData = ({ commit, state, getters }) => { + const requestData = { endpoint: state.notesData.notesPath, lastFetchedAt: state.lastFetchedAt }; + + service.poll(requestData) + .then(resp => resp.json) + .then(data => pollSuccessCallBack(data, commit, state, getters)) + .catch(() => Flash('Something went wrong while fetching latest comments.')); +}; + export const toggleAward = ({ commit, state, getters, dispatch }, { awardName, noteId }) => { commit(types.TOGGLE_AWARD, { awardName, note: getters.notesById[noteId] }); }; |