script.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. var first = true;
  2. var uniqId = '0';
  3. $(document).ready(function(){
  4. //Ini Materialize
  5. M.AutoInit();
  6. //Si message à afficher
  7. if($("#msg").val().trim() != ''){
  8. var msg = '';
  9. switch($("#msg").attr('data-type')){
  10. case 'err':
  11. msg = message_erreur($("#msg").val());
  12. break;
  13. case 'ok':
  14. msg = message_conf($("#msg").val());
  15. break;
  16. default:
  17. msg = message_info($("#msg").val());
  18. }
  19. float_message(msg);
  20. }
  21. //Envoyer formulaire
  22. $("#valid").on('click', function(){
  23. //Verif form
  24. if($('#save-name').val() == null && $("#name").val().trim() == ''){
  25. float_message(message_erreur('Lanceur vide'));
  26. return false;
  27. }
  28. //Envoi
  29. $.post('ajx/roll.php', {name: $("#name").val(), 'save-name': $('#save-name').val(), roll: $("#roll").val(), hide: $("#hide").prop('checked')}, function(data){
  30. if(data.etat = 'ok'){
  31. float_message(message_info('Resultat : ' + data.roll + ' / ' + data.dice));
  32. reload(false);
  33. $("#name").val('');
  34. }
  35. }, 'json');
  36. return false;
  37. });
  38. //Rechargement
  39. $("#reload").on('click', function(){
  40. if(first){
  41. reload(false);
  42. first = false;
  43. } else {
  44. reload(true);
  45. }
  46. }).click();
  47. //Recharge toutes les X secondes
  48. perma_check();
  49. //Reset
  50. $('#reset').on('click', function(){
  51. reset_score();
  52. });
  53. //Quit
  54. $('#quit').on('click', function(){
  55. location.href = './?quit';
  56. });
  57. $("body").on('click', '.float_message', function () {
  58. $(this).slideUp('slow', function () {
  59. $(this).html('');
  60. });
  61. });
  62. });
  63. function check(){
  64. console.log(uniqId);
  65. $.post("ajx/check.php", {'id': uniqId}, function(data){
  66. if(data.etat == 'ok'){
  67. if(data.update){
  68. reload(false);
  69. }
  70. }
  71. }, 'json');
  72. }
  73. function perma_check(time){
  74. time = time || 15;
  75. setTimeout(function(){
  76. check();
  77. perma_check(time);
  78. }, time * 1000);
  79. }
  80. function reload(msg){
  81. $.post("ajx/score.php", null, function(data){
  82. if(data.etat == 'ok'){
  83. uniqId = data.uniqId;
  84. $("#tbody").html(data.html);
  85. $("#save-name").html(data.savename);
  86. if(msg){
  87. float_message(message_conf("Page rechargée"));
  88. }
  89. M.AutoInit();
  90. }
  91. }, 'json');
  92. }
  93. function reset_score(){
  94. $.post("ajx/reset.php", null, function(data){
  95. if(data.etat == 'ok'){
  96. $("#tbody").html('');
  97. $("#save-name").html('<option value="" disabled selected>Selectionnez un lanceur</option>');
  98. float_message(message_conf("Session reset"));
  99. M.AutoInit();
  100. }
  101. }, 'json');
  102. }
  103. function message_erreur(msg){
  104. var html = '';
  105. html += '<div class="hide-on-small-only">' + "\n";
  106. html += ' <div class="row red-text red lighten-4" style="height: 60px; border: dashed;">' + "\n";
  107. html += ' <div class="col s2">' + "\n";
  108. html += ' <i class="material-icons" style="font-size: 3em; line-height: 125%">error</i>' + "\n";
  109. html += ' </div>' + "\n";
  110. html += ' <div class="col s10 truncate " style="font-size: 1.5em; line-height: 250%">' + "\n";
  111. html += ' ' + msg + "\n";
  112. html += ' </div>' + "\n";
  113. html += ' </div>' + "\n";
  114. html += '</div>' + "\n";
  115. html += '<div class="hide-on-med-and-up">' + "\n";
  116. html += ' <div class="red lighten-4 red-text center" style="border: dashed">' + "\n";
  117. html += ' <br>' + msg + '<br>&nbsp;' + "\n";
  118. html += ' </div>' + "\n";
  119. html += '</div>' + "\n";
  120. return html;
  121. }
  122. function message_info(msg){
  123. var html = '';
  124. html += '<div class="hide-on-small-only">' + "\n";
  125. html += ' <div class="row blue-text blue lighten-4" style="height: 60px; border: dashed;">' + "\n";
  126. html += ' <div class="col s2">' + "\n";
  127. html += ' <i class="material-icons" style="font-size: 3em; line-height: 125%">info</i>' + "\n";
  128. html += ' </div>' + "\n";
  129. html += ' <div class="col s10 truncate " style="font-size: 1.5em; line-height: 250%">' + "\n";
  130. html += ' ' + msg + "\n";
  131. html += ' </div>' + "\n";
  132. html += ' </div>' + "\n";
  133. html += '</div>' + "\n";
  134. html += '<div class="hide-on-med-and-up">' + "\n";
  135. html += ' <div class="blue lighten-4 blue-text center" style="border: dashed">' + "\n";
  136. html += ' <br>' + msg + '<br>&nbsp;' + "\n";
  137. html += ' </div>' + "\n";
  138. html += '</div>' + "\n";
  139. return html;
  140. }
  141. function message_warn(msg){
  142. var html = '';
  143. html += '<div class="hide-on-small-only">' + "\n";
  144. html += ' <div class="row amber-text yellow lighten-4" style="height: 60px; border: dashed;">' + "\n";
  145. html += ' <div class="col s2">' + "\n";
  146. html += ' <i class="material-icons" style="font-size: 3em; line-height: 125%">warning</i>' + "\n";
  147. html += ' </div>' + "\n";
  148. html += ' <div class="col s10 truncate " style="font-size: 1.5em; line-height: 250%">' + "\n";
  149. html += ' ' + msg + "\n";
  150. html += ' </div>' + "\n";
  151. html += ' </div>' + "\n";
  152. html += '</div>' + "\n";
  153. html += '<div class="hide-on-med-and-up">' + "\n";
  154. html += ' <div class="yellow lighten-4 amber-text center" style="border: dashed">' + "\n";
  155. html += ' <br>' + msg + '<br>&nbsp;' + "\n";
  156. html += ' </div>' + "\n";
  157. html += '</div>' + "\n";
  158. return html;
  159. }
  160. function message_conf(msg){
  161. var html = '';
  162. html += '<div class="hide-on-small-only">' + "\n";
  163. html += ' <div class="row green-text green lighten-4" style="height: 60px; border: dashed;">' + "\n";
  164. html += ' <div class="col s2">' + "\n";
  165. html += ' <i class="material-icons" style="font-size: 3em; line-height: 125%">check_circle</i>' + "\n";
  166. html += ' </div>' + "\n";
  167. html += ' <div class="col s10 truncate " style="font-size: 1.5em; line-height: 250%">' + "\n";
  168. html += ' ' + msg + "\n";
  169. html += ' </div>' + "\n";
  170. html += ' </div>' + "\n";
  171. html += '</div>' + "\n";
  172. html += '<div class="hide-on-med-and-up">' + "\n";
  173. html += ' <div class="green lighten-4 green-text center" style="border: dashed">' + "\n";
  174. html += ' <br>' + msg + '<br>&nbsp;' + "\n";
  175. html += ' </div>' + "\n";
  176. html += '</div>' + "\n";
  177. return html;
  178. }
  179. function float_message(text){
  180. $("#float_msg").html(text).slideDown('slow', null);
  181. setTimeout(function(){
  182. $("#float_msg").click();
  183. }, '5000');
  184. }