Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/notes/components/issue_comment_form.vue4
-rw-r--r--app/assets/javascripts/notes/components/issue_note.vue9
-rw-r--r--app/assets/javascripts/notes/components/issue_note_actions.vue20
-rw-r--r--app/assets/javascripts/notes/components/issue_note_form.vue8
-rw-r--r--app/assets/javascripts/notes/components/issue_notes_app.vue6
-rw-r--r--app/assets/javascripts/notes/stores/actions.js11
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] });
};