RadioShows.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <f7-page name="RadioShows">
  3. <img :src="Radio.logo" id="logo" />
  4. <f7-block-title>{{ Radio.name }}</f7-block-title>
  5. <f7-block-header>{{ Radio.description }}</f7-block-header>
  6. <div v-if="loading" strong class="text-align-center">
  7. <f7-preloader />
  8. </div>
  9. <f7-list v-else>
  10. <f7-list-item
  11. v-for="show in Radio.shows"
  12. :key="show.name"
  13. :title="show.name"
  14. :link="`/radio/${encodeURIComponent(radioId)}/shows/${show.name}`"
  15. :footer="show.description"
  16. />
  17. </f7-list>
  18. </f7-page>
  19. </template>
  20. <script>
  21. import radiomanifest from "../js/radiomanifest";
  22. export default {
  23. name: "radio",
  24. data() {
  25. return {
  26. loading: true,
  27. radioId: null,
  28. radio: { name: "" },
  29. Radio: {},
  30. };
  31. },
  32. props: { f7route: Object, f7router: Object },
  33. async mounted() {
  34. this.radioId = decodeURIComponent(this.f7route.params.radioUrl);
  35. try {
  36. this.Radio = await radiomanifest.get(this.radioId);
  37. this.loading = false;
  38. } catch (e) {
  39. console.error("le cose non vanno mai sempre bene!", e);
  40. }
  41. },
  42. };
  43. </script>
  44. <style>
  45. #logo {
  46. margin-left: 10px;
  47. max-width: 40px;
  48. }
  49. </style>