list-events.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. $(document).ready(function() {
  2. showDate('showDate');
  3. getEvements();
  4. });
  5. // Show QRCode
  6. function printTuile(data){
  7. if(data === null){
  8. return '<div class="card mb-3 text-center fadeIn"><div class="card-header"><i class="bi bi-info-circle"></i></div><div class="card-body">Aucun évènement n\'est associé à votre profil à ce jour</div></div>';
  9. } else {
  10. var explication = null;
  11. var meta = null;
  12. var classCard = null;
  13. var txtFooter = null;
  14. var classFadeIn = getClassTuile(data["nb"]);
  15. if(data["type_emargement"] == 1){
  16. explication = '<p class="card-text"><div>[ QRCode à présenter à votre arrivée ]</div><br /><div><i class="bi bi-fullscreen"></i></div></p>';
  17. meta = 'data-toggle="modal" data-target="#QRCodeModal" onclick="showQRCode(this)" data-qrr-qrcode-regexp="^https?:\/\/" data-sel="' + data["url_qrcode"] + '" data-titre="' + data["titre"] + '"';
  18. classCard = "showQRCode";
  19. txtFooter = "Cliquez ici pour afficher votre QRCode";
  20. } else {
  21. explication = '<p class="card-text"><div>[ QRCode à flasher vous même ]</div><br /><div><i class="bi bi-camera-video"></i></div></p>';
  22. meta = 'data-event="' + data["md5"] + '" data-qrr-target="#QRCodeRead" ';
  23. classCard = "qrcodeReader";
  24. txtFooter = "Cliquez ici pour scanner le QRCode";
  25. }
  26. if(data["present"]){
  27. meta = "";
  28. explication = '<p class="card-text">Votre émargement a bien été pris en compte</p>';
  29. classCardText = "text-success";
  30. classCard = "";
  31. txtFooter = "Emargement réalisé le " + data["present"];
  32. } else {
  33. classCardText = "text-dark";
  34. }
  35. return '<div ' + meta + ' class="card mb-3 text-center ' + classCard + ' ' + classCardText + ' fadeIn ' + classFadeIn + '"><div class="card-header"><small>Du ' + data["startDate"] + ' au ' + data["endDate"] + '</small></div><div class="card-body"><h5 class="card-title">' + data["titre"] + '</h5>' + explication + '</div><div class="card-footer"><small>' + txtFooter + '</small></div></div>';
  36. }
  37. }
  38. function getClassTuile(nb){
  39. switch (nb) {
  40. case 0:
  41. return "first";
  42. break;
  43. case 1:
  44. return "second";
  45. break;
  46. case 2:
  47. return "third";
  48. break;
  49. case 3:
  50. return "fourth";
  51. break;
  52. default:
  53. return "fifth";
  54. break;
  55. }
  56. }
  57. function getEvements(){
  58. var formData = {
  59. jsonData: "list-events"
  60. }
  61. if (checkconnection()) {
  62. $.ajax({
  63. type: "GET",
  64. url: "json.php",
  65. data: formData,
  66. dataType: "json",
  67. encode: true,
  68. }).done(function (json) {
  69. $("#listEvent").html("");
  70. if(json[0] === null){
  71. $("#listEvent").append(printTuile(null));
  72. } else {
  73. $.each(json, function () {
  74. $("#listEvent").append(printTuile(this));
  75. });
  76. $(".qrcodeReader").qrCodeReader();
  77. }
  78. });
  79. } else {
  80. $("#divOffline").empty();
  81. $("#divOffline").append('<div class="alert alert-warning" role="alert">Vous n\'êtes pas connecté à internet</div>');
  82. $("#divOffline").show();
  83. }
  84. }
  85. function showQRCode(element){
  86. var sel = $(element).data("sel");
  87. var titre = $(element).data("titre");
  88. $("#showQRCode").empty();
  89. $("#showQRCode").replaceWith('<div class="modal-body" id="showQRCode"><img src="qrcode.php?q=' + sel + '" width="100%" ></div>');
  90. $("#showTitreEvent").empty();
  91. $("#showTitreEvent").replaceWith('<div class="card-header" id="showTitreEvent">' + titre + '</div>');
  92. }
  93. // Reade QRCode
  94. $(".qrcodeReader").on("click", function () {
  95. var idEvent = $(this).data("event");
  96. $("#form-event").val(idEvent);
  97. });
  98. $("#qrr-close").on("click", function () {
  99. $("#form-event").val("");
  100. });
  101. function checkEmagementControl(){
  102. var formData = {
  103. form: $("#emargementControlFrom").val(),
  104. event: $("#form-event").val(),
  105. qRcode: $("#QRCodeRead").val(),
  106. };
  107. if (checkconnection()) {
  108. $.ajax({
  109. type: "POST",
  110. url: "json.php?jsonData=check-control-emargement",
  111. data: formData,
  112. dataType: "json",
  113. encode: true,
  114. }).done(function (data) {
  115. $('#ResultQRCode').remove();
  116. $("#confirmationModal").append(getConfirmModal(data));
  117. $('#ResultQRCode').modal("show");
  118. if (data["result"] == true) {
  119. $('#ResultQRCode').on('hidden.bs.modal', function () {
  120. getEvements();
  121. });
  122. }
  123. }).fail(function () {
  124. retour = Array;
  125. retour["result"] = false;
  126. retour["description"] = "Le QR-Code n'est pas valide";
  127. retour["salarie"] = null;
  128. retour["evenement"] = null;
  129. $('#ResultQRCode').remove();
  130. $("#confirmationModal").append(getConfirmModal(retour));
  131. $('#ResultQRCode').modal("show");
  132. });
  133. $("#QRCodeRead").removeAttr('value');
  134. } else {
  135. $("#divOffline").empty();
  136. $("#divOffline").append('<div class="alert alert-warning" role="alert">Vous n\'êtes pas connecté à internet</div>');
  137. $("#divOffline").show();
  138. }
  139. }
  140. $("#QRCodeRead").bind("DOMSubtreeModified", function () {
  141. if ($("#QRCodeRead").val() !== null && $("#QRCodeRead").val() !== '') {
  142. checkEmagementControl();
  143. }
  144. });