Browse Source

Enable to approve a document

pull/341/head
Hironsan 5 years ago
parent
commit
d2ae8d1423
4 changed files with 42 additions and 28 deletions
  1. 25
      frontend/components/containers/annotation/ApproveButton.vue
  2. 6
      frontend/pages/projects/_id/sequence-labeling/index.vue
  3. 4
      frontend/services/document.service.js
  4. 35
      frontend/store/documents.js

25
frontend/components/containers/annotation/ApproveButton.vue

@ -6,13 +6,13 @@
min-width="36"
outlined
v-on="on"
@click="dialog=true"
@click="approveDocument"
>
<v-icon v-if="approved">
mdi-checkbox-blank-circle-outline
mdi-check-circle-outline
</v-icon>
<v-icon v-else>
mdi-check-circle-outline
mdi-checkbox-blank-circle-outline
</v-icon>
</v-btn>
</template>
@ -21,10 +21,23 @@
</template>
<script>
import { mapActions } from 'vuex'
export default {
data() {
return {
approved: true
props: {
approved: {
type: Boolean,
default: false,
required: true
}
},
methods: {
...mapActions('documents', ['approve']),
approveDocument() {
this.approve({
projectId: this.$route.params.id
})
}
}
}

6
frontend/pages/projects/_id/sequence-labeling/index.vue

@ -5,8 +5,8 @@
no-gutters
class="d-none d-sm-flex"
>
<v-col>
<approve-button />
<v-col v-if="currentDoc">
<approve-button :approved="approved" />
<filter-button />
<guideline-button />
</v-col>
@ -61,7 +61,7 @@ export default {
},
computed: {
...mapGetters('documents', ['currentDoc'])
...mapGetters('documents', ['currentDoc', 'approved'])
},
validate({ params }) {

4
frontend/services/document.service.js

@ -43,6 +43,10 @@ class DocumentService {
}
return this.request.get(`/projects/${projectId}/docs/download`, config)
}
approveDocument(projectId, docId, payload) {
return this.request.post(`/projects/${projectId}/docs/${docId}/approve-labels`, payload)
}
}
export default new DocumentService()

35
frontend/store/documents.js

@ -16,25 +16,6 @@ export const getters = {
isDocumentSelected(state) {
return state.selected.length > 0
},
formatList() {
return [
{
type: 'csv',
text: 'Upload a CSV file from your computer',
accept: '.csv'
},
{
type: 'plain',
text: 'Upload text items from your computer',
accept: '.txt'
},
{
type: 'json',
text: 'Upload a JSON file from your computer',
accept: '.json,.jsonl'
}
]
},
headers() {
return [
{
@ -51,6 +32,9 @@ export const getters = {
}
]
},
approved(state) {
return state.items[state.current].annotation_approver !== null
},
parsedDoc(state) {
if ('data' in state.parsed) {
return state.parsed.data
@ -226,5 +210,18 @@ export const actions = {
.catch((error) => {
alert(error)
})
},
approve({ commit, getters }, payload) {
const documentId = getters.currentDoc.id
const data = {
approved: !getters.currentDoc.annotation_approver
}
DocumentService.approveDocument(payload.projectId, documentId, data)
.then((response) => {
commit('updateDocument', response)
})
.catch((error) => {
alert(error)
})
}
}
Loading…
Cancel
Save