mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-31 15:50:03 +01: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 %}
 |