aboutsummaryrefslogtreecommitdiff
path: root/src/components/status_history_modal/status_history_modal.js
blob: 3941a56f8964ba301d62fbeb7452a9b5fe516a64 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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