Skip to content
Snippets Groups Projects
App.vue 2.68 KiB
Newer Older
  • Learn to ignore specific revisions
  • Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
      <div id="app" :key="localeKey" class="tw-flex tw-flex-col tw-min-h-screen">
        <app-header :modules="modules" :user="user" />
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
        <div v-if="user.steeringUser !== null" class="tw-flex-1 tw-flex tw-my-8">
          <router-view :modules="modules" :user="user" />
        </div>
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
        <div v-else class="tw-flex-1 tw-flex tw-my-8">
          <home :modules="modules" :user="user" />
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
    
        <app-footer :modules="modules" />
      </div>
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
    import { translationVm } from '@/plugins/translation'
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
    import header from './components/Header.vue'
    import footer from './components/Footer.vue'
    import Home from './Pages/Home.vue'
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
    export default {
      name: 'App',
      components: {
        Home,
        'app-header': header,
        'app-footer': footer,
      },
      computed: {
        userOIDC() {
          return this.$store.state.auth.userOIDC
        },
        user() {
          return this.$store.state.auth.user
        },
        localeKey: () => translationVm.activeLocale,
        modules: function () {
          // Logged out
          let modules = {}
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
          // All icons used are taken from the Tango Project, which put them into public domain:
          // http://tango.freedesktop.org
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
          if (this.user.logged_in === true) {
            modules =
              this.user.steeringUser && this.user.steeringUser.is_superuser
                ? // Super user
                  {
                    main: [
                      {
                        icon: '/assets/shows.svg',
                        slug: 'shows',
                        title: this.$t('navigation.shows'),
                      },
                      {
                        icon: '/assets/files.svg',
                        slug: 'files',
                        title: this.$t('navigation.filesPlaylists'),
                      },
                      {
                        icon: '/assets/calendar.svg',
                        slug: 'calendar',
                        title: this.$t('navigation.calendar'),
                      },
                    ],
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
                    footer: [
                      {
                        slug: 'settings',
                        title: this.$t('navigation.settings'),
                      },
                    ],
                  }
                : // Regular user
                  {
                    main: [
                      {
                        icon: '/assets/shows.svg',
                        slug: 'shows',
                        title: this.$t('navigation.shows'),
                      },
                      {
                        icon: '/assets/files.svg',
                        slug: 'files',
                        title: this.$t('navigation.filesPlaylists'),
                      },
                    ],
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
                    footer: [],
                  }
          }
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
          return modules
        },
      },
      created() {
        this.$store.dispatch('auth/oidcInit')
      },
    }