mirror of https://gitlab.crans.org/bde/nk20
JS from transfer page is now externalized
This commit is contained in:
parent
e8ad906f9c
commit
6c002aacaa
|
@ -0,0 +1,157 @@
|
||||||
|
sources = [];
|
||||||
|
sources_notes_display = [];
|
||||||
|
dests = [];
|
||||||
|
dests_notes_display = [];
|
||||||
|
|
||||||
|
function refreshHistory() {
|
||||||
|
$("#history").load("/note/transfer/ #history");
|
||||||
|
}
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
sources_notes_display.length = 0;
|
||||||
|
sources.length = 0;
|
||||||
|
dests_notes_display.length = 0;
|
||||||
|
dests.length = 0;
|
||||||
|
$("#source_note_list").html("");
|
||||||
|
$("#dest_note_list").html("");
|
||||||
|
$("#source_alias_matched").html("");
|
||||||
|
$("#dest_alias_matched").html("");
|
||||||
|
$("#amount").val("");
|
||||||
|
$("#reason").val("");
|
||||||
|
$("#last_name").val("");
|
||||||
|
$("#first_name").val("");
|
||||||
|
$("#bank").val("");
|
||||||
|
refreshBalance();
|
||||||
|
refreshHistory();
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
autoCompleteNote("source_note", "source_alias_matched", "source_note_list", sources, sources_notes_display,
|
||||||
|
"source_alias", "source_note", "user_note", "profile_pic");
|
||||||
|
autoCompleteNote("dest_note", "dest_alias_matched", "dest_note_list", dests, dests_notes_display,
|
||||||
|
"dest_alias", "dest_note", "user_note", "profile_pic", function() {
|
||||||
|
let last = dests_notes_display[dests_notes_display.length - 1];
|
||||||
|
dests_notes_display.length = 0;
|
||||||
|
dests_notes_display.push(last);
|
||||||
|
|
||||||
|
last.quantity = 1;
|
||||||
|
|
||||||
|
$.getJSON("/api/user/" + last.note.user + "/", function(user) {
|
||||||
|
$("#last_name").val(user.last_name);
|
||||||
|
$("#first_name").val(user.first_name);
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Ensure we begin in gift mode. Removing these lines may cause problems when reloading.
|
||||||
|
$("#type_gift").prop('checked', 'true');
|
||||||
|
$("#type_transfer").removeAttr('checked');
|
||||||
|
$("#type_credit").removeAttr('checked');
|
||||||
|
$("#type_debit").removeAttr('checked');
|
||||||
|
$("label[for='type_transfer']").attr('class', 'btn btn-sm btn-outline-primary');
|
||||||
|
$("label[for='type_credit']").attr('class', 'btn btn-sm btn-outline-primary');
|
||||||
|
$("label[for='type_debit']").attr('class', 'btn btn-sm btn-outline-primary');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#transfer").click(function() {
|
||||||
|
if ($("#type_gift").is(':checked')) {
|
||||||
|
dests_notes_display.forEach(function (dest) {
|
||||||
|
$.post("/api/note/transaction/transaction/",
|
||||||
|
{
|
||||||
|
"csrfmiddlewaretoken": CSRF_TOKEN,
|
||||||
|
"quantity": dest.quantity,
|
||||||
|
"amount": 100 * $("#amount").val(),
|
||||||
|
"reason": $("#reason").val(),
|
||||||
|
"valid": true,
|
||||||
|
"polymorphic_ctype": TRANSFER_POLYMORPHIC_CTYPE,
|
||||||
|
"resourcetype": "Transaction",
|
||||||
|
"source": user_id,
|
||||||
|
"destination": dest.id
|
||||||
|
}, function () {
|
||||||
|
addMsg("Le transfert de "
|
||||||
|
+ pretty_money(dest.quantity * 100 * $("#amount").val()) + " de votre note "
|
||||||
|
+ " vers la note " + dest.name + " a été fait avec succès !", "success");
|
||||||
|
|
||||||
|
reset();
|
||||||
|
}).fail(function (err) {
|
||||||
|
addMsg("Le transfert de "
|
||||||
|
+ pretty_money(dest.quantity * 100 * $("#amount").val()) + " de votre note "
|
||||||
|
+ " vers la note " + dest.name + " a échoué : " + err.responseText, "danger");
|
||||||
|
|
||||||
|
reset();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else if ($("#type_transfer").is(':checked')) {
|
||||||
|
sources_notes_display.forEach(function (source) {
|
||||||
|
dests_notes_display.forEach(function (dest) {
|
||||||
|
$.post("/api/note/transaction/transaction/",
|
||||||
|
{
|
||||||
|
"csrfmiddlewaretoken": CSRF_TOKEN,
|
||||||
|
"quantity": source.quantity * dest.quantity,
|
||||||
|
"amount": 100 * $("#amount").val(),
|
||||||
|
"reason": $("#reason").val(),
|
||||||
|
"valid": true,
|
||||||
|
"polymorphic_ctype": TRANSFER_POLYMORPHIC_CTYPE,
|
||||||
|
"resourcetype": "Transaction",
|
||||||
|
"source": source.id,
|
||||||
|
"destination": dest.id
|
||||||
|
}, function () {
|
||||||
|
addMsg("Le transfert de "
|
||||||
|
+ pretty_money(source.quantity * dest.quantity * 100 * $("#amount").val()) + " de la note " + source.name
|
||||||
|
+ " vers la note " + dest.name + " a été fait avec succès !", "success");
|
||||||
|
|
||||||
|
reset();
|
||||||
|
}).fail(function (err) {
|
||||||
|
addMsg("Le transfert de "
|
||||||
|
+ pretty_money(source.quantity * dest.quantity * 100 * $("#amount").val()) + " de la note " + source.name
|
||||||
|
+ " vers la note " + dest.name + " a échoué : " + err.responseText, "danger");
|
||||||
|
|
||||||
|
reset();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else if ($("#type_credit").is(':checked') || $("#type_debit").is(':checked')) {
|
||||||
|
let special_note = $("#credit_type").val();
|
||||||
|
let user_note = dests_notes_display[0].id;
|
||||||
|
let given_reason = $("#reason").val();
|
||||||
|
let source, dest, reason;
|
||||||
|
if ($("#type_credit").is(':checked')) {
|
||||||
|
source = special_note;
|
||||||
|
dest = user_note;
|
||||||
|
reason = "Crédit " + $("#credit_type option:selected").text().toLowerCase();
|
||||||
|
if (given_reason.length > 0)
|
||||||
|
reason += " (" + given_reason + ")";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
source = user_note;
|
||||||
|
dest = special_note;
|
||||||
|
reason = "Retrait " + $("#credit_type option:selected").text().toLowerCase();
|
||||||
|
if (given_reason.length > 0)
|
||||||
|
reason += " (" + given_reason + ")";
|
||||||
|
}
|
||||||
|
$.post("/api/note/transaction/transaction/",
|
||||||
|
{
|
||||||
|
"csrfmiddlewaretoken": CSRF_TOKEN,
|
||||||
|
"quantity": 1,
|
||||||
|
"amount": 100 * $("#amount").val(),
|
||||||
|
"reason": reason,
|
||||||
|
"valid": true,
|
||||||
|
"polymorphic_ctype": SPECIAL_TRANSFER_POLYMORPHIC_CTYPE,
|
||||||
|
"resourcetype": "SpecialTransaction",
|
||||||
|
"source": source,
|
||||||
|
"destination": dest,
|
||||||
|
"last_name": $("#last_name").val(),
|
||||||
|
"first_name": $("#first_name").val(),
|
||||||
|
"bank": $("#bank").val()
|
||||||
|
}, function () {
|
||||||
|
addMsg("Le crédit/retrait a bien été effectué !", "success");
|
||||||
|
reset();
|
||||||
|
}).fail(function (err) {
|
||||||
|
addMsg("Le crédit/transfert a échoué : " + err.responseText, "danger");
|
||||||
|
reset();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
|
@ -132,7 +132,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="reason">{% trans "Reason" %} :</label>
|
<label for="reason">{% trans "Reason" %} :</label>
|
||||||
<input class="form-control mx-auto d-block" type="text" id="reason" />
|
<input class="form-control mx-auto d-block" type="text" id="reason" required />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -154,62 +154,9 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
{% block extrajavascript %}
|
{% block extrajavascript %}
|
||||||
<script>
|
<script>
|
||||||
sources = [];
|
TRANSFER_POLYMORPHIC_CTYPE = {{ polymorphic_ctype }};
|
||||||
sources_notes_display = [];
|
SPECIAL_TRANSFER_POLYMORPHIC_CTYPE = {{ special_polymorphic_ctype }};
|
||||||
dests = [];
|
user_id = {{ user.note.pk }};
|
||||||
dests_notes_display = [];
|
|
||||||
|
|
||||||
function refreshHistory() {
|
|
||||||
$("#history").load("/note/transfer/ #history");
|
|
||||||
}
|
|
||||||
|
|
||||||
function reset() {
|
|
||||||
sources_notes_display.length = 0;
|
|
||||||
sources.length = 0;
|
|
||||||
dests_notes_display.length = 0;
|
|
||||||
dests.length = 0;
|
|
||||||
$("#source_note_list").html("");
|
|
||||||
$("#dest_note_list").html("");
|
|
||||||
$("#source_alias_matched").html("");
|
|
||||||
$("#dest_alias_matched").html("");
|
|
||||||
$("#amount").val("");
|
|
||||||
$("#reason").val("");
|
|
||||||
$("#last_name").val("");
|
|
||||||
$("#first_name").val("");
|
|
||||||
$("#bank").val("");
|
|
||||||
refreshBalance();
|
|
||||||
refreshHistory();
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
autoCompleteNote("source_note", "source_alias_matched", "source_note_list", sources, sources_notes_display,
|
|
||||||
"source_alias", "source_note", "user_note", "profile_pic");
|
|
||||||
autoCompleteNote("dest_note", "dest_alias_matched", "dest_note_list", dests, dests_notes_display,
|
|
||||||
"dest_alias", "dest_note", "user_note", "profile_pic", function() {
|
|
||||||
let last = dests_notes_display[dests_notes_display.length - 1];
|
|
||||||
dests_notes_display.length = 0;
|
|
||||||
dests_notes_display.push(last);
|
|
||||||
|
|
||||||
last.quantity = 1;
|
|
||||||
|
|
||||||
$.getJSON("/api/user/" + last.note.user + "/", function(user) {
|
|
||||||
$("#last_name").val(user.last_name);
|
|
||||||
$("#first_name").val(user.first_name);
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Ensure we begin in gift mode. Removing these lines may cause problems when reloading.
|
|
||||||
$("#type_gift").prop('checked', 'true');
|
|
||||||
$("#type_transfer").removeAttr('checked');
|
|
||||||
$("#type_credit").removeAttr('checked');
|
|
||||||
$("#type_debit").removeAttr('checked');
|
|
||||||
$("label[for='type_transfer']").attr('class', 'btn btn-sm btn-outline-primary');
|
|
||||||
$("label[for='type_credit']").attr('class', 'btn btn-sm btn-outline-primary');
|
|
||||||
$("label[for='type_debit']").attr('class', 'btn btn-sm btn-outline-primary');
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#type_gift").click(function() {
|
$("#type_gift").click(function() {
|
||||||
$("#emitters_div").hide();
|
$("#emitters_div").hide();
|
||||||
|
@ -238,107 +185,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
$("#dests_div").attr('class', 'col-md-4');
|
$("#dests_div").attr('class', 'col-md-4');
|
||||||
$("#dest_title").text("{% trans "Debit note" %}");
|
$("#dest_title").text("{% trans "Debit note" %}");
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#transfer").click(function() {
|
|
||||||
if ($("#type_gift").is(':checked')) {
|
|
||||||
dests_notes_display.forEach(function (dest) {
|
|
||||||
$.post("/api/note/transaction/transaction/",
|
|
||||||
{
|
|
||||||
"csrfmiddlewaretoken": CSRF_TOKEN,
|
|
||||||
"quantity": dest.quantity,
|
|
||||||
"amount": 100 * $("#amount").val(),
|
|
||||||
"reason": $("#reason").val(),
|
|
||||||
"valid": true,
|
|
||||||
"polymorphic_ctype": {{ polymorphic_ctype }},
|
|
||||||
"resourcetype": "Transaction",
|
|
||||||
"source": {{ user.note.id }},
|
|
||||||
"destination": dest.id
|
|
||||||
}, function () {
|
|
||||||
addMsg("Le transfert de "
|
|
||||||
+ pretty_money(dest.quantity * 100 * $("#amount").val()) + " de votre note "
|
|
||||||
+ " vers la note " + dest.name + " a été fait avec succès !", "success");
|
|
||||||
|
|
||||||
reset();
|
|
||||||
}).fail(function (err) {
|
|
||||||
addMsg("Le transfert de "
|
|
||||||
+ pretty_money(dest.quantity * 100 * $("#amount").val()) + " de votre note "
|
|
||||||
+ " vers la note " + dest.name + " a échoué : " + err.responseText, "danger");
|
|
||||||
|
|
||||||
reset();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if ($("#type_transfer").is(':checked')) {
|
|
||||||
sources_notes_display.forEach(function (source) {
|
|
||||||
dests_notes_display.forEach(function (dest) {
|
|
||||||
$.post("/api/note/transaction/transaction/",
|
|
||||||
{
|
|
||||||
"csrfmiddlewaretoken": CSRF_TOKEN,
|
|
||||||
"quantity": source.quantity * dest.quantity,
|
|
||||||
"amount": 100 * $("#amount").val(),
|
|
||||||
"reason": $("#reason").val(),
|
|
||||||
"valid": true,
|
|
||||||
"polymorphic_ctype": {{ polymorphic_ctype }},
|
|
||||||
"resourcetype": "Transaction",
|
|
||||||
"source": source.id,
|
|
||||||
"destination": dest.id
|
|
||||||
}, function () {
|
|
||||||
addMsg("Le transfert de "
|
|
||||||
+ pretty_money(source.quantity * dest.quantity * 100 * $("#amount").val()) + " de la note " + source.name
|
|
||||||
+ " vers la note " + dest.name + " a été fait avec succès !", "success");
|
|
||||||
|
|
||||||
reset();
|
|
||||||
}).fail(function (err) {
|
|
||||||
addMsg("Le transfert de "
|
|
||||||
+ pretty_money(source.quantity * dest.quantity * 100 * $("#amount").val()) + " de la note " + source.name
|
|
||||||
+ " vers la note " + dest.name + " a échoué : " + err.responseText, "danger");
|
|
||||||
|
|
||||||
reset();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else if ($("#type_credit").is(':checked') || $("#type_debit").is(':checked')) {
|
|
||||||
let special_note = $("#credit_type").val();
|
|
||||||
let user_note = dests_notes_display[0].id;
|
|
||||||
let given_reason = $("#reason").val();
|
|
||||||
let source, dest, reason;
|
|
||||||
if ($("#type_credit").is(':checked')) {
|
|
||||||
source = special_note;
|
|
||||||
dest = user_note;
|
|
||||||
reason = "Crédit " + $("#credit_type option:selected").text().toLowerCase();
|
|
||||||
if (given_reason.length > 0)
|
|
||||||
reason += " (" + given_reason + ")";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
source = user_note;
|
|
||||||
dest = special_note;
|
|
||||||
type = "debit";
|
|
||||||
reason = "Retrait " + $("#credit_type option:selected").text().toLowerCase();
|
|
||||||
if (given_reason.length > 0)
|
|
||||||
reason += " (" + given_reason + ")";
|
|
||||||
}
|
|
||||||
$.post("/api/note/transaction/transaction/",
|
|
||||||
{
|
|
||||||
"csrfmiddlewaretoken": CSRF_TOKEN,
|
|
||||||
"quantity": 1,
|
|
||||||
"amount": 100 * $("#amount").val(),
|
|
||||||
"reason": reason,
|
|
||||||
"valid": true,
|
|
||||||
"polymorphic_ctype": {{ special_polymorphic_ctype }},
|
|
||||||
"resourcetype": "SpecialTransaction",
|
|
||||||
"source": source,
|
|
||||||
"destination": dest,
|
|
||||||
"last_name": $("#last_name").val(),
|
|
||||||
"first_name": $("#first_name").val(),
|
|
||||||
"bank": $("#bank").val()
|
|
||||||
}, function () {
|
|
||||||
addMsg("Le crédit/retrait a bien été effectué !", "success");
|
|
||||||
reset();
|
|
||||||
}).fail(function (err) {
|
|
||||||
addMsg("Le crédit/transfert a échoué : " + err.responseText, "danger");
|
|
||||||
reset();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
<script src="/static/js/transfer.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in New Issue