Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Maxime Bombar
Note Kfet 2015 django
Commits
fc2b23fa
Commit
fc2b23fa
authored
Jan 06, 2016
by
Hamza Dely
Browse files
La recherche de boutons pour noter les consos est désormais possible
parent
48643845
Changes
4
Hide whitespace changes
Inline
Side-by-side
note/ajaj.py
View file @
fc2b23fa
...
...
@@ -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
))
...
...
static/js/custom/consos_base.js
View file @
fc2b23fa
...
...
@@ -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
);
}
}
...
...
static/js/custom/liste_dynamique_quick.js
View file @
fc2b23fa
...
...
@@ -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
...
...
static/js/custom/tabs.js
View file @
fc2b23fa
...
...
@@ -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
'
);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment