Commit d0231140 authored by Vincent Le gallic's avatar Vincent Le gallic

On display les erreurs de transactions échouées dans un joli div de messages, et non plus en alert.

parent b94d7ffc
......@@ -62,7 +62,7 @@ function put_note(itself, affiche, idbde, nom, prenom, secondstack) {
if (!isEmpty(stack_button)) {
//Il y a des consos dans le stack et on vient de cliquer sur une note
// il faut donc lancer les transactions
do_conso_many_boutons(idbde);
do_conso_many_boutons(idbde, affiche);
return
}
}
......@@ -185,7 +185,7 @@ function put_conso(label, idbut) {
if (!isEmpty(stack)) {
//Il y a des notes dans le stack et on vient de cliquer sur une conso
// il faut donc lancer les transactions
do_conso_many_notes(idbut);
do_conso_many_notes(idbut, label);
return
}
}
......@@ -263,7 +263,7 @@ function cleanForms() {
/*** Faisage des consos ***/
/* fonction qui fait une conso avec plusieurs boutons et une seule note */
function do_conso_many_boutons(idbde) {
function do_conso_many_boutons(idbde, matching_term) {
//On se prépare à poster une requête
var xhr = getXMLHttpRequest();
......@@ -273,7 +273,7 @@ function do_conso_many_boutons(idbde) {
var answer = JSON.parse(xhr.responseText);
//On enlève du stack_button les consos qui ont marché et si il y a eu des échecs on alerte
var errorhappened = false;
var errmsg = "Transaction échouée :\n";
var errlist = [];
for (var i_ans in answer) {
ans = answer[i_ans];
if (isSuccessCode(ans[0])) {
......@@ -282,11 +282,11 @@ function do_conso_many_boutons(idbde) {
else {
errorhappened = true;
var bouton = stack_button[ans[1][0]];
errmsg += bouton["label"] + "\t" + ans[2] + "\n";
errlist.push(matching_term + ", " + bouton["nb"] + "x" + bouton["label"] + " : " + ans[2]);
}
}
if (errorhappened) {
alert(errmsg);
display_error("Transaction(s) échouée(s) :", errlist);
}
//et on rafraîchit le stack_button
refreshStackButton();
......@@ -309,7 +309,7 @@ function do_conso_many_boutons(idbde) {
}
/* fonction qui fait une conso avec plusieurs notes et un seul bouton */
function do_conso_many_notes(idbut) {
function do_conso_many_notes(idbut, labelbut) {
//On se prépare à poster une requête
var xhr = getXMLHttpRequest();
......@@ -319,7 +319,7 @@ function do_conso_many_notes(idbut) {
var answer = JSON.parse(xhr.responseText);
//On enlève du stack les consos qui ont marché et si il y a eu des échecs on alerte
var errorhappened = false;
var errmsg = "Transaction échouée :\n";
var errlist = [];
for (var i_ans in answer) {
ans = answer[i_ans];
if (isSuccessCode(ans[0])) {
......@@ -335,7 +335,8 @@ function do_conso_many_notes(idbut) {
else {
errorhappened = true;
//Il faut trouver les noms de note correspondants
var nom = ""
var nom = "";
var nb = 0;
for (var i_note in display_stack) {
note = display_stack[i_note];
if (note["idbde"] == ans[1][1]) {
......@@ -343,13 +344,14 @@ function do_conso_many_notes(idbut) {
nom += " aka ";
}
nom += note["affiche"];
nb += 1;
}
}
errmsg += nom + "\t" + ans[2] + "\n";
errlist.push(nom + ", " + nb + "x" + labelbut + " : " + ans[2]);
}
}
if (errorhappened) {
alert(errmsg);
display_error("Transaction(s) échouée(s) :", errlist);
}
//et on rafraîchit le stack
refreshStack();
......@@ -381,7 +383,7 @@ function do_conso_multiples() {
var answer = JSON.parse(xhr.responseText);
//On enlève du stack les consos qui ont marché et si il y a eu des échecs on alerte
var errorhappened = false;
var errmsg = "Transaction échouée :\n";
var errlist = [];
for (var i_ans in answer) {
ans = answer[i_ans];
if (!isSuccessCode(ans[0])) {
......@@ -399,14 +401,14 @@ function do_conso_multiples() {
}
// et le bouton concerné
var bouton = stack_button[ans[1][0]];
errmsg += nom + "\t" + bouton["label"] + "\t" + ans[2] + "\n";
errlist.push(nom + ", " + bouton["nb"] + "x" + bouton["label"] + " : " + ans[2]);
}
}
// On vide tous les stacks, parce que garder des transaction échouées n'aurait pas de sens ici
//stack & stack_button
emptyStack(false, true);
if (errorhappened) {
alert(errmsg);
display_error("Transaction(s) échouée(s) :", errlist);
}
//et on rafraîchit les stacks
refreshStack();
......@@ -534,3 +536,33 @@ function crediter_ou_retirer(credit) {
);
}
/* Fonction pour afficher une erreur de transaction dans le div prévu à cet effet */
function display_error(text, error_list) {
// text est affichée, puis les élements de l'error_list en <ul>
var errdiv = document.getElementById("messages_div");
//on crée le div qu'on va rajouter
var alertdiv = document.createElement("div");
alertdiv.setAttribute("class", "alert alert-error"); //les échecs de transaction sont toujours des erreurs
//on crée aussi la croix pour le fermer
var croix = document.createElement("a");
croix.setAttribute("class", "close");
croix.setAttribute("data-dismiss", "alert");
croix.setAttribute("href", "#");
croix.appendChild(document.createTextNode("x"));
alertdiv.appendChild(croix);
if (text != "") {
alertdiv.appendChild(document.createTextNode(text));
}
if (error_list.length > 0) {
var liste = document.createElement("ul");
var elem;
for (var i = 0; i < error_list.length; i++) {
elem = document.createElement("li");
elem.appendChild(document.createTextNode(error_list[i]));
liste.appendChild(elem)
};
alertdiv.appendChild(liste);
}
errdiv.appendChild(alertdiv);
}
\ No newline at end of file
......@@ -55,12 +55,14 @@
<div class="container">
<div class="row">
<div class="{% block mainstyle %}offset3 span6{% endblock %}">
{% for mess in messages %}
<div class="alert alert-{{mess.tags}}">
<a class="close" data-dismiss="alert" href="#">×</a>
{{ mess|linebreaksbr }}
<div id="messages_div">
{% for mess in messages %}
<div class="alert alert-{{mess.tags}}">
<a class="close" data-dismiss="alert" href="#">×</a>
{{ mess|linebreaksbr }}
</div>
{% endfor %}
</div>
{% endfor %}
{% block content %}
<p>Content...</p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment