Commit fc2b23fa authored by Hamza Dely's avatar Hamza Dely

La recherche de boutons pour noter les consos est désormais possible

parent 48643845
......@@ -121,13 +121,13 @@ def get_boutons(request):
return HttpResponse("Get the fuck out of here", status=444)
else:
try:
categorie = request.POST["categorie"]
asked = request.POST["asked"]
except:
return HttpResponse("")
return HttpResponse("HTTP/1.1 Bad Request", status=400)
success, sock_ou_response = nk.socket_still_alive(request)
if success:
sock = sock_ou_response
data = ["", categorie]
data = [asked, ""]
sock.write(json.dumps(["get_boutons", data]))
out = nk.full_read(sock)["msg"]
return HttpResponse(json.dumps(out))
......
......@@ -153,7 +153,7 @@ setCookie(sName, JSON.stringify(sValue));
/*** Envoi des requête XMLHttpRequest ***/
/* Fonction appelée à la fin du timer (déclenché sur un onKeyUp sur le champ de recherche) */
function getInfo(secondstack) {
function getInfo(secondstack, type) {
// par défaut secondstack est undefined, donc on utilisera le premier
var ident = "id_search_field"
if (secondstack) {
......@@ -173,7 +173,7 @@ function getInfo(secondstack) {
var display = !page_dons;
return readData(oData, targetid, display, secondstack);
}
request(asked, readDataWrapper);
request(type, asked, readDataWrapper);
}
}
......
......@@ -30,8 +30,8 @@ function gotoURI(go) {
return NOTE_ROOT_URL + "?next=" + encodeURI(NOTE_ROOT_URL + go + "/");
}
/* Fonction qui effectue la recherche puis appelle readData en callback */
function request(asked, callback) {
/* Fonction qui effectue la recherche d'un type de données puis appelle readData en callback */
function request(type, asked, callback) {
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function() {
......@@ -78,21 +78,33 @@ function request(asked, callback) {
}
};
/* On envoie la requête en POST */
xhr.open("POST", NOTE_ROOT_URL + "quick_search/", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("asked=" + encodeURIComponent(asked));
if (type == "bouton"){
xhr.open("POST", NOTE_ROOT_URL + "get_boutons/", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("asked=" + encodeURIComponent(asked));
} else {
xhr.open("POST", NOTE_ROOT_URL + "quick_search/", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("asked=" + encodeURIComponent(asked));
}
}
var timer;
var timer_on;
/* Fontion appelée quand le texte change (délenche le timer) */
function search_field_moved(secondfield) {
var type;
if ((["#transfert", "#retrait", "#credit"].indexOf(currentTab) == -1) && secondfield) {
type = "bouton"
} else {
type = "note"
};
if (timer_on) { // Si le timer a déjà été lancé, on réinitialise le compteur.
clearTimeout(timer);
timer = setTimeout("getInfo(" + secondfield + ")", 100);
timer = setTimeout("getInfo(" + secondfield + ",'" + type + "')", 100);
}
else { // Sinon, on le lance et on enregistre le fait qu'il tourne.
timer = setTimeout("getInfo(" + secondfield + ")", 100);
timer = setTimeout("getInfo(" + secondfield + ",'" + type + "')", 100);
timer_on = true;
}
}
......@@ -104,61 +116,90 @@ function readData(oData, targetid, display, tosecondstack) {
var liste = document.createElement("ul");
liste.setAttribute("class", "liste_notes");
var rep, elmt, texte, elemt_span, class1, class2, class3, aka, tempfunction;
var buttonList = (["#transfert", "#retrait", "#credit"].indexOf(currentTab) == -1) && tosecondstack;
for (var i = 0, c = gotlist.length; i < c; i++) {
rep = gotlist[i];
// on crée un nouvel élément
elemt = document.createElement("li");
texte = document.createTextNode(rep["terme"]);
if (!buttonList) {
texte = document.createTextNode(rep["terme"]);
} else {
texte = document.createTextNode(rep["label"]);
}
// on fait de la mise en forme à coup de spans
elemt_span = document.createElement("span");
// on le met en forme en fonction de ce que c'est comme terme de recherche
aka = rep["pseudo"];
if (rep["was"] == "pseudo") {
class1 = "liste_pseudo";
aka = null; // Si le compte a été trouvé par son pseudo, on n'a pas besoin de garder le aka qui est redondant
}
if (rep["was"] == "historique") {
class1 = "liste_historique";
}
if (rep["was"] == "alias") {
class1 = "liste_alias";
}
if (rep["was"] == "idbde") {
class1 = "liste_idbde";
}
if (rep["vieux"]) {
class3 = "liste_potvieux";
} else {
class3 = "";
}
// on le met aussi en forme en fonction de si il est negatif ou pas
class2 = "liste_negatif" + rep["negatif"]
// on donne les deux classes à l'élément span
elemt_span.setAttribute("class", "liste " + class1 + " " + class2 + " " + class3);
// Sur un click, il faud*ra* exécuter un put_note avec le contenu actuel de rep
tempfunction = function () {
// permet de faire une clôture
var replocal = rep;
var akalocal = aka;
var elemt_local = elemt_span;
elemt_span.addEventListener("click", function () {
// là on peut appeler put_note, les paramètres seront les bons au moment de l'exécution
put_note(elemt_local, replocal["terme"], replocal["idbde"], replocal["nom"], replocal["prenom"], tosecondstack,replocal["solde"], replocal["time_negatif"], akalocal);
});
};
tempfunction();
if (display) { // il faut préparer le listener pour afficher la photo du compte
// Même trick avec la clôture
if (!buttonList) {
aka = rep["pseudo"];
if (rep["was"] == "pseudo") {
class1 = "liste_pseudo";
aka = null; // Si le compte a été trouvé par son pseudo, on n'a pas besoin de garder le aka qui est redondant
}
if (rep["was"] == "historique") {
class1 = "liste_historique";
}
if (rep["was"] == "alias") {
class1 = "liste_alias";
}
if (rep["was"] == "idbde") {
class1 = "liste_idbde";
}
if (rep["vieux"]) {
class3 = "liste_potvieux";
} else {
class3 = "";
}
// on le met aussi en forme en fonction de si il est negatif ou pas
class2 = "liste_negatif" + rep["negatif"]
// on donne les deux classes à l'élément span
elemt_span.setAttribute("class", "liste " + class1 + " " + class2 + " " + class3);
// Sur un click, il faud*ra* exécuter un put_note avec le contenu actuel de rep
tempfunction = function () {
// permet de faire une clôture
var replocal = rep;
var akalocal = aka;
var elemt_local = elemt_span;
elemt_span.addEventListener("mouseover", function() {
// On appelle displayAccount dans la clôture
displayAccount(elemt_local, replocal["terme"], replocal["idbde"],replocal["solde"], replocal["time_negatif"], akalocal);
elemt_span.addEventListener("click", function () {
// là on peut appeler put_note, les paramètres seront les bons au moment de l'exécution
put_note(elemt_local, replocal["terme"], replocal["idbde"], replocal["nom"], replocal["prenom"], tosecondstack,replocal["solde"], replocal["time_negatif"], akalocal);
});
};
} else {
tempfunction = function () {
// permet de faire une clôture
var replocal = rep;
var elemt_local = elemt_span;
elemt_span.addEventListener("click", function () {
// là on peut appeler put_note, les paramètres seront les bons au moment de l'exécution
put_conso(replocal["label"], replocal["id"]);
});
}
}
tempfunction();
if (display) { // il faut préparer le listener pour afficher la photo du compte
// Même trick avec la clôture
if (!buttonList) {
tempfunction = function () {
var replocal = rep;
var akalocal = aka;
var elemt_local = elemt_span;
elemt_span.addEventListener("mouseover", function() {
// On appelle displayAccount dans la clôture
displayAccount(elemt_local, replocal["terme"], replocal["idbde"],replocal["solde"], replocal["time_negatif"], akalocal);
});
};
} else {
tempfunction = function () {
var replocal = rep;
var elemt_local = elemt_span;
elemt_span.addEventListener("mouseover", function() {
// On appelle displayAccount dans la clôture
displayButton(replocal["label"], replocal["montant"]/100.0 + " €", replocal["description"], replocal["consigne"]);
});
};
}
tempfunction();
}
// on ajoute l'élément à la liste
......
......@@ -162,11 +162,37 @@ function reorganizeResponsively() {
$('#tab-frame').prepend(tab_content);
// Sur mobile, on force le mode consos double
// et on force le deuxième champ de recherche à apparaître
switch_conso_mode(true);
if (currentTab != '#transfert') {
$('#search_2').removeClass('hidden');
}
// Si on était sur pas sur transfert/retrait/crédit, on passe
// sur le mode Consos
if (['#transfert', '#credit', '#retrait'].indexOf(currentTab) == -1) {
$('li.active').removeClass('active');
$('#consos_responsive').addClass('active');
setActiveAppName();
}
}
else {
$('#tab-content').remove();
$('#tab-frame').append(tab_content);
if (currentTab != '#transfert') {
$('#search_2').addClass('hidden');
}
if (['#transfert', '#credit', '#retrait'].indexOf(currentTab) == -1) {
if (currentTab == '#conso') {
$('#consos_reference').addClass('active');
}
else {
$(currentTab).parent().addClass('active');
}
$('#consos_reponsive').removeClass('active');
}
}
}
......
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