{% extends "base.html" %}
{% load humanize %}


{% block content %}
<main class="col-md-4 ms-sm-auto col-lg-10 px-md-4">
    <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
        <h1 class="h2">Dashboard</h1>
        <div class="btn-toolbar mb-2 mb-md-0">
            {% if user.is_authenticated %}
            <div class="btn-group me-2">
                <button type="button" class="btn btn-sm btn-outline-secondary" data-bs-toggle="modal" data-bs-target="#importModal">Import</button>
                <button type="button" class="btn btn-sm btn-outline-secondary" data-bs-toggle="modal" data-bs-target="#exportModal">Export</button>
            </div>
            {% endif %}
            <div class="dropdown">
                <button type="button" class="btn btn-sm btn-outline-secondary dropdown-toggle" id="graphDateButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    <span data-feather="calendar"></span>
                    This week
                </button>
                <div class="dropdown-menu" data-bs-toggle="#graphDataChange" aria-labelledby="graphDateButton">
                    <a class="dropdown-item" href="#">This month</a>
                    <a class="dropdown-item" href="#">This year</a>
                </div>
            </div>
        </div>
    </div>

    <canvas class="my-4 w-100" id="myChart" width="900" height="220"></canvas>

    <div class="container">

        {% if user.is_authenticated %}
        <div class="row">
            <p>Today <b>{{counts.today}}</b> | This Week <b>{{counts.week}}</b> | This Month <b>{{counts.month}}</b> | This Year <b>{{counts.year}}</b> | All Time <b>{{counts.alltime}}</b></p>
        </div>
        <div class="row">
            <div class="col-md">
                <ul class="nav nav-tabs" id="myTab" role="tablist">
                    <li class="nav-item" role="presentation">
                        <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#artists-week" type="button" role="tab" aria-controls="home" aria-selected="true">Weekly Artists</button>
                    </li>
                    <li class="nav-item" role="presentation">
                        <button class="nav-link" id="artist-month-tab" data-bs-toggle="tab" data-bs-target="#artists-month" type="button" role="tab" aria-controls="home" aria-selected="true">Monthly Artists</button>
                    </li>
                    <li class="nav-item" role="presentation">
                        <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#tracks-week" type="button" role="tab" aria-controls="profile" aria-selected="false">Weekly Tracks</button>
                    </li>
                    <li class="nav-item" role="presentation">
                        <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#tracks-month" type="button" role="tab" aria-controls="profile" aria-selected="false">Monthly Tracks</button>
                    </li>
                </ul>

                <div class="tab-content" id="myTabContent">
                    <div class="tab-pane fade show active" id="artists-week" role="tabpanel" aria-labelledby="artists-week-tab">
                        <h2>Top artists this week</h2>
                        <div class="table-responsive">
                            <table class="table table-striped table-sm">
                            <thead>
                                <tr>
                                    <th scope="col">#</th>
                                    <th scope="col">Artist</th>
                                </tr>
                            </thead>
                            <tbody>
                                {% for artist in top_weekly_artists %}
                                <tr>
                                    <td>{{artist.num_scrobbles}}</td>
                                    <td>{{artist.name}}</td>
                                </tr>
                                {% endfor %}
                            </tbody>
                            </table>
                        </div>
                    </div>

                    <div class="tab-pane fade show" id="tracks-week" role="tabpanel" aria-labelledby="tracks-week-tab">
                        <h2>Top tracks this week</h2>
                        <div class="table-responsive">
                            <table class="table table-striped table-sm">
                            <thead>
                                <tr>
                                    <th scope="col">#</th>
                                    <th scope="col">Track</th>
                                    <th scope="col">Artist</th>
                                </tr>
                            </thead>
                            <tbody>
                                {% for track in top_weekly_tracks %}
                                <tr>
                                    <td>{{track.num_scrobbles}}</td>
                                    <td>{{track.title}}</td>
                                    <td>{{track.artist.name}}</td>
                                </tr>
                                {% endfor %}
                            </tbody>
                            </table>
                        </div>
                    </div>


                    <div class="tab-pane fade show" id="tracks-month" role="tabpanel" aria-labelledby="tracks-month-tab">
                        <h2>Top tracks this month</h2>
                        <div class="table-responsive">
                            <table class="table table-striped table-sm">
                            <thead>
                                <tr>
                                    <th scope="col">#</th>
                                    <th scope="col">Track</th>
                                    <th scope="col">Artist</th>
                                </tr>
                            </thead>
                            <tbody>
                                {% for track in top_monthly_tracks %}
                                <tr>
                                    <td>{{track.num_scrobbles}}</td>
                                    <td>{{track.title}}</td>
                                    <td>{{track.artist.name}}</td>
                                </tr>
                                {% endfor %}
                            </tbody>
                            </table>
                        </div>
                    </div>

                    <div class="tab-pane fade show " id="artists-month" role="tabpanel" aria-labelledby="artists-month-tab">
                        <h2>Top artists this month</h2>
                        <div class="table-responsive">
                            <table class="table table-striped table-sm">
                            <thead>
                                <tr>
                                    <th scope="col">#</th>
                                    <th scope="col">Artist</th>
                                </tr>
                            </thead>
                            <tbody>
                                {% for artist in top_monthly_artists %}
                                <tr>
                                    <td>{{artist.num_scrobbles}}</td>
                                    <td>{{artist.name}}</td>
                                </tr>
                                {% endfor %}
                            </tbody>
                            </table>
                        </div>
                    </div>

                </div>
            </div>
        <div class="col-md">
            <ul class="nav nav-tabs" id="myTab" role="tablist">
                <li class="nav-item" role="presentation">
                    <button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#latest-listened" type="button" role="tab" aria-controls="home" aria-selected="true">Tracks</button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#latest-watched" type="button" role="tab" aria-controls="profile" aria-selected="false">Videos</button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#latest-podcasted" type="button" role="tab" aria-controls="profile" aria-selected="false">Podcasts</button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#latest-sports" type="button" role="tab" aria-controls="profile" aria-selected="false">Sports</button>
                </li>
            </ul>

            <div class="tab-content" id="myTabContent2">
                <div class="tab-pane fade show active" id="latest-listened" role="tabpanel" aria-labelledby="latest-listened-tab">
                    <h2>Latest listened</h2>
                    <div class="table-responsive">
                        <table class="table table-striped table-sm">
                        <thead>
                            <tr>
                            <th scope="col">Time</th>
                            <th scope="col">Album</th>
                            <th scope="col">Track</th>
                            <th scope="col">Artist</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for scrobble in object_list %}
                            <tr>
                                <td>{{scrobble.timestamp|naturaltime}}</td>
                                {% if scrobble.track.album.cover_image %}
                                <td><img src="{{scrobble.track.album.cover_image.url}}" width=50 height=50 style="border:1px solid black;" /></td>
                                {% else %}
                                <td>{{scrobble.track.album.name}}</td>
                                {% endif %}
                                <td>{{scrobble.track.title}}</td>
                                <td>{{scrobble.track.artist.name}}</td>
                            </tr>
                            {% endfor %}
                        </tbody>
                        </table>
                    </div>
                </div>

                <div class="tab-pane fade show" id="latest-watched" role="tabpanel" aria-labelledby="latest-watched-tab">
                    <h2>Latest watched</h2>
                    <div class="table-responsive">
                        <table class="table table-striped table-sm">
                        <thead>
                            <tr>
                            <th scope="col">Time</th>
                            <th scope="col">Title</th>
                            <th scope="col">Series</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for scrobble in video_scrobble_list %}
                            <tr>
                                <td>{{scrobble.timestamp|naturaltime}}</td>
                                <td>{% if scrobble.video.tv_series %}S{{scrobble.video.season_number}}E{{scrobble.video.episode_number}} -{% endif %} {{scrobble.video.title}}</td>
                                <td>{% if scrobble.video.tv_series %}{{scrobble.video.tv_series}}{% endif %}</td>
                            </tr>
                            {% endfor %}
                        </tbody>
                        </table>
                    </div>
                </div>

                <div class="tab-pane fade show" id="latest-sports" role="tabpanel" aria-labelledby="latest-sports-tab">
                    <h2>Latest Sports</h2>
                    <div class="table-responsive">
                        <table class="table table-striped table-sm">
                        <thead>
                            <tr>
                            <th scope="col">Date</th>
                            <th scope="col">Title</th>
                            <th scope="col">League</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for scrobble in sport_scrobble_list %}
                            <tr>
                                <td>{{scrobble.timestamp|naturaltime}}</td>
                                <td>{{scrobble.sport_event.title}}</td>
                                <td>{{scrobble.sport_event.league.abbreviation}}</td>
                            </tr>
                            {% endfor %}
                        </tbody>
                        </table>
                    </div>
                </div>

                <div class="tab-pane fade show" id="latest-podcasted" role="tabpanel" aria-labelledby="latest-podcasted-tab">
                    <h2>Latest Podcasted</h2>
                    <div class="table-responsive">
                        <table class="table table-striped table-sm">
                        <thead>
                            <tr>
                            <th scope="col">Date</th>
                            <th scope="col">Title</th>
                            <th scope="col">Podcast</th>
                            </tr>
                        </thead>
                        <tbody>
                            {% for scrobble in podcast_scrobble_list %}
                            <tr>
                                <td>{{scrobble.timestamp|naturaltime}}</td>
                                <td>{{scrobble.podcast_episode.title}}</td>
                                <td>{{scrobble.podcast_episode.podcast}}</td>
                            </tr>
                            {% endfor %}
                        </tbody>
                        </table>
                    </div>
                </div>

            </div>
        </div>
        {% endif %}
    </div>
</main>

<div class="modal fade" id="importModal" tabindex="-1" role="dialog" aria-labelledby="importModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="importModalLabel">Import scrobbles</h5>
                <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <form action="{% url 'audioscrobbler-file-upload' %}" method="post" enctype="multipart/form-data">
                <div class="modal-body">
                        {% csrf_token %}
                        <div class="form-group">
                            <label for="tsv_file" class="col-form-label">Audioscrobbler TSV file:</label>
                            <input type="file" name="tsv_file" class="form-control" id="id_tsv_file">
                        </div>
                </div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-primary">Import</button>
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                </div>
            </form>
        </div>
    </div>
</div>

<div class="modal fade" id="exportModal" tabindex="-1" role="dialog" aria-labelledby="exportModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exportModalLabel">Export scrobbles</h5>
                <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <form action="{% url 'scrobbles:export' %}" method="get">
                <div class="modal-body">
                        {% csrf_token %}
                        <div class="form-group">
                            {{export_form.as_div}}
                        </div>
                </div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-primary">Export</button>
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
                </div>
            </form>
        </div>
    </div>
</div>
{% endblock %}

{% block extra_js %}
<script>
$('#importModal').on('shown.bs.modal', function () { $('#importInput').trigger('focus') });
$('#exportModal').on('shown.bs.modal', function () { $('#exportInput').trigger('focus') });
</script>
{% endblock %}
