mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.0 KiB
115 lines
3.0 KiB
import CommentService from '@/services/comment.service'
|
|
import UserService from '@/services/user.service'
|
|
|
|
export const state = () => ({
|
|
comments: [],
|
|
selectedComments: [],
|
|
totalComments: 0,
|
|
userId: -1,
|
|
loading: false
|
|
})
|
|
|
|
export const getters = {
|
|
isCommentSelected(state) {
|
|
return state.selectedComments.length > 0
|
|
}
|
|
}
|
|
export const mutations = {
|
|
setCommentList(state, payload) {
|
|
state.comments = payload
|
|
},
|
|
addComment(state, payload) {
|
|
state.comments.unshift(payload)
|
|
},
|
|
updateComment(state, payload) {
|
|
const item = state.comments.find(item => item.id === payload.id)
|
|
Object.assign(item, payload)
|
|
},
|
|
deleteComment(state, commentId) {
|
|
state.comments = state.comments.filter(item => item.id !== commentId)
|
|
},
|
|
updateSelectedComments(state, selected) {
|
|
state.selectedComments = selected
|
|
},
|
|
resetSelectedComments(state) {
|
|
state.selectedComments = []
|
|
},
|
|
setTotalComments(state, payload) {
|
|
state.totalComments = payload
|
|
},
|
|
setUserId(state, payload) {
|
|
state.userId = payload.id
|
|
},
|
|
setLoading(state, payload) {
|
|
state.loading = payload
|
|
}
|
|
}
|
|
|
|
export const actions = {
|
|
getCommentList({ commit, state }, payload) {
|
|
commit('setLoading', true)
|
|
return CommentService.getCommentList(payload.projectId, payload.docId)
|
|
.then((response) => {
|
|
commit('setCommentList', response.data)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
.finally(() => {
|
|
commit('setLoading', false)
|
|
})
|
|
},
|
|
getProjectCommentList({ commit, state }, payload) {
|
|
commit('setLoading', true)
|
|
return CommentService.getProjectCommentList(payload.projectId)
|
|
.then((response) => {
|
|
commit('setCommentList', response.data)
|
|
commit('setTotalComments', response.data.count)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
.finally(() => {
|
|
commit('setLoading', false)
|
|
})
|
|
},
|
|
addComment({ commit, state }, payload) {
|
|
CommentService.addComment(payload.projectId, payload.docId, payload)
|
|
.then((response) => {
|
|
commit('addComment', response.data)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
},
|
|
updateComment({ commit, state }, payload) {
|
|
CommentService.updateComment(payload.projectId, payload.docId, payload.commentId, payload)
|
|
.then((response) => {
|
|
commit('updateComment', response.data)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
},
|
|
deleteComment({ commit, state }, payload) {
|
|
for (const comment of state.selectedComments) {
|
|
CommentService.deleteComment(payload.projectId, comment.document, comment.id)
|
|
.then((response) => {
|
|
commit('deleteComment', comment.id)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
commit('resetSelectedComments')
|
|
}
|
|
},
|
|
getMyUserId({ commit, state }) {
|
|
UserService.getMe()
|
|
.then((response) => {
|
|
commit('setUserId', response.data)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
}
|
|
}
|