mirror of
https://gitlab.crans.org/bde/nk20
synced 2024-12-23 16:02:25 +00:00
102 lines
3.7 KiB
HTML
102 lines
3.7 KiB
HTML
{% 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 %}
|