summaryrefslogtreecommitdiffstats
path: root/webapp/src/components/EventModule.vue
diff options
context:
space:
mode:
authorChristian Hofmaier2019-03-24 17:02:18 +0100
committerChristian Hofmaier2019-03-24 17:02:18 +0100
commit1ee0e6c1d7484930387438b7ebb15340595b5383 (patch)
treecff87a96c777b9fee0c3e066d1bd6d88763f1915 /webapp/src/components/EventModule.vue
parent[webapp] small design fixes (diff)
downloadbas-1ee0e6c1d7484930387438b7ebb15340595b5383.tar.gz
bas-1ee0e6c1d7484930387438b7ebb15340595b5383.tar.xz
bas-1ee0e6c1d7484930387438b7ebb15340595b5383.zip
[eventmanager] Add module and functionality
- list to show all events, buttons to create/delete events - can add groups/clients to event - can add blacklist to event
Diffstat (limited to 'webapp/src/components/EventModule.vue')
-rw-r--r--webapp/src/components/EventModule.vue83
1 files changed, 83 insertions, 0 deletions
diff --git a/webapp/src/components/EventModule.vue b/webapp/src/components/EventModule.vue
new file mode 100644
index 0000000..68f9537
--- /dev/null
+++ b/webapp/src/components/EventModule.vue
@@ -0,0 +1,83 @@
+<i18n>
+{
+ "en": {
+ "events": "Events",
+ "eventCalendar": "Event Calendar",
+ "eventList": "Event List"
+ },
+ "de": {
+ "events": "Veranstaltungen",
+ "eventCalendar": "Veranstaltungskalendar",
+ "eventList": "Veranstaltungsliste"
+ }
+}
+</i18n>
+
+<template>
+ <v-container fill-height>
+ <v-layout>
+ <v-flex xl10 offset-xl1 lg12>
+ <v-card class="tabbar-card">
+ <v-tabs v-model="tabs" grow hide-slider :dark="tabsDark" :color="tabsColor" :slider-color="tabsSliderColor">
+ <v-tab><v-icon class="tabbar-tabicon">calendar_view_day</v-icon>{{ $t('eventList') }}</v-tab>
+ </v-tabs>
+ </v-card>
+ <v-tabs-items v-model="tabs" style="padding-bottom: 20px">
+ <v-tab-item>
+ <v-subheader>{{ $t('eventList') }}</v-subheader>
+ <event-module-event-list/>
+ </v-tab-item>
+ </v-tabs-items>
+ </v-flex>
+ </v-layout>
+ <v-dialog
+ :value="dialog.show"
+ @input="setDialog({ show: $event })"
+ :max-width="dialog.type === 'delete' ? '500px' : '1200px'"
+ scrollable
+ persistent
+ :fullscreen="$vuetify.breakpoint.smAndDown"
+ >
+ <event-module-delete v-if="dialog.type === 'delete'" />
+ <event-module-edit v-else-if="dialog.type === 'edit'"/>
+ </v-dialog>
+ </v-container>
+</template>
+
+<script>
+import EventModuleEventList from '@/components/EventModuleEventList'
+import EventModuleEdit from '@/components/EventModuleEdit'
+import EventModuleDelete from '@/components/EventModuleDelete'
+import { mapState, mapGetters, mapMutations } from 'vuex'
+
+export default {
+ name: 'EventModule',
+ components: {
+ EventModuleEventList,
+ EventModuleEdit,
+ EventModuleDelete
+ },
+ data () {
+ return {
+ tabs: 0
+ }
+ },
+ computed: {
+ ...mapGetters(['tabsDark', 'tabsColor', 'tabsSliderColor']),
+ ...mapState('events', ['dialog'])
+ },
+ watch: {
+ },
+ methods: {
+ ...mapMutations('events', ['setDialog'])
+ },
+ created () {
+ this.$store.dispatch('events/loadLists')
+ this.$store.dispatch('groups/loadLists')
+ }
+}
+</script>
+
+<style scoped>
+
+</style>