mirror of https://gitlab.crans.org/bde/nk20
105 lines
3.6 KiB
HTML
105 lines
3.6 KiB
HTML
{% extends "base.html" %}
|
|
{% comment %}
|
|
SPDX-License-Identifier: GPL-3.0-or-later
|
|
{% endcomment %}
|
|
{% load pretty_money i18n %}
|
|
{% load render_table from django_tables2 %}
|
|
|
|
{% block content %}
|
|
<h1 class="text-white">{{ title }}</h1>
|
|
<div class="row justify-content-center mb-4">
|
|
<div class="col-md-10 text-center">
|
|
{# Search field , see js #}
|
|
<input class="form-control mx-auto w-25" type="text" id="search_field" placeholder="{% trans "Name of the button..." %}" value="{{ request.GET.search }}">
|
|
<hr>
|
|
<a class="btn btn-primary text-center my-1" href="{% url 'note:template_create' %}" data-turbolinks="false">{% trans "New button" %}</a>
|
|
</div>
|
|
</div>
|
|
<div class="row justify-content-center">
|
|
<div class="col-md-12">
|
|
<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 type="text/javascript">
|
|
function refreshMatchedWords() {
|
|
$("tr").each(function() {
|
|
let pattern = $('#search_field').val();
|
|
if (pattern) {
|
|
$(this).find("td:eq(0), td:eq(1), td:eq(3), td:eq(6)").each(function () {
|
|
$(this).html($(this).text().replace(new RegExp(pattern, 'i'), "<mark>$&</mark>"));
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function reloadTable() {
|
|
let pattern = $('#search_field').val();
|
|
$("#buttons_table").load(location.pathname + "?search=" + pattern.replace(" ", "%20") + " #buttons_table", refreshMatchedWords);
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
let searchbar_obj = $("#search_field");
|
|
let timer_on = false;
|
|
let timer;
|
|
|
|
refreshMatchedWords();
|
|
|
|
searchbar_obj.keyup(function() {
|
|
if (timer_on)
|
|
clearTimeout(timer);
|
|
timer_on = true;
|
|
setTimeout(reloadTable, 0);
|
|
});
|
|
});
|
|
|
|
// 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(location.pathname + "?search=" + $("#search_field").val().replace(" ", "%20") + " #buttons_table");
|
|
})
|
|
.fail(function() {
|
|
addMsg('{% trans "Unable to delete button "%} #' + button_id, 'danger')
|
|
});
|
|
}
|
|
|
|
// on click of button "hide/show", call the API
|
|
function hideshow(id, displayed) {
|
|
$.ajax({
|
|
url: '/api/note/transaction/template/' + id + '/',
|
|
type: 'PATCH',
|
|
dataType: 'json',
|
|
headers: {
|
|
'X-CSRFTOKEN': CSRF_TOKEN
|
|
},
|
|
data: {
|
|
display: !displayed
|
|
},
|
|
success: function() {
|
|
if(displayed)
|
|
addMsg("{% trans "Button hidden"%}", 'success', 1000)
|
|
else addMsg("{% trans "Button displayed"%}", 'success', 1000)
|
|
reloadTable()
|
|
},
|
|
error: function (err) {
|
|
addMsg("{% trans "An error occured"%}", 'danger')
|
|
}})
|
|
}
|
|
</script>
|
|
{% endblock %}
|