Skip to content
Snippets Groups Projects
Library.vue 2.49 KiB
Newer Older
    <div class="ui secondary pointing menu">
Bat's avatar
Bat committed
      <router-link class="ui item" to="/library" exact><i18next path="Browse"/></router-link>
      <router-link class="ui item" to="/library/artists" exact><i18next path="Artists"/></router-link>
      <router-link class="ui item" to="/library/radios" exact><i18next path="Radios"/></router-link>
      <router-link class="ui item" to="/library/playlists" exact><i18next path="Playlists"/></router-link>
      <div class="ui secondary right menu">
        <router-link v-if="$store.state.auth.authenticated" class="ui item" to="/library/requests/" exact>
Bat's avatar
Bat committed
          <i18next path="Requests"/>
          <div class="ui teal label">{{ requestsCount }}</div>
        </router-link>
Bat's avatar
Bat committed
        <router-link v-if="$store.state.auth.availablePermissions['import.launch']" class="ui item" to="/library/import/launch" exact>
          <i18next path="Import"/>
        </router-link>
        <router-link v-if="$store.state.auth.availablePermissions['import.launch']" class="ui item" to="/library/import/batches">
          <i18next path="Import batches"/>
    <router-view :key="$route.fullPath"></router-view>
import axios from 'axios'
  name: 'library',
  data () {
    return {
      requestsCount: 0
    }
  },
  created () {
    this.fetchRequestsCount()
  },
  methods: {
    fetchRequestsCount () {
      axios.get('requests/import-requests/', {params: {status: 'pending'}}).then(response => {
        self.requestsCount = response.data.count
      })
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
@import '../../style/vendor/media';

.library.pusher > .ui.secondary.menu {
  @include media(">tablet") {
    margin: 0 2.5rem;
  }
  .item {
    padding-top: 1.5em;
    padding-bottom: 1.5em;
  }
  .ui.segment.head {
    background-size: cover;
    background-position: center;
    padding: 0;
    .segment-content {
      margin: 0 auto;
      padding: 2em;
      @include media(">tablet") {
        padding: 4em;
      }
    }
    &.with-background {
      .header {
        &, .sub, a {
          text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);
          color: white !important;
        }
      }
      .segment-content {
        background-color: rgba(0, 0, 0, 0.5)
      }

    }
  }

}

</style>