|
- // Code generated by "inline -o templates.go -p cdr mixtape.tmpl templates/parts.tmpl" -- DO NOT EDIT --
-
- package cdr
-
- import (
- "fmt"
- "io/ioutil"
- )
-
- func ReadAsset(file string, useLocal bool) ([]byte, error) {
- if useLocal {
- return ioutil.ReadFile(file)
- }
- if f, ok := files[file]; ok {
- return []byte(f), nil
- }
- return nil, fmt.Errorf("file doesn't exist.")
- }
-
- var files = map[string]string{
- "mixtape.tmpl": `{{define "mixtape"}}
- <html>
- <head>
- <title>Mixtape</title>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <style type="text/css">
- body {
- font-size: 1.2em;
- margin: 1em;
- }
- #playlist {
- list-style: decimal-leading-zero;
- margin: 1em 0;
- }
- #playlist li {
- margin: 0.5em 0;
- }
- li p {
- display: none;
- font-style: italic;
- }
- li.active a {
- font-weight: bold;
- }
- li.active p {
- display: block;
- }
- </style>
- </head>
- <body>
- {{template "full-player" .Tracks}}
- </body>
- </html>
- {{end}}
-
- {{define "track-info"}}
- {{if eq .Num 1}}
- <p>[Here I might introduce this mix.]</p>
- <p>[Some notes about track 1.]</p>
- {{else if eq .Num 2}}
- <p>[Some notes about track 2.]</p>
- {{else if eq .Num 5}}
- <p>[Some notes about track 5.]</p>
- {{end}}
- {{end}}`,
- "templates/parts.tmpl": `{{define "player"}}
- {{with $x := index . 0}}
- <audio id="player" preload="auto" tabindex="0" controls>
- <source src="{{$x.Filename}}">
- </audio>
- {{end}}
- {{end}}
- {{define "playlist"}}
- <ol id="playlist">
- {{range $i, $el := .}}
- <li{{if eq $i 0}} class="active"{{end}}>
- <a href="{{$el.Filename}}">{{$el.Artist}} - {{$el.Title}}</a>
- {{template "track-info" $el}}
- </li>
- {{end}}
- </ol>
- {{end}}
-
- {{define "track-info"}}{{end}}
-
- {{define "full-player"}}
- {{template "player" .}}
- {{template "playlist" .}}
- {{template "playlist-js"}}
- {{end}}
-
- {{define "playlist-js"}}
- <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- var current = 0;
- var $audio = $('#player');
- var $playlist = $('#playlist');
- var $tracks = $playlist.find('li a');
- var len = $tracks.length;
-
- $playlist.on('click', 'a', function (e) {
- e.preventDefault();
- link = $(this);
- current = link.parent().index();
- console.log(current);
- play(link, $audio[0]);
- });
- $audio[0].addEventListener('ended', function (e) {
- playNext();
- });
- $('a#next').on('click', function (e) {
- e.preventDefault();
- playNext();
- });
- $('a#prev').on('click', function (e) {
- e.preventDefault();
- playPrev();
- });
-
- function playPrev() {
- current--;
- if (current <= 0) {
- current = len;
- link = $playlist.find('a')[0];
- } else {
- link = $playlist.find('a')[current];
- }
- play($(link), $audio[0]);
- }
-
- function playNext() {
- current++;
- if (current == len) {
- current = 0;
- link = $playlist.find('a')[0];
- } else {
- link = $playlist.find('a')[current];
- }
- play($(link), $audio[0]);
- }
-
- function play($link, $player) {
- $player.src = $link.attr('href');
- par = $link.parent();
- par.addClass('active').siblings().removeClass('active');
- $player.load();
- $player.play();
- }
- });
- </script>
- {{end}}`,
- }
|