EVOLUTION-MANAGER
Edit File: servicios.js
$(document).ready(function () { cargar_servicios(); }); function cargar_servicios(){ vista_cargando(); $("#tabla_servicios").DataTable().destroy(); $('#tabla_servicios tbody').empty(); $.get(ruta_host+"/admin/servicios/listado", function(response){ vista_cargando(); if(response.status==200){ lista_servicios = response.response; $("#tabla_cajas").DataTable().destroy(); $("#tabla_cajas tbody").empty(); //console.log(lista_servicios); $.each(lista_servicios, function (s, servicio) { $("#tabla_servicios tbody").append(` <tr> <td>${s+1}</td> <td>${servicio.parroquia.nombre}</td> <td>${servicio.tipo_servicio.nombre}</td> <td>${servicio.nombre}</td> <td> <div style="display: flex; justify-content: center; gap: 5px;"> <button class="btn btn-xs btn-primary" onclick="editar_servicio('${servicio.id_encrypt}')"><i class="fa fa-edit"></i></button> <button class="btn btn-xs btn-danger" onclick="eliminar_servicio('${servicio.id_encrypt}')"><i class="fa fa-trash"></i></button> </div> </td> </tr> `); }); cargarDataTable("tabla_servicios", false, 4, "desc"); }else{ alerta(response.msg_text, response.msg_color); } }).fail(function(){ vista_cargando(); alerta("No se pudo realizar la solicitud", "error"); }); } $("#btn_nuevo_servicio").click(function(e){ $("#content_formulario").show(); $("#content_nuevo_servicio").hide(); }); function editar_servicio(id){ vista_cargando(); cancelar_editado(); setTimeout(() => { $("#content_formulario").show(); $("#content_nuevo_servicio").hide(); }, 100); $.get(ruta_host+"/admin/servicios/editar/"+id, function(response){ vista_cargando(); if(response.status==200){ servicio = response.response; $("#servicio_id_edit").val(servicio.id_encrypt) $("#parroquia").val(servicio.parroquia.id); $("#tipo_servicio").val(servicio.tipo_servicio.id); $("#nombre").val(servicio.nombre); $("#direccion").val(servicio.direccion); $("#correo").val(servicio.correo); $("#telefono").val(servicio.telefono); $("#celular").val(servicio.celular); $("#celular_what").prop("checked", false); if(servicio.celular_what == 1){ $("#celular_what").prop("checked", true); } $("#costo").val(servicio.costo); $("#responsable").val(servicio.responsable); $("#horario").val(servicio.horario); $("#latitud").val(servicio.latitud); $("#longitud").val(servicio.longitud); $("#url_web").val(servicio.url_web); $("#url_fb").val(servicio.url_fb); $("#url_in").val(servicio.url_in); $("#url_x").val(servicio.url_x); $("#url_yt").val(servicio.url_yt); $('html, body').animate({ scrollTop: 0 }, 'slow'); if(servicio.tipo_servicio.tipo > 0){ //nuevo modelo pensado para hoteleria $("#contenedor_ofrece").hide(); $("#contenedor_ofrece_v2").show(); $("#texto_ofrece").val(servicio.texto); cat_titulo1 = response.cat_titulo1; cat_titulo = response.cat_titulo; //cargamos los valores del catalogo de titulos 1 $("#lista_titulo1").html(""); $.each(cat_titulo1, function (t, titulo1) { var check_titulo1 = ""; var cat_titulo1_del = ""; if(servicio.array_titulo1[titulo1.id]){ check_titulo1 = "checked"; cat_titulo1_del = "cat_titulo1_del"; } $("#lista_titulo1").append(` <div class="colum_ofrece"> <label class="htitulo1"> <img src="${route_public}/${titulo1.icono}" alt=""> ${titulo1.titulo} <input value="${titulo1.id_encrypt}" name="cat_titulo1[]" class="custom_checkbox ${cat_titulo1_del}" type="checkbox" ${check_titulo1}> </label> </div> `); }); //cargamos los valores del ctalogo de titulos $("#lista_titulo").html(""); $.each(cat_titulo, function (c, titulo) { var text_titulo = ""; if(titulo.titulo){ text_titulo = titulo.titulo; } $("#lista_titulo").append(` <div class="colum_ofrece"> <h6 class="htitulo"> <button onclick="agregar_nueva_lista('${titulo.id_encrypt}')" class="btn btn-xs btn-outline-dark" type="button"><i class="fa fa-plus"></i></button> <img src="${route_public}/${titulo.icono}" alt=""> ${text_titulo}</h6> <ul id="ul_titulo_${titulo.id}" class="ul_select"> <!-- sin datos --> </ul> </div> `); $.each(titulo.cat_lista, function (t, lista) { var check_lista = ""; var cat_lista_del = ""; if(servicio.array_lista[lista.id]){ check_lista = "checked"; cat_lista_del = "cat_lista_del"; //clase para agregar a array de eliminados } $(`#ul_titulo_${lista.cat_titulo_id}`).append(` <li> <label for="lista_${lista.id}"> <div><input value="${lista.id_encrypt}" name="cat_lista[]" class="custom_checkbox ${cat_lista_del}" id="lista_${lista.id}" type="checkbox" ${check_lista}></div> ${lista.nombre} </label> </li> `); }); }); }else{ $("#contenedor_ofrece").show(); $("#contenedor_ofrece_v2").hide(); //cargamos los ofrece $("#card_ofrece").html(""); $.each(servicio.servicio_ofrece, function (o, ofrece) { $("#card_ofrece").append(` <div class="body_ofrece"> <span class="card_info"> <i class="${ofrece.icono}"></i> ${ofrece.nombre} </span> <span class="card_btn_del"> <button type="button" value="${ofrece.id_encrypt}" class="ofrece_bnt_delete btn btn-xs btn-outline-secondary"><i class="fas fa-times"></i></button> </span> </div> `); }); } //cargamos las imagenes $("#content_files").html(""); $.each(servicio.servicio_imagen, function (i, imagen) { var input_detalle = ""; if(imagen.detalle){ input_detalle = `<input value="${imagen.detalle}" class="detalle form-control form-control-sm" type="text" placeholder="Detalle" disabled>`; } $("#content_files").append(` <div class="card_files"> <div class="card_body"> <img class="carrousel_img" src="${route_public}/${imagen.ruta}" alt=""> <span class="name_files"></span> <span class="items"> ${input_detalle} </span> <span class="buttons_files"> <button type="button" value="${imagen.id_encrypt}" data-name-delete="servicio_imagen" class="btn_files_delete btn btn-xs btn-danger"><i class="fa fa-trash"></i> </button> </span> </div> </div> `); }); }else{ alerta(response.msg_text, response.msg_color); } }).fail(function(){ vista_cargando(); alerta("No se pudo realizar la solicitud", "error"); }); } function cancelar_editado(){ $("#parroquia").val(""); $("#tipo_servicio").val(""); $("#nombre").val(""); $("#direccion").val(""); $("#correo").val(""); $("#telefono").val(""); $("#celular").val(""); $("#celular_what").prop("checked", false); $("#costo").val(""); $("#responsable").val(""); $("#horario").val(""); $("#latitud").val(""); $("#longitud").val(""); $("#url_web").val(""); $("#url_fb").val(""); $("#url_in").val(""); $("#url_x").val(""); $("#url_yt").val(""); $("#servicio_id_edit").val(""); $("#content_formulario").hide(); $("#content_nuevo_servicio").show(); $("#content_files").html(""); $("#card_ofrece").html(""); } $("#frm_guardar_servicio").submit(function(e){ e.preventDefault(); var formulario = this; Swal.fire({ title: `<strong>Atención</strong>`, icon: 'info', html: '<span>¿Está seguro que desea guardar los datos?</span>', showCloseButton: false, showCancelButton: true, focusConfirm: false, confirmButtonText:'<i class="fa fa-thumbs-up"></i> Continuar', cancelButtonText:'<i class="fa fa-thumbs-down"></i> Cancelar', }).then((result) => { if (result.isConfirmed) { $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}}); var FrmData = new FormData(formulario); vista_cargando(); $.ajax({ url: ruta_host+"/admin/servicios/guardar", method: 'POST', data: FrmData, dataType: 'json', contentType:false, cache:false, processData:false, success: function(response){ vista_cargando(); alerta(response.msg_text, response.msg_color); if(response.status==200){ cancelar_editado(); cargar_servicios(); } }, error: function(error){ vista_cargando(); alerta("No se pudo realizar la operación", "error"); } }); } }); }); function eliminar_servicio(id){ Swal.fire({ title: `<strong>Atención</strong>`, icon: 'info', html: '<span>¿Está seguro que desea eliminar el elemento?</span>', showCloseButton: false, showCancelButton: true, focusConfirm: false, confirmButtonColor: "#d33", confirmButtonText:'<i class="fa fa-thumbs-up"></i> Continuar', cancelButtonText:'<i class="fa fa-thumbs-down"></i> Cancelar', }).then((result) => { if (result.isConfirmed) { $.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}}); vista_cargando(); $.ajax({ url: ruta_host+"/admin/servicios/eliminar/"+id, method: 'DELETE', dataType: 'json', success: function(response) { vista_cargando(); alerta(response.msg_text, response.msg_color); if(response.status==200){ cargar_servicios(); } }, error:function (requestData) { vista_cargando(); alerta("No se pudo realizar la solicitud", "error"); } }); } }); } //nuevas opciones para poder serleccionar de un catalogo $("#tipo_servicio").change(function(e){ vista_cargando(); var id = $(this).val(); $.get(ruta_host+"/admin/servicios/verificar-tipo-servicio/"+id, function(response){ vista_cargando(); if(response.status==200){ cat_titulo1 = response.cat_titulo1; cat_titulo = response.cat_titulo; if(cat_titulo1 || cat_titulo1){ $("#contenedor_ofrece").hide(); $("#contenedor_ofrece_v2").show(); //cargamos los valores del catalogo de titulos 1 $("#lista_titulo1").html(""); $.each(cat_titulo1, function (t, titulo1) { $("#lista_titulo1").append(` <div class="colum_ofrece"> <label class="htitulo1"> <img src="${route_public}/${titulo1.icono}" alt=""> ${titulo1.titulo} <input value="${titulo1.id_encrypt}" name="cat_titulo1[]" class="custom_checkbox" type="checkbox"> </label> </div> `); }); //cargamos los valores del catalogo de titulos $("#lista_titulo").html(""); $.each(cat_titulo, function (c, titulo) { var text_titulo = ""; if(titulo.titulo){ text_titulo = titulo.titulo; } $("#lista_titulo").append(` <div class="colum_ofrece"> <h6 class="htitulo"> <button onclick="agregar_nueva_lista('${titulo.id_encrypt}')" class="btn btn-xs btn-outline-dark" type="button"><i class="fa fa-plus"></i></button> <img src="${route_public}/${titulo.icono}" alt=""> ${text_titulo}</h6> <ul id="ul_titulo_${titulo.id}" class="ul_select"> <!-- sin datos --> </ul> </div> `); $.each(titulo.cat_lista, function (t, lista) { $(`#ul_titulo_${lista.cat_titulo_id}`).append(` <li> <label for="lista_${lista.id}"> <div><input value="${lista.id_encrypt}" name="cat_lista[]" class="custom_checkbox" id="lista_${lista.id}" type="checkbox"></div> ${lista.nombre} </label> </li> `); }); }); }else{ $("#contenedor_ofrece").show(); $("#contenedor_ofrece_v2").hide(); } }else{ alerta(response.msg_text, response.msg_color); } }).fail(function(){ vista_cargando(); alerta("No se pudo realizar la solicitud", "error"); }); }); //evento para agregar un nuevo titulo function agregar_nueva_lista(cat_titulo_id){ Swal.fire({ title: "Ingresar nuevo elemento a la lista", input: "text", inputAttributes: { autocapitalize: "off", placeholder: "Escriba aquí..." }, cancelButtonText: "Cancelar", showCancelButton: true, confirmButtonText: "Guardar", showLoaderOnConfirm: true, preConfirm: async (inputData) => { if (!inputData) { Swal.showValidationMessage("Ingrese el titulo"); return; } try { const response = await fetch(`${ruta_host}/admin/servicios/lista/guardar`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content') }, body: JSON.stringify({ cat_titulo_id: cat_titulo_id, nombre: inputData }) }); if (!response.ok) { const errorData = await response.json(); return Swal.showValidationMessage(`Error: ${errorData.message}`); } const responseData = await response.json(); Swal.fire({ title: responseData.msg_text, icon: responseData.msg_color }); if(responseData.status == 200){ cat_lista = responseData.response; $(`#ul_titulo_${cat_lista.cat_titulo_id}`).append(` <li> <label for="lista_${cat_lista.id}"> <div><input value="${cat_lista.id_encrypt}" name="cat_lista[]" class="custom_checkbox" id="lista_${cat_lista.id}" type="checkbox"></div> ${cat_lista.nombre} </label> </li> `); } return; } catch (error) { return Swal.showValidationMessage(`Request failed: ${error.message}`); } }, allowOutsideClick: () => !Swal.isLoading() }).then((result) => { }); }