提交 d24e47a9 编写于 作者: F Fatih Acet

IssueDiscussionsRefactor: Do changes after data format change and fix dummy data.

上级 44ccf2b1
......@@ -7,23 +7,17 @@ import MarkdownField from '../../vue_shared/components/markdown/field.vue';
export default {
props: {},
data() {
const { create_note_path, state } = window.gl.issueData;
const { currentUserData } = window.gl;
return {
note: '',
markdownPreviewUrl: '',
markdownDocsUrl: '',
// FIXME: @fatihacet - Fix the mock data below.
noteType: 'comment',
issueState: 'open',
endpoint: '/gitlab-org/gitlab-ce/notes',
author: {
avatar_url: 'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
id: 1,
name: 'Administrator',
path: '/root',
state: 'active',
username: 'root',
},
issueState: state,
endpoint: create_note_path,
author: currentUserData,
};
},
components: {
......@@ -47,13 +41,12 @@ export default {
methods: {
handleSave() {
const data = {
endpoint: `${this.endpoint}?full_data=1`,
endpoint: this.endpoint,
noteData: {
target_type: 'issue',
target_id: '89',
full_data: true,
note: {
noteable_type: 'Issue',
noteable_id: 89,
noteable_id: window.gl.issueData.id,
note: this.note,
}
},
......@@ -64,12 +57,14 @@ export default {
}
this.$store.dispatch('createNewNote', data)
.then(() => {
.then((res) => {
if (res.errors) {
return this.handleError();
}
this.discard();
})
.catch(() => {
new Flash('Something went wrong while adding your comment. Please try again.'); // eslint-disable-line
});
.catch(this.handleError);
},
discard() {
this.note = '';
......@@ -78,6 +73,9 @@ export default {
setNoteType(type) {
this.noteType = type;
},
handleError() {
new Flash('Something went wrong while adding your comment. Please try again.'); // eslint-disable-line
},
},
mounted() {
const issuableDataEl = document.getElementById('js-issuable-app-initial-data');
......
......@@ -19,7 +19,7 @@ export default {
return {
registerLink: '#',
signInLink: '#',
newNotePath: '',
newNotePath: window.gl.issueData.create_note_path,
isReplying: false,
};
},
......@@ -30,6 +30,9 @@ export default {
author() {
return this.discussion.author;
},
canReply() {
return window.gl.issueData.current_user.can_create_note;
},
},
components: {
IssueNote,
......@@ -48,10 +51,6 @@ export default {
this.registerLink = registerLink.getAttribute('href');
this.signInLink = signInLink.getAttribute('href');
}
// TODO: @fatihacet - Reimplement this when we have data for it.
// const newNotePath = document.querySelector('.js-main-target-form').getAttribute('action');
// this.newNotePath = `${newNotePath}?full_data=1`;
},
methods: {
toggleDiscussion() {
......@@ -73,6 +72,7 @@ export default {
target_type: 'issue',
target_id: this.discussion.noteable_id,
note: { note },
full_data: true,
},
};
......@@ -130,7 +130,7 @@ export default {
<div class="flash-container"></div>
<div class="discussion-reply-holder">
<button
v-if="note.can_reply && !isReplying"
v-if="canReply && !isReplying"
@click="showReplyForm"
type="button"
class="btn btn-text-field"
......@@ -141,7 +141,7 @@ export default {
:updateHandler="saveReply"
:cancelHandler="cancelReplyForm" />
<div
v-if="!note.can_reply"
v-if="!canReply"
class="disabled-comment text-center">
Please
<a :href="registerLink">register</a>
......
......@@ -104,8 +104,8 @@ export default {
<issue-note-actions
:accessLevel="note.human_access"
:canAward="note.emoji_awardable"
:canEdit="note.can_edit"
:canDelete="note.can_edit"
:canEdit="note.current_user.can_edit"
:canDelete="note.current_user.can_edit"
:reportAbusePath="note.report_abuse_path"
:editHandler="editHandler"
:deleteHandler="deleteHandler" />
......
<script>
import { glEmojiTag } from '~/behaviors/gl_emoji';
import * as Emoji from '../../emoji';
import emojiSmiling from 'icons/_emoji_slightly_smiling_face.svg';
import emojiSmile from 'icons/_emoji_smile.svg';
import emojiSmiley from 'icons/_emoji_smiley.svg';
......@@ -66,7 +66,7 @@ export default {
},
methods: {
getAwardHTML(name) {
return glEmojiTag(name);
return Emoji.glEmojiTag(name);
},
getAwardClassBindings(awardList, awardName) {
return {
......
......@@ -53,8 +53,16 @@ const mutations = {
}
},
addNewNote(storeState, note) {
// TODO: @fatihacet - When we get the correct data from server update the store
// storeState.notes.push(note);
const { discussion_id, type } = note;
const noteData = {
expanded: true,
id: discussion_id,
individual_note: !(type === 'DiscussionNote'),
notes: [ note ],
reply_id: discussion_id,
};
storeState.notes.push(noteData);
},
};
......@@ -100,7 +108,10 @@ const actions = {
.createNewNote(endpoint, noteData)
.then(res => res.json())
.then((res) => {
context.commit('addNewNote', res);
if (!res.errors) {
context.commit('addNewNote', res);
}
return res;
});
},
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册