61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
|
import { get } from 'lodash'
|
||
|
import Modal from '../modal/modal.vue'
|
||
|
import Status from '../status/status.vue'
|
||
|
|
||
|
const StatusHistoryModal = {
|
||
|
components: {
|
||
|
Modal,
|
||
|
Status
|
||
|
},
|
||
|
data () {
|
||
|
return {
|
||
|
statuses: []
|
||
|
}
|
||
|
},
|
||
|
computed: {
|
||
|
modalActivated () {
|
||
|
return this.$store.state.statusHistory.modalActivated
|
||
|
},
|
||
|
params () {
|
||
|
return this.$store.state.statusHistory.params
|
||
|
},
|
||
|
statusId () {
|
||
|
return this.params.id
|
||
|
},
|
||
|
historyCount () {
|
||
|
return this.statuses.length
|
||
|
},
|
||
|
history () {
|
||
|
return this.statuses
|
||
|
}
|
||
|
},
|
||
|
watch: {
|
||
|
params (newVal, oldVal) {
|
||
|
const newStatusId = get(newVal, 'id') !== get(oldVal, 'id')
|
||
|
if (newStatusId) {
|
||
|
this.resetHistory()
|
||
|
}
|
||
|
|
||
|
if (newStatusId || get(newVal, 'edited_at') !== get(oldVal, 'edited_at')) {
|
||
|
this.fetchStatusHistory()
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
resetHistory () {
|
||
|
this.statuses = []
|
||
|
},
|
||
|
fetchStatusHistory () {
|
||
|
this.$store.dispatch('fetchStatusHistory', this.params)
|
||
|
.then(data => {
|
||
|
this.statuses = data
|
||
|
})
|
||
|
},
|
||
|
closeModal () {
|
||
|
this.$store.dispatch('closeStatusHistoryModal')
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default StatusHistoryModal
|