eventos.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. /***** INICIALES *****/
  2. let dropdownlist_click = [false,false];
  3. let d = new Date();
  4. d = d.toISOString();
  5. let date = d.split('-');
  6. let year = date[0];
  7. $('#ddlMeses ul li[data-id="' + parseInt(date[1]) + '"]').addClass('active');
  8. $('#ddlMeses').data('id', parseInt(date[1]));
  9. $('#btnMeses').children('label').text($('#ddlMeses ul li[data-id="' + parseInt(date[1]) + '"]').text());
  10. $('#ddlAnios ul li[data-id="' + date[0] + '"]').addClass('active');
  11. $('#ddlAnios').data('id', date[0]);
  12. $('#btnAnios').children('label').text($('#ddlAnios ul li[data-id="' + date[0] + '"]').text());
  13. cargaEventos();
  14. /***** DROPDOWNLIST ******/
  15. $('#btnMeses').click({elem: 'Meses'},clickDropdownList);
  16. $('#btnMeses').blur({elem: 'Meses', index: 0},blurDropdownList);
  17. $('#ddlMeses ul li').mousedown({index: 0},mousedownDropdownList);
  18. $('#ddlMeses ul li').mouseup({elem: 'Meses', index: 0},mouseupDropdownList);
  19. $('#ddlMeses ul li').click(function() {
  20. $(this).parent().parent().data('id',$(this).data('id'));
  21. $(this).parent().siblings('button').children('label').text($(this).text());
  22. $(this).siblings('.active').removeClass('active');
  23. $(this).addClass('active');
  24. $(this).parent().parent().removeClass('show');
  25. cargaEventos();
  26. });
  27. $('#btnAnios').click({elem: 'Anios'},clickDropdownList);
  28. $('#btnAnios').blur({elem: 'Anios', index: 1},blurDropdownList);
  29. $('#ddlAnios ul li').mousedown({index: 1},mousedownDropdownList);
  30. $('#ddlAnios ul li').mouseup({elem: 'Anios', index: 1},mouseupDropdownList);
  31. $('#ddlAnios ul li').click(function() {
  32. $(this).parent().parent().data('id',$(this).data('id'));
  33. $(this).parent().siblings('button').children('label').text($(this).text());
  34. $(this).siblings('.active').removeClass('active');
  35. $(this).addClass('active');
  36. $(this).parent().parent().removeClass('show');
  37. cargaEventos();
  38. });
  39. function cargaEventos(){ //obtiene los eventos segun el mes y el año
  40. $.ajax({
  41. url: 'action/eventos_action.php',
  42. type: 'POST',
  43. dataType: 'json',
  44. data: {tipo: 1, year: $('#ddlAnios').data('id'), month: $('#ddlMeses').data('id')},
  45. success: function(result){
  46. if(result['error']!= '' && result['error'] !== undefined){
  47. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  48. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
  49. $('.msg1').text('¡Error!');
  50. $('.msg2').html(result['error']);
  51. $('#eventos').html('');
  52. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  53. $('#modalAviso').modal('show');
  54. } else {
  55. $('#eventos').html(result['html']);
  56. $('.collapse').on('shown.bs.collapse', function () {
  57. $(this).siblings().find('.fa-circle-info').addClass('view');
  58. /*$(this).siblings().find('.btn-azul2').children('span:first-of-type').removeClass('fa-eye').addClass('fa-eye-slash');
  59. $(this).siblings().find('.btn-azul2').children('span:last-of-type').text('Ocultar Detalle');
  60. $(this).siblings().find('.btn-azul2').blur();*/
  61. });
  62. $('.collapse').on('hidden.bs.collapse', function () {
  63. $(this).siblings().find('.fa-circle-info').removeClass('view');
  64. /*$(this).siblings().find('.btn-azul2').children('span:first-of-type').removeClass('fa-eye-slash').addClass('fa-eye');
  65. $(this).siblings().find('.btn-azul2').children('span:last-of-type').text('Ver Detalle');
  66. $(this).siblings().find('.btn-azul2').blur();*/
  67. });
  68. }
  69. },
  70. error: function(jqXHR, textStatus, errorThrown){
  71. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  72. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
  73. $('.msg1').text('¡Lo sentimos!');
  74. $('.msg2').text('Se presentó un error inesperado al momento de cargar los eventos');
  75. $('#eventos').html('');
  76. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  77. $('#modalAviso').modal('show');
  78. }
  79. });
  80. }
  81. /***** INSCRIPCIONES ******/
  82. $('#modalConfirmar').on('show.bs.modal', function(event){//boton inscripcion/desinscripcion
  83. let button = $(event.relatedTarget);
  84. $('#btnConfirmar').data('insignia',$(button).data('insignia'));
  85. $('#btnConfirmar').data('shortname',$(button).data('shortname'));
  86. //let evento = $(button).parent().parent().parent().siblings('.tituloEvento').children();
  87. let evento = $(button).parent().siblings('div:not(.calendario)').children('.tituloEvento').children('span');
  88. if(button.data('tipo')==1){//inscribirse
  89. $("#modalConfirmar").find('.modal-body').html('¿Estás seguro de querer inscribirte a <span class="text-azul1">' + $(evento[1]).text() + '</span>?');
  90. $("#btnConfirmar").data("tipo", 2);
  91. }else{//desinscribirse
  92. $("#modalConfirmar").find('.modal-body').html('¿Estás seguro de querer desinscribirte a <span class="text-azul1">' + $(evento[1]).text() + '</span>?');
  93. $("#btnConfirmar").data("tipo", 3);
  94. }
  95. });
  96. $('#btnConfirmar').click(function(){//confirmar accion inscribir/desinscribir
  97. $('#modalConfirmar').modal('hide');
  98. let tipo = $(this).data('tipo');
  99. let evento = $("#modalConfirmar").find('.modal-body').children('span').text();
  100. $.ajax({
  101. url: 'action/eventos_action.php',
  102. type: 'POST',
  103. dataType: 'json',
  104. data: {tipo: tipo, insignia: $(this).data('insignia'), shortname: $(this).data('shortname')},
  105. success: function(result){
  106. if(result['error']!= '' && result['error'] !== undefined){
  107. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  108. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
  109. $('.msg1').text('¡Error!');
  110. $('.msg2').html(result['error'] + '<span class="text-azul1">' + evento + '</span>');
  111. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  112. } else {
  113. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
  114. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-aceptar');
  115. $('.msg1').text(result['msg']);
  116. $('.msg2').html(result['ok'] + '<span class="text-azul1">' + evento + '</span>');
  117. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
  118. cargaEventos();
  119. }
  120. $('#modalAviso').modal('show');
  121. },
  122. error: function(jqXHR, textStatus, errorThrown){
  123. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  124. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
  125. $('.msg1').text('¡Lo sentimos!');
  126. if (tipo = 2)
  127. $('.msg2').text('Se presentó un error inesperado al momento de inscribirte al evento');
  128. else
  129. $('.msg2').text('Se presentó un error inesperado al momento de desinscribirte del evento');
  130. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  131. $('#modalAviso').modal('show');
  132. }
  133. });
  134. });
  135. /***** EVIDENCIAS ******/
  136. $('#addArchivo').customFile({
  137. allowed: ['pdf', 'zip', 'rar'],
  138. maxFiles: 1,
  139. maxKBperFile: 1024 * 10,
  140. filePicker : '<div class="text-center text-azul1 display-6 mb-2">Arrastra aquí tu PDF, ZIP o RAR</div><div class="text-azul2 display-7 mb-2">o da click para agregarlo</div><div class="text-secondary mb-2">(El archivo debe pesar máximo 10MB)</div><span class="display-6 text-mainColor ing-carga-archivo"></span>',
  141. addContainerAfter : $('#addArchivo'),
  142. messages : {
  143. errorType : 'No son permitidos ese tipo de archivos',
  144. errorFileKB: 'El archivo excede los 10MB'
  145. },
  146. popup: {
  147. active: false,
  148. autoclose : false
  149. },
  150. callbacks : {
  151. beforeRead : function(file){
  152. $('#divArchivo').children('div.cif-file-picker').hide();
  153. $('.carga').show();
  154. },
  155. onError : function(file,msg){
  156. let lista = '';
  157. for (let cont = 0; cont < msg.length; cont++){
  158. lista += '<li>' + msg[cont] + '</li>';
  159. }
  160. $('#divArchivo').before(`<div class="alert alert-danger alert-dismissible w-100 fade show" role="alert">
  161. <div class="d-flex flex-column">
  162. <div class="fw-bold">¡Error!</div>
  163. <div>El archivo que intentaste cargar es:<span class="ms-1">` + file.name + `</span></div>
  164. <ul class="error">` + lista + `</ul>
  165. </div>
  166. <button type="button" class="close" data-dismiss="alert" aria-label="Close" onclick="$('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').show();"><span aria-hidden="true" class="ing-cancelar"></span></button>
  167. </div>`);
  168. $('#divArchivo').children('.cif-file-container.cif-container-all-type').hide();
  169. },
  170. beforeRemove : function(item){
  171. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').show();
  172. $('#divArchivo').children('.cif-file-container.cif-container-all-type').hide();
  173. },
  174. onComplete : function(app){
  175. $('.carga').hide();
  176. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').hide();
  177. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').removeClass('is-invalid');
  178. if ($('.alert').length == 0)
  179. $('#divArchivo').children('.cif-file-container.cif-container-all-type').show();
  180. }
  181. }
  182. });
  183. $('#modalSubirArchivo').on('show.bs.modal', function(event){//boton de subir evidencia
  184. $('.cif-close').click();
  185. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').removeClass('is-invalid');
  186. let button = $(event.relatedTarget);
  187. $('#msgDetalle').html($(button).children('input').val());
  188. $('#btnOkArchivo').data('insignia',button.data('insignia'));
  189. $('#btnOkArchivo').data('shortname',button.data('shortname'));
  190. });
  191. $('#btnOkArchivo').click(function(){ //confirmar carga de archivo
  192. if ($('#divArchivo').children('.cif-file-container.cif-container-all-type').children('div.cif-file-row').length > 0) {
  193. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').removeClass('is-invalid');
  194. let datos = $.customFile.serialize('#formArchivo');
  195. datos.append('insignia', $(this).data('insignia'));
  196. datos.append('shortname', $(this).data('shortname'));
  197. datos.append('tipo', 4);
  198. $.ajax({
  199. url: 'action/eventos_action.php',
  200. type: 'POST',
  201. contentType: false,
  202. cache: false,
  203. processData:false,
  204. data: datos,
  205. success: function(result) {
  206. if (result.startsWith('{')){
  207. result = JSON.parse(result);
  208. if(result['error']!= '' && result['error'] !== undefined){
  209. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  210. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-cancelar');
  211. $('.msg1').text('¡Error!');
  212. $('.msg2').html(result['error']);
  213. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-danger');
  214. } else {
  215. cargaEventos();
  216. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
  217. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-aceptar');
  218. $('.msg1').text('¡Felicidades!');
  219. $('.msg2').html(result['ok']);
  220. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-success');
  221. }
  222. } else {
  223. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  224. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
  225. $('.msg1').text('¡Lo sentimos!');
  226. $('.msg2').text('Ocurrió un error inesperado al momento de subir la evidencia');
  227. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  228. }
  229. $('#modalSubirArchivo').modal('hide');
  230. $('#modalAviso').modal('show');
  231. },
  232. error: function(jqXHR, textStatus, errorThrown ){
  233. $('.iconAviso').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  234. $('.iconAviso').children('i').removeClass('ing-aceptar ing-cancelar ing-importante').addClass('ing-importante');
  235. $('.msg1').text('¡Lo sentimos!');
  236. $('.msg2').text('Se presentó un error inesperado al momento de cargar la evidencia');
  237. $('.rounded-pill').removeClass('bg-success bg-warning bg-danger').addClass('bg-warning');
  238. $('#modalAviso').modal('show');
  239. $('#modalSubirArchivo').modal('hide');
  240. }
  241. });
  242. } else {
  243. $('#divArchivo').children('.cif-file-picker.cif-pkr-archivo').addClass('is-invalid');
  244. }
  245. });