{% extends "admin/change_form.html" %}

{% block object-tools-items %}
    {% if original.pbn_uid_id %}
        <li><a target="_blank" href="{{ original.pbn_uid.link_do_pbn }}">Zobacz w PBN</a></li>
        <li><a target="_blank" href="/admin/pbn_api/publication/{{ original.pbn_uid_id }}/change">Lokalny PBN</a></li>
    {% endif %}
    {% if original.pk %}
        <li><a href="/admin/bpp/wydawnictwo_ciagle_autor/?rekord__id__exact={{ original.pk }}">Autorzy</a></li>
    {% endif %}
    {{ block.super }}
{% endblock %}

{% block submit_buttons_bottom %}
    {{ block.super }}

    {%  include "admin/strona_tom_nr_zeszytu_button_handler.html" %}
    {% include "admin/get_pbn_by_doi_button_handler.html" %}
    {%  include "admin/liczba_arkuszy_wydawniczych.html" %}
    {%  include "admin/uzupelnij_rok_wydawnictwo_ciagle_button_handler.html" %}

    <script type="text/javascript">

        (function ($) {
        pub_id = $("#id_autorzy_set-__prefix__-rekord").val()

        // Otwórz niewidoczny stacked inline z nagrodą - tak, aby
        // po kliknięciu "dodaj nagrodę" dodał się otwarty formularz, a nie
        // linia z napisem "nagroda"
        $("#bpp-nagroda-content_type-object_id-empty")
            .removeClass("grp-closed")
            .addClass("grp-open");

        $("#wydawnictwo_ciagle_zewnetrzna_baza_danych_set-empty")
            .removeClass("grp-closed")
            .addClass("grp-open");

        // Gramatyka
        $('a').each(function () {
            var html = $(this).html();
            if (html.includes("Dodaj kolejne nagroda")) {
            }
            $(this).html(html.replace('Dodaj kolejne nagroda', 'Dodaj kolejną nagrodę'));
        });


        if (pub_id) {
            btn = $("input[name=_continue]");
            tamze = $("<input/>")
                .attr("id", "tamze")
                .attr("class", "grp-button")
                .attr("type", "button")
                .attr("value", "Tamże");

            toz = tamze.clone()
                .attr("id", "toz")
                .attr("value", "Toż");

            btn.parent().parent().append($("<li/>").append(tamze));
            btn.parent().parent().append($("<li/>").append(toz));

            $("#tamze").click(function () {
                data = {
                    "zrodlo": $("select[name=zrodlo]").val(),
                    "informacje": $("textarea[name=informacje]").val(),
                    // "szczegoly": $("input[name=szczegoly]").val(),
                    "uwagi": $("textarea[name=uwagi]").val(),
                    // "www": $("input[name=www]").val(),
                    "rok": $("input[name=rok]").val(),

                    "charakter_formalny": $("select[name=charakter_formalny]").val(),
                    "jezyk": $("select[name=jezyk]").val(),
                    "typ_kbn": $("select[name=typ_kbn]").val(),

                    "punkty_kbn": $("input[name=punkty_kbn]").val(),
                    "impact_factor": $("input[name=impact_factor]").val(),
                    "index_copernicus": $("input[name=index_copernicus]").val(),
                    "punktacja_wewnetrzna": $("input[name=punktacja_wewnetrzna]").val(),
                    "punktacja_snip": $("input[name=punktacja_snip]").val(),

                    "kc_punkty_kbn": $("input[name=kc_punkty_kbn]").val(),
                    "kc_impact_factor": $("input[name=kc_impact_factor]").val(),
                    "kc_index_copernicus": $("input[name=kc_index_copernicus]").val()
                }
                window.onbeforeunload = function (e) {
                };
                location.href = "../../add/?" + $.param(data);
            });

            $("#toz").click(function () {
                if (confirm('Utworzysz kopię tego rekordu. Czy kontynuować?')) {
                    window.onbeforeunload = function (e) {
                    };
                    location.href = "../../toz/" + pub_id;
                }
            });
        }
    }(django.jQuery));
    </script>

    {%  include "admin/pubmed_id_button_handler.html" %}
    {%  include "admin/liczba_cytowan_button_handler.html" %}

    <script type="text/javascript">
        (function($){
        $(document).ready(function () {
            var wypelnij_pola_punktacji, dodaj_punktacje_do_zrodla, names;

            wypelnij_pola_punktacji = "Wypełnij pola punktacji";
            dodaj_punktacje_do_zrodla = "Dodaj punktację do źródła";
            names = ['impact_factor', 'index_copernicus',
                'kc_impact_factor', 'kc_index_copernicus',
                'kc_punkty_kbn', 'punktacja_wewnetrzna',
                'punkty_kbn', 'punktacja_snip'];
            /*
             W razie zmiany źródła LUB roku, ustaw domyślne wartości tekstu
             na przyciskach punktacji.
             */

            function resetButtonText() {
                $("#id_wypelnij_pola_punktacji_button").text(wypelnij_pola_punktacji);
                $("#id_dodaj_punktacje_do_zrodla_button").text(dodaj_punktacje_do_zrodla);
            }

            names.forEach(function (n) {
                $("#id_" + n).change(resetButtonText);
            });

            function walidujParametry() {
                var zrodlo, rok;

                zrodlo = $("#id_zrodlo").val();
                if (zrodlo == "") {
                    alert("Najpierw wybierz jakieś źródło.");
                    return false;
                }

                rok = $("#id_rok").val();
                if (rok == '') {
                    alert("Uzupełnij pole 'Rok'");
                    return false;
                }
                return {rok: rok, zrodlo: zrodlo}
            }

            $("#id_zrodlo").change(resetButtonText);
            $("#id_rok").change(resetButtonText);

            $("#id_uzupelnij_punktacje").css("display", "none");
            $("label[for=id_uzupelnij_punktacje]").css("display", "none");
            $("#id_uzupelnij_punktacje").parent()
                    .append('<button style="width: 200px;" class="grp-button" ' +
                            'id="id_wypelnij_pola_punktacji_button">' +
                            'Uzupełnij punktację</button>')
                    .append('<button style="width: 200px; margin-left: 30px;" class="grp-button" ' +
                            'id="id_dodaj_punktacje_do_zrodla_button">' +
                            'Dodaj punktację do źródła</button>');

            $("#id_dodaj_punktacje_do_zrodla_button").click(function () {
                var ret, data;

                ret = walidujParametry();
                if (ret == false)
                    return ret;

                url = "/bpp/api/upload-punktacja-zrodla/" + ret.zrodlo + '/' + ret.rok + '/';
                data = {}
                names.forEach(function (n) {
                    data[n] = $("#id_" + n).val();
                });
                console.log(data);

                var y = $.ajax({type: "POST", url: url, data: data });

                y.done(
                        function (res) {
                            if (res.result == 'exists') {
                                if (confirm("Punktacja dla tego roku już istnieje. Nadpisać?")) {
                                    data.overwrite = "1";
                                    console.log(data);
                                    var x = $.ajax({type: "POST", url: url,
                                        data: data});

                                    x.done(
                                            function (res) {
                                                if (res.result == 'ok')
                                                    $("#id_dodaj_punktacje_do_zrodla_button").text("Punktacja zapisana!");
                                            }
                                    );

                                    x.fail(
                                            function (err) {
                                                alert("Wystąpił błąd, status: " + err.status);
                                            }
                                    );

                                } else
                                    return false;
                            }

                            if (res.result == 'ok')
                                $("#id_dodaj_punktacje_do_zrodla_button").text("Dodana!!");
                        });

                y.fail(
                        function (err) {
                            if (err.status == 404) {
                                if (err.response == "Zrodlo") {
                                    alert("Brak danych na temat wybranego źródła");
                                    return false;
                                }
                            }

                            alert("Wystąpił błąd, status: " + err.status + ".");
                        });


                return false;

            });

            $("#id_wypelnij_pola_punktacji_button").click(function () {
                var ret;

                ret = walidujParametry();
                if (ret == false)
                    return ret;

                url = "/bpp/api/punktacja-zrodla/" + ret.zrodlo + '/' + ret.rok + '/';
                var z = $.ajax({
                    type: "POST",
                    url: url,
                });

                z.done(
                        function (data) {

                            names = ['impact_factor', 'index_copernicus',
                                'kc_impact_factor', 'kc_index_copernicus',
                                'kc_punkty_kbn', 'punktacja_wewnetrzna',
                                'punkty_kbn', 'punktacja_snip'];

                            names.forEach(function (n) {
                                $("#id_" + n).val(data[n]);
                            });

                            $("#id_wypelnij_pola_punktacji_button").text("Wypełniona!");
                        });

                z.fail(
                        function (err) {
                            if (err.status == 404) {
                                if (err.responseText == "Rok") {
                                    alert("Brak danych o punktacji tego " +
                                            "źródła dla wpisanego roku.");
                                    return false;
                                }
                                if (err.response == "Zrodlo") {
                                    alert("Brak danych na temat wybranego źródła");
                                    return false;
                                }
                            }

                            alert("Wystąpił błąd, status: " + err.status + ".");
                        });

                return false;
            });
        });
        }(django.jQuery));
    </script>
{% endblock %}
