{% extends "base.html" %}
{% load pretty_money %}
{% load i18n %}
{% load render_table from django_tables2 %}
{% block content %}
<div class="row justify-content-center mb-4">
    <div class="col-md-10 text-center">
        <h4>
            {% trans "Search button" %}
        </h4>
        <input class="form-control mx-auto w-25" type="text" id="search_field" placeholder="{% trans "Name of the button..." %}">
        <div class="form-group">
            <div id="div_active_only" class="form-check">
                <label for="active_only" class="form-check-label">
                    <input type="checkbox" name="active_only" class="checkboxinput form-check-input" checked="" id="active_only">
                    {% trans "Display visible buttons only" %}
                </label>
            </div>
        </div>
        <hr>
        <a class="btn btn-primary text-center my-1" href="{% url 'note:template_create' %}">{% trans "New button" %}</a>
    </div>
</div>
<div class="row justify-content-center">   
    <div class="col-md-10">
        <div class="card card-border shadow">
            <div class="card-header text-center">
                <h5> {% trans "buttons listing "%}</h5>
            </div>
            <div class="card-body px-0 py-0" id="buttons_table">
                {% render_table table %}
            </div>
        </div>
    </div>
</div>
{% endblock %}

{% block extrajavascript %}
<script>
    /* fonction appelée à la fin du timer */
    function getInfo() {
        var asked = $("#search_field").val();
        /* on ne fait la requête que si on a au moins un caractère pour chercher */
        if (asked.length >= 1) {
            $.getJSON("/api/note/transaction/template/?format=json&search=" + asked + ($("#active_only").is(":checked") ? "&display=true" : ""), function(buttons) {
                console.log(buttons);
                let selected_id = buttons.results.map((a => "#row-" + a.id));
                console.log(".table-row " + selected_id.join());
                $(".table-row " + selected_id.join()).removeClass('d-none');
                $(".table-row").not(selected_id.join()).addClass('d-none');
            });
        }
        else {
            if ($("#active_only").is(":checked")) {
                $('.table-success').removeClass('d-none');
                $('.table-danger').addClass('d-none');
            }
            else {
                // show everything
                $('table tr').removeClass('d-none');
            }
        }
    }

    var timer;
    var timer_on;
    /* Fontion appelée quand le texte change (délenche le timer) */
    function search_field_moved() {
        if (timer_on) { // Si le timer a déjà été lancé, on réinitialise le compteur.
            clearTimeout(timer);
            timer = setTimeout(getInfo, 300);
        }
        else { // Sinon, on le lance et on enregistre le fait qu'il tourne.
            timer = setTimeout(getInfo, 300);
            timer_on = true;
        }
    }
    // on click of button "delete" , call the API
     function delete_button(button_id) {
         $.ajax({
             url:"/api/note/transaction/template/"+button_id+"/",
             method:"DELETE",
             headers: {"X-CSRFTOKEN": CSRF_TOKEN}
         })
          .done(function(){
              addMsg('{% trans "button successfully deleted "%}','success');
              $("#buttons_table").load("{% url 'note:template_list' %} #buttons_table");
          })
          .fail(function(){
              addMsg(' {% trans "Unable to delete button "%} #' + button_id,'danger' )
          });
     }

     $(document).ready(function() {
         $("#search_field").keyup(search_field_moved);
         $("#active_only").change(search_field_moved);

         search_field_moved();
     });
</script>
{% endblock %}