favorite.js 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. $(document).ready(function(){
  2. function refresh_elements_with_tags_selected(link)
  3. {
  4. // Puis on fait notre rekékéte ajax.
  5. $('ul.elements').html('');
  6. $('div.no_elements').hide();
  7. $('img.elements_more_loader').show();
  8. $.getJSON($('input#get_elements_url').val()+'/'+array2json(tags_ids), function(response){
  9. $('ul.elements').html(response.html);
  10. if (response.count)
  11. {
  12. $('img.elements_more_loader').hide();
  13. $('span.elements_more').show();
  14. $('a.elements_more').show();
  15. }
  16. });
  17. return false;
  18. }
  19. $('ul#favorite_tags a.tag').click(function(){
  20. // Ensuite on l'active ou le désactive'
  21. if ($(this).hasClass('active'))
  22. {
  23. $(this).removeClass('active');
  24. }
  25. else
  26. {
  27. $(this).addClass('active');
  28. }
  29. // On construit notre liste de tags
  30. tags_ids = new Array();
  31. $('ul#favorite_tags a.tag.active').each(function(index){
  32. id = str_replace('#', '', $(this).attr('href'));
  33. tags_ids[id] = id;
  34. });
  35. // On adapte le lien afficher plus de résultats
  36. a_more = $('a.elements_more');
  37. a_more.attr('href', $('input#more_elements_url').val()+'/'+array2json(tags_ids));
  38. return check_timelaps_and_find_with_tags($(this), new Date().getTime(), false);
  39. });
  40. last_keypress = 0;
  41. function check_timelaps_and_find_with_tags(link, time_id, timed)
  42. {
  43. if (!timed)
  44. {
  45. // C'est une nouvelle touche (pas redirigé) on lui donne un id
  46. // et on met a jour l'id de la dernière pressé
  47. last_keypress = new Date().getTime();
  48. var this_time_id = last_keypress;
  49. }
  50. else
  51. {
  52. // Si elle a été redirigé, on met son id dans cette variable
  53. var this_time_id = time_id;
  54. }
  55. // C'est une touche redirigé dans le temps qui a été suivit d'une autre touche
  56. if (time_id != last_keypress && timed)
  57. {
  58. // elle disparait
  59. }
  60. else
  61. {
  62. //
  63. if ((new Date().getTime() - last_keypress) < 800 || timed == false)
  64. {
  65. // Si elle vient d'être tapé (timed == false) elle doit attendre (au cas ou une autre touche soit tapé)
  66. // Si c'est une redirigé qui n'a pas été remplacé par une nouvelle lettre
  67. // elle doit attendre au cas ou soit pressé.
  68. setTimeout(function(){check_timelaps_and_find_with_tags(link, this_time_id, true)}, 900);
  69. }
  70. else
  71. {
  72. // il n'y a plus a attendre, on envoie la demande de tag.
  73. return refresh_elements_with_tags_selected(link);
  74. }
  75. }
  76. return null;
  77. }
  78. });