summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/EventModuleDelete.vue
blob: 0763e5839660de0518db98801d38c8a60b7c8129 (plain) (blame)
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
61
62
63
64
65
<i18n>
{
  "en": {
    "delete-are-you-sure": "Are you sure you want to delete this event? | Are you sure you want to delete these events?",
    "eventDeleteSuccess": "Event deleted successfully | Events deleted successfully"
  },
  "de": {
    "delete-are-you-sure": "Sind sie sicher, dass sie diese Veranstaltung Löschen wollen? | Sind sie sicher, dass sie diese Veranstaltungen löschen wollen?",
    "eventDeleteSuccess": "Event erfolgreich gelöscht | Events erfolgreich gelöscht"
  }
}
</i18n>

<template>
  <v-card>
    <v-card-title class="elevation-3">
      <div class="headline">{{ $t('title') }}</div>
    </v-card-title>
    <v-card-text>
      {{ $tc('delete-are-you-sure', dialog.info.length) }}
      <template v-for="item in dialog.info">
        <div class="grey--text" :key="item.id">{{ item.name }} ({{ item.description }})</div>
      </template>
    </v-card-text>
    <v-divider></v-divider>
    <v-card-actions>
      <v-spacer></v-spacer>
      <v-btn text="flat" @click.native="$store.commit('events/setDialog', { show : false } )">{{ $t('cancel') }}</v-btn>
      <v-btn color="error" @click="deleteEvents">{{ $t('delete') }}</v-btn>
    </v-card-actions>
  </v-card>
</template>

<script>
import { mapState, mapMutations } from 'vuex'

export default {
  name: 'EventModuleDelete',
  data () {
    return {
    }
  },
  computed: {
    ...mapState('events', ['dialog'])
  },
  methods: {
    ...mapMutations('events', ['setDialog', 'loadEvents']),
    async deleteEvents () {
      var deleteIds = []
      for (let i = 0; i < this.dialog.info.length; i++) {
        deleteIds.push(this.dialog.info[i].id)
      }
      await this.$http.post('/api/events?delete', { ids: deleteIds })
      this.setDialog({ show: false })
      this.$snackbar({ color: 'success', text: this.$tc('eventDeleteSuccess', [deleteIds.length]) })
      this.$store.dispatch('events/loadEvents')
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>