Skip to content
Snippets Groups Projects
Home.vue 3.26 KiB
Newer Older
  • Learn to ignore specific revisions
  •   <main v-title="labels.title" :key="$router.currentRoute.name">
    
        <section class="ui vertical stripe segment">
    
    Eliot Berriot's avatar
    Eliot Berriot committed
          <div class="ui stackable three column grid">
    
              <track-widget :url="'history/listenings/'" :filters="{scope: scope, ordering: '-creation_date'}">
    
                <template slot="title"><translate translate-context="Content/Home/Title">Recently listened</translate></template>
    
              </track-widget>
    
              <track-widget :url="'favorites/tracks/'" :filters="{scope: scope, ordering: '-creation_date'}">
    
                <template slot="title"><translate translate-context="Content/Home/Title">Recently favorited</translate></template>
    
              </track-widget>
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            <div class="column">
    
              <playlist-widget :url="'playlists/'" :filters="{scope: scope, playable: true, ordering: '-modification_date'}">
    
    jovuit's avatar
    jovuit committed
                <template slot="title"><translate translate-context="*/*/*">Playlists</translate></template>
    
              </playlist-widget>
            </div>
          </div>
          <div class="ui section hidden divider"></div>
    
          <div class="ui stackable one column grid">
            <div class="column">
    
              <album-widget :filters="{scope: scope, playable: true, ordering: '-creation_date'}">
    
                <template slot="title"><translate translate-context="Content/Home/Title">Recently added</translate></template>
    
              </album-widget>
    
    Eliot Berriot's avatar
    Eliot Berriot committed
            </div>
    
          <template v-if="scope === 'all'">
            <h3 class="ui header" >
              <translate translate-context="*/*/*">New channels</translate>
            </h3>
    
            <channels-widget :show-modification-date="true" :limit="12" :filters="{ordering: '-creation_date', external: 'false'}"></channels-widget>
    
    import axios from "axios"
    import Search from "@/components/audio/Search"
    import logger from "@/logging"
    
    import ChannelsWidget from "@/components/audio/ChannelsWidget"
    
    import ArtistCard from "@/components/audio/artist/Card"
    import TrackWidget from "@/components/audio/track/Widget"
    import AlbumWidget from "@/components/audio/album/Widget"
    import PlaylistWidget from "@/components/playlists/Widget"
    
      props: {
        scope: {default: 'all'}
      },
    
        TrackWidget,
        AlbumWidget,
    
        PlaylistWidget,
        ChannelsWidget,
    
    Eliot Berriot's avatar
    Eliot Berriot committed
      computed: {
    
    Eliot Berriot's avatar
    Eliot Berriot committed
          return {
    
            title: this.$pgettext('Head/Home/Title', "Home")
    
          var self = this
          this.isLoadingArtists = true
          let params = {
    
          logger.default.time("Loading latest artists")
          axios.get(url, { params: params }).then(response => {
    
            logger.default.timeEnd("Loading latest artists")
    
            self.isLoadingArtists = false
          })
        }
      }
    }
    </script>
    
    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    </style>