{% extends '_main.html' %}

{% block title %}Wanted (Series) - Bazarr{% endblock %}

{% block bcleft %}
    <button class="btn btn-outline" id="search_button">
        <div><i class="fas fa-search align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>
        <div class="align-bottom text-themecolor small text-center">Search All</div>
    </button>
{% endblock bcleft %}

{% block bcright %}

{% endblock bcright %}

{% block body %}
    <table id="wanted_series" class="table table-striped" style="width:100%">
        <thead>
        <tr>
            <th>Series</th>
            <th>Episode</th>
            <th>Episode Title</th>
            <th>Missing Subtitle(s)</th>
        </tr>
        </thead>
    </table>
{% endblock body %}

{% block tail %}
    <script>
        $(document).ready(function () {
            var table = $('#wanted_series').DataTable({
                processing: true,
                serverSide: true,
                language: {
                    zeroRecords: 'No Missing Series Subtitles',
                    processing: "Loading Missing Series Subtitles..."
                },
                searching: false,
                ordering: false,
                lengthChange: false,
                responsive: true,
                pageLength: {{ settings.general.page_size }},
                ajax: "{{ url_for('api.wantedseries') }}",
                columns: [
                    {
                        data: null,
                        render: function (data) {
                            return '<a href="' + "{{ url_for( 'episodes', no='tempvalue' ) }}".replace("tempvalue", data.sonarrSeriesId) + '">' + data.seriesTitle + '</a>';
                        }
                    },
                    {data: "episode_number"},
                    {data: "episodeTitle"},
                    {
                        data: null,
                        render: function (data) {
                            if (data.missing_subtitles !== 'None') {
                                var languages = '';
                                data.missing_subtitles.forEach(appendFunc);
                                return languages;
                            } else {
                                return null;
                            }

                            function appendFunc(value) {
                                languages = languages + '<a href="" class="get_subtitle badge badge-secondary" data-toggle="tooltip" data-placement="right" title="' + value.name + ((value.forced) ? ' forced' : '') + '" data-episodepath="' + data.mapped_path + '" data-scenename="' + data.scene_name + '" data-seriestitle="' + data.seriesTitle + '" data-language="' + value.code3 + '" data-hi="' + data.hearing_impaired + '" data-forced="' + value.forced + '" data-sonarrseriesid=' + data.sonarrSeriesId + ' data-sonarrepisodeid=' + data.sonarrEpisodeId + '>' + value.code2 + ((value.forced) ? ':forced' : '') + ' <i class="fas fa-search"></i></a> ';
                            }
                        }
                    }
                ]
            });

            $('#search_button').on('click', function (e) {
                e.preventDefault();
                $.ajax({
                    url: "{{ url_for('api.searchwantedseries') }}",
                    type: 'GET',
                    beforeSend: function () {
                        $('#search_button').find("i").addClass('fa-spin');
                    },
                    complete: function () {
                        $('#search_button').find("i").removeClass('fa-spin');
                    }
                });
            });

            $('#wanted_series').on('click', '.get_subtitle', function (e) {
                $(this).tooltip('dispose');
                e.preventDefault();
                const values = {
                    episodePath: $(this).attr("data-episodepath"),
                    sceneName: $(this).attr("data-scenename"),
                    language: $(this).attr("data-language"),
                    hi: $(this).attr("data-hi"),
                    forced: $(this).attr("data-forced"),
                    sonarrSeriesId: $(this).attr("data-sonarrseriesid"),
                    sonarrEpisodeId: $(this).attr('data-sonarrepisodeid'),
                    title: $(this).attr("data-seriestitle")
                };
                var cell = $(this).parent();
                $.ajax({
                    url: "{{ url_for('api.episodessubtitlesdownload') }}",
                    type: "POST",
                    dataType: "json",
                    data: values,
                    beforeSend: function () {
                        cell.html('<div class="spinner-border spinner-border-sm" role="status"><span class="sr-only">Loading...</span></div>');
                    }
                });
            });

            events.on('event', function (event) {
                var event_json = JSON.parse(event);
                if (event_json.type === 'episode') {
                    $('#wanted_series').DataTable().ajax.reload(resetPaging = false);
                    $('[data-toggle="tooltip"]').tooltip({html: true});
                }
            });
        });
    </script>
{% endblock tail %}
