{% extends 'base.html.twig' %}
{% form_theme form 'bootstrap_4_layout.html.twig' %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-responsive/css/responsive.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ asset('plugins/datatables-buttons/css/buttons.bootstrap4.min.css')}}">
<link rel="stylesheet" href="{{ asset('plugins/toastr/toastr.min.css') }}">
<style>
td.descripcion {
max-width: 300px !important;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
label {
margin-right: 1rem;
}
</style>
{% endblock %}
{% block title %} - Eq. cómputo{% endblock %}
{% block body %}
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<div class="card">
<div class="card-header">
<h1 class="card-title">Equipos de Cómputo</h1>
<div class="card-tools">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item">Inicio</li>
<li class="breadcrumb-item active">Equipos</li>
</ol>
</div>
</div>
</div>
</section>
<!-- Main content -->
<section class="content">
<!-- Default box -->
<div class="card">
{% if not unidadActiva and (rol == 3 or rol == 4) %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
En este momento no tiene privilegios para editar sus inventarios, si lo requiere, por favor solicítelo al Administrador.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
{% endif %}
<div class="card-header">
<div class="row">
{{ form_start(form, {'attr': {'class': 'form-inline col-md-auto', 'id': 'form_unidad_filtro'}}) }}
{{ form_row(form.filtro) }}
{% if form.unidad is defined %}
{{ form_row(form.unidad) }}
{% endif %}
{{ form_end(form) }}
<div class="col text-right">
<button id="descargar_excel" type="button" class="btn btn-outline-success mr-2" onclick="descargarExcel()">
<i class="fas fa-file-excel mr-2"></i> Descargar
</button>
<button id="descargar_pdf" type="button" class="btn btn-outline-danger mr-2" onclick="descargarPDF()">
<i class="fas fa-file-pdf mr-2"></i> Formato CE-1
</button>
{% if nivel == 1 and unidadActiva %}
<a href="{{ path('app_equipo_new') }}" class="btn btn-outline-success">
<i class="fas fa-plus-circle mr-2"></i> Agregar
</a>
{# <a href="{{ path('app_upload_equipo_excel') }}" class="btn btn-outline-success">
<i class="fas fa-plus-circle mr-2"></i> Agregar equipos
</a> #}
{% endif %}
</div>
</div>
</div>
<div class="card-body">
<table class="table table-striped w-100" id="table-equipo">
<thead>
<tr>
<th>Marbete</th>
<th>Descripción</th>
<th>Marca</th>
<th>Modelo</th>
<th>Uso</th>
<th>Estatus</th>
<th>Emhv</th>
<th>Unidad</th>
<th>Usuario</th>
<th>Ubicación</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
{% set filteredEquipos = equipos|filter(equipo => equipo.estatus != 5) %}
{% if filteredEquipos is not empty %}
{% for equipo in filteredEquipos %}
<tr id="idEqu-{{ equipo.idEqu }}">
<td class="marbete">{{ equipo.marbete }}</td>
<td class="descripcion">{{ equipo.descripcion }}</td>
<td class="marca">{{ equipo.marca }}</td>
<td class="modelo">{{ equipo.modelo }}</td>
<td class="uso">
{% if equipo.uso == 1 %}
<span>Educativo</span>
{% elseif equipo.uso == 2 %}
<span>Docente</span>
{% elseif equipo.uso == 3 %}
<span>Administrativo</span>
{% endif %}
</td>
<td class="estatus">
{% if equipo.estatus == 1 %}
<span class="badge bg-gradient-green d-block">En operación</span>
{% elseif equipo.estatus == 2 %}
<span class="badge bg-gradient-orange d-block">Descompuesto</span>
{% elseif equipo.estatus == 3 %}
<span class="badge bg-gradient-primary d-block">Sin instalar</span>
{% elseif equipo.estatus == 4 %}
<span class="badge bg-gradient-yellow d-block">En proceso de baja</span>
{% elseif equipo.estatus == 5 %}
<span class="badge bg-gradient-danger d-block">Baja</span>
{% endif %}
</td>
<td class="emhv">
{% if equipo.emhv == 1 %}
<span class="badge bg-gradient-green d-block">Cumple</span>
{% elseif equipo.emhv == 0 %}
<span class="badge bg-gradient-orange d-block">No Cumple</span>
{% endif %}
</td>
<td class="unidad">{{ equipo.unidad.nombre }}</td>
<td class="usuario">{{ equipo.usuario.nombre }} {{ equipo.usuario.papellido }} {{ equipo.usuario.sapellido }}</td>
<td class="ubicacion">{{ equipo.unidad.idUni|slice(3, 3) }} - {{ equipo.ubicacion}}</td> {# area #}
<td class="text-right">
{# <button class="btn btn-sm" style="background-color: transparent; border: none;" onclick="descargarPDF1('{{ equipo.idEqu }}')">
<i class="fas fa-file-pdf" style="color: red;">dpdf</i>
</button>
| #}
<!-- Botón para descargar PDF de resguardatario -->
<a href="#" onclick="postPdfRequest('{{ equipo.idEqu }}'); return false;" title="Generar resguardatario">
<i class="fas fa-file-pdf mr-2"></i>
</a>
<a href="javascript: void(0)" data-id="{{ equipo.idEqu }}" class="btn-redirect" title="Ver equipo"><i class="fas fa-eye"></i></a>
{% if nivel in [1, 2] and unidadActiva%}
<a href="#editar-equipo" onclick="editarInfoEquipo('{{ path('app_equipo_edit', {'idEqu': equipo.idEqu}) }}')" data-toggle="modal" title="Editar equipo"><i class="fas fa-pen"></i></a>
{#
<a href="#editar-equiporefaccion" onclick="editarInfoEquipoRefaccion('{{ path('app_equipo_editrefaccion', {'idEqu': equipo.idEqu}) }}')" data-toggle="modal" title="Agregar refacción"><i class="fas fa-solid fa-business-time"></i></a> #}
{% endif %}
{% if nivel in [1, 2] and not unidadActiva%}
<a href="#editar-equiporesguardo" onclick="editarInfoEquipoResguardo('{{ path('app_equipo_edit_resguardo', {'idEqu': equipo.idEqu}) }}')" data-toggle="modal" title="Editar equipo"><i class="fas fa-pen"></i></a>
{% endif %}
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="9">no records found</td>
</tr>
{% endif %}
</tbody>
</table>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</section>
<!-- /.content -->
</div>
<div class="modal hide" id="editar-equipo"></div>
<div class="modal hide" id="editar-equiporefaccion"></div>
<div class="modal hide" id="editar-equiporesguardo"></div>
{% endblock %}
{% block javascripts %}
<script src="{{ asset('plugins/datatables/jquery.dataTables.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-responsive/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/dataTables.buttons.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.bootstrap4.min.js') }}"></script>
<script src="{{ asset('plugins/jszip/jszip.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/pdfmake.min.js') }}"></script>
<script src="{{ asset('plugins/pdfmake/vfs_fonts.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.html5.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.print.min.js') }}"></script>
<script src="{{ asset('plugins/datatables-buttons/js/buttons.colVis.min.js') }}"></script>
<script src="{{ asset('plugins/toastr/toastr.min.js') }}"></script>
<script src="https://cdn.jsdelivr.net/gh/mgalante/jquery.redirect@master/jquery.redirect.js"></script>
<script type="text/javascript">
// Menu lateral
$("#catalogo").addClass("menu-open");
$("#catalogo").find('.nav-link:first').addClass("active");
$("#computo").addClass("active");
$(function () {
// DataTable
$('#table-equipo').DataTable({
"aaSorting": [],
orderCellsTop: true,
{# Define un valor predeterminado para LengthChange #}
"pageLength": 50,
"scrollX": true,
{# sDom: 'lrtip', #}
"bLengthChange" : true,
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
},
});
{% if form.unidad is defined %}
$("#unidad_filtro_unidad").on('change', function () {
aplicarFiltro();
});
$("#unidad_filtro_marca").on('change', function () {
aplicarFiltro();
});
$("#unidad_filtro_modelo").on('change', function () {
aplicarFiltro();
});
$("#unidad_filtro_uso").on('change', function () {
aplicarFiltro();
});
$("#unidad_filtro_estatus").on('change', function () {
aplicarFiltro();
});
{% endif %}
});
// Se envia el valor del id_equ
function postPdfRequest(idEqu) {
const form = document.createElement('form');
form.method = 'POST';
form.action = '{{ path('app_resguardo_equipo_pdf') }}';
form.target = '_blank';
const input = document.createElement('input');
input.type = 'hidden';
input.name = 'idEqu';
input.value = idEqu;
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
function aplicarFiltro() {
$("#table-equipo").find($("tbody")).html("<tr><td colspan='9' class='text-center'><i class='fas fa-spinner fa-pulse'></i></td></tr>");
let formData = new FormData(document.getElementById("form_unidad_filtro"));
$.ajax({
type: "POST",
url: '{{ path('app_equipo_index') }}',
data: formData, // Adjuntar los campos del formulario enviado.
dataType: "html",
cache: false,
contentType: false,
processData: false,
success: function (data) {
let datos = jQuery.parseJSON(data);
actualizarEquipo(datos);
},
error: function (data, text, error) {
let datos = jQuery.parseJSON(data.responseText);
}
});
}
function descargarExcel() {
let btn = $("#descargar_excel");
let formData = new FormData(document.getElementById("form_unidad_filtro"));
$.ajax({
type: "POST",
url: '{{ path('app_reporte_equipo_excel') }}',
data: formData, // Adjuntar los campos del formulario enviado.
cache: false,
contentType: false,
processData: false,
xhrFields: {
responseType: 'blob'
},
beforeSend: function () {
btn.prop('disabled', true);
btn.html("<i class='fas fa-spinner fa-pulse'></i> Descargar");
},
success: function (data) {
let a = document.createElement('a');
a.href = window.URL.createObjectURL(data);
a.download = "ReporteEquipoCómputo.xlsx"
a.click();
},
complete: function () {
btn.prop('disabled', false);
btn.html("<i class='fas fa-file-excel mr-2'></i> Descargar");
}
});
}
function descargarPDF() {
{% if form.unidad is defined %}
if ($("#unidad_filtro_unidad").val() === "") {
toastr.warning('Se debe seleccionar una Unidad administrativa');
return false;
}
{% endif %}
let btn = $("#descargar_pdf");
let formData = new FormData(document.getElementById("form_unidad_filtro"));
$.ajax({
type: "POST",
url: '{{ path('app_reporte_equipo_pdf') }}',
data: formData, // Adjuntar los campos del formulario enviado.
cache: false,
contentType: false,
processData: false,
xhrFields: {
responseType: 'blob'
},
beforeSend: function () {
btn.prop('disabled', true);
btn.html("<i class='fas fa-spinner fa-pulse'></i> Formato CE-1");
},
success: function (data) {
let a = document.createElement('a');
a.href = window.URL.createObjectURL(data);
a.download = "ReporteEquipoCómputo.pdf"
a.click();
},
complete: function () {
btn.prop('disabled', false);
btn.html("<i class='fas fa-file-pdf mr-2'></i> Formato CE-1");
}
});
}
function descargarPDF1(idEquipo) {
let btn = $("#descargar_pdf");
let formData = new FormData();
formData.append('idEquipo', idEquipo); // Agregar el idEquipo al FormData
$.ajax({
type: "POST",
url: '{{ path('app_resguardo_equipo_pdf') }}',
data: formData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
btn.prop('disabled', true);
btn.html("<i class='fas fa-spinner fa-pulse'></i> Formato CE-1");
},
success: function (response) {
if (response.success) {
// Descargar el PDF utilizando el enlace proporcionado
window.location.href = response.pdfUrl;
} else {
alert('Error al generar el PDF. Por favor, intenta nuevamente.');
}
},
error: function (xhr, status, error) {
alert('Se produjo un error al intentar generar el PDF. Por favor, intenta nuevamente.');
},
complete: function () {
btn.prop('disabled', false);
btn.html("<i class='fas fa-file-pdf mr-2'></i> Formato CE-1");
}
});
}
function editarInfoEquipo(url){
$('#editar-equipo').load(url, function ()
{
// configuración del Modal
$("#editar-equipo").on('hide.bs.modal', function () {
$(this).html('Cargando');
});
$(".modal-dialog").draggable;
editarInfoEquipoAjax(url)
})
}
function editarInfoEquipoResguardo(url){
$('#editar-equiporesguardo').load(url, function ()
{
// configuración del Modal
$("#editar-equiporesguardo").on('hide.bs.modal', function () {
$(this).html('Cargando');
});
$(".modal-dialog").draggable;
editarInfoEquipoResguardoAjax(url)
})
}
function editarInfoEquipoRefaccion(url){
$('#editar-equiporefaccion').load(url, function ()
{
// configuración del Modal
$("#editar-equiporefaccion").on('hide.bs.modal', function () {
$(this).html('Cargando');
});
$(".modal-dialog").draggable;
editarInfoEquipoRefaccionAjax(url)
})
}
function editarInfoEquipoAjax(url){
let send = $("#btn_equipo_guardar");
$('#btn_equipo_guardar').on('click', function () {
let formData = new FormData(document.getElementById("form-editar-equipo"));
$.ajax({
type: "POST",
url: url,
data: formData, // Adjuntar los campos del formulario enviado.
dataType: "json",
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
send.text("Actualizando "); // Para input de tipo button
send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
send.prop("disabled", true);
},
success: function (data) {
let datos = data;
let row = $('#idEqu-' + datos.idEqu);
row.find('.marbete').html(datos.marbete);
row.find('.descripcion').html(datos.descripcion);
row.find('.marca').html(datos.marca);
row.find('.modelo').html(datos.modelo);
/*row.find('.serie').html(datos.serie);
row.find('.tipo').html(datos.tipo);
row.find('.uso').html(datos.uso);*/
//row.find('.uso').html(datos.unidad.getNombre);
//row.find('.activo').html(datos.estatus);
if (datos.estatus === "En operacion") {
row.find('.estatus').html('<div class="badge bg-gradient-green d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Descompuesto") {
row.find('.estatus').html('<div class="badge bg-gradient-orange d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if (datos.estatus === "Sin instalar") {
row.find('.estatus').html('<div class="badge bg-gradient-primary d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "En proceso de baja") {
row.find('.estatus').html('<div class="badge bg-gradient-yellow d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Baja") {
row.find('.estatus').html('<div class="badge bg-gradient-danger d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
row.find('.emhv').html(datos.emhv);
row.find('.usuario').html(datos.usuario);
row.find('.ubicacion').html(datos.ubicacion);
$("#editar-equipo").modal('hide');
},
error: function (data, text, error) {
let datos = data.responseJSON;
$("#editar-equipo").html(datos.form);
editarInfoEquipoAjax(url);
},
complete: function (data) {
// Se ejecuta al termino de la petición
}
});
return false; // Evitar ejecutar el submit del formulario.
});
}
function editarInfoEquipoResguardoAjax(url){
let send = $("#btn_equipo_guardar");
$('#btn_equipo_guardar').on('click', function () {
let formData = new FormData(document.getElementById("form-editar-equipo"));
$.ajax({
type: "POST",
url: url,
data: formData, // Adjuntar los campos del formulario enviado.
dataType: "json",
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
send.text("Actualizando "); // Para input de tipo button
send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
send.prop("disabled", true);
},
success: function (data) {
let datos = data;
let row = $('#idEqu' + datos.idEqu);
row.find('.marbete').html(datos.marbete);
row.find('.descripcion').html(datos.descripcion);
row.find('.marca').html(datos.marca);
row.find('.modelo').html(datos.modelo);
/*row.find('.serie').html(datos.serie);
row.find('.tipo').html(datos.tipo);
row.find('.uso').html(datos.uso);*/
//row.find('.uso').html(datos.unidad.getNombre);
//row.find('.activo').html(datos.estatus);+
if (datos.estatus === "En operacion") {
console.log(1)
row.find('.estatus').html('<div class="badge bg-gradient-green d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Descompuesto") {
console.log(2)
row.find('.estatus').html('<div class="badge bg-gradient-orange d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if (datos.estatus === "Sin instalar") {
console.log(3)
row.find('.estatus').html('<div class="badge bg-gradient-primary d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "En proceso de baja") {
console.log(4)
row.find('.estatus').html('<div class="badge bg-gradient-yellow d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Baja") {
console.log(5)
row.find('.estatus').html('<div class="badge bg-gradient-danger d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
row.find('.emhv').html(datos.emhv);
row.find('.usuario').html(datos.usuario);
row.find('.ubicacion').html(datos.ubicacion);
$("#editar-equiporesguardo").modal('hide');
},
error: function (data, text, error) {
let datos = data.responseJSON;
$("#editar-equiporesguardo").html(datos.form);
editarInfoEquipoResguardoAjax(url);
},
complete: function (data) {
// Se ejecuta al termino de la petición
}
});
return false; // Evitar ejecutar el submit del formulario.
});
}
function editarInfoEquipoRefaccionAjax(url){
let send = $("#btn_equipo_guardar");
$('#btn_equipo_guardar').on('click', function () {
let formData = new FormData(document.getElementById("form-editar-equipo"));
$.ajax({
type: "POST",
url: url,
data: formData, // Adjuntar los campos del formulario enviado.
dataType: "json",
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
send.text("Actualizando "); // Para input de tipo button
send.append("<i class='fa fa-spinner fa-spin' style='font-size:16px'></i>");
send.prop("disabled", true);
},
success: function (data) {
let datos = data;
let row = $('#idEqu-' + datos.idEqu);
row.find('.marbete').html(datos.marbete);
row.find('.descripcion').html(datos.descripcion);
row.find('.marca').html(datos.marca);
row.find('.modelo').html(datos.modelo);
/*row.find('.serie').html(datos.serie);
row.find('.tipo').html(datos.tipo);
row.find('.uso').html(datos.uso);*/
//row.find('.uso').html(datos.unidad.getNombre);
//row.find('.activo').html(datos.estatus);
if (datos.estatus === "En operacion") {
row.find('.estatus').html('<div class="badge bg-gradient-green d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Descompuesto") {
row.find('.estatus').html('<div class="badge bg-gradient-orange d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if (datos.estatus === "Sin instalar") {
row.find('.estatus').html('<div class="badge bg-gradient-primary d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "En proceso de baja") {
row.find('.estatus').html('<div class="badge bg-gradient-yellow d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Baja") {
row.find('.estatus').html('<div class="badge bg-gradient-danger d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
row.find('.emhv').html(datos.emhv);
row.find('.usuario').html(datos.usuario);
row.find('.ubicacion').html(datos.ubicacion);
$("#editar-equiporefaccion").hide('hide');
$('.modal-backdrop').remove();
},
error: function (data, text, error) {
let datos = data.responseJSON;
$("#editar-equiporefaccion").html(datos.form);
editarInfoEquipoRefaccionAjax(url);
},
complete: function (data) {
// Se ejecuta al termino de la petición
}
});
return false; // Evitar ejecutar el submit del formulario.
});
}
<!-- Actualizar tabla de bitácora -->
function actualizarEquipo(data) {
$("#table-equipo").dataTable().fnClearTable();
$("#table-equipo").dataTable().fnDestroy();
var edit = "";
var downpdf = "";
var html = "";
$.each(data, function (key, equipo) {
{# Para edición del equipo #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'true' : 'false' }}) {
edit = ' <a href="#editar-equipo" onclick="editarInfoEquipo(\'' + equipo.editar + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
{# Solo para edición de estatus y reguardatario #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'false' : 'true' }}) {
edit = ' <a href="#editar-equiporesguardo" onclick="editarInfoEquipoResguardo(\'' + equipo.editar_resguardo + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
html +=
'<tr id="idEqu' + equipo.idEqu + '">' +
'<td class="marbete">' + equipo.marbete + '</td>' +
'<td class="descripcion">' + equipo.descripcion + '</td>' +
'<td class="marca">' + equipo.marca + '</td>' +
'<td class="modelo">' + equipo.modelo + '</td>' +
'<td class="uso">' + equipo.uso + '</td>' +
'<td class="estatus">' + equipo.estatus + '</td>' +
'<td class="emhv">' + equipo.emhv + '</td>' +
'<td class="unidad">' + equipo.unidad + '</td>' +
'<td class="usuario">' + equipo.usuario + '</td>' +
'<td class="ubicacion">' + equipo.ubicacion + '</td>' +
'<td class="text-right">' +
'<a href="#" onclick="postPdfRequest(' + equipo.idEqu + '); return false;" title="Generar resguardatario">' +
'<i class="fas fa-file-pdf mr-2"></i>' +
'</a>' +
'<a href="javascript: void(0)" data-id="' + equipo.idEqu + '" class="btn-redirect" title="Ver equipo"><i class="fas fa-eye"></i></a>' +
edit +
'</td>' +
'</tr>';
//cambiarEstatus('estatus/' + equipo.idEqu, 'estatus');
});
$("#table-equipo").find($("tbody")).html(html);
$('#table-equipo').DataTable({
"aaSorting": [],
orderCellsTop: true,
{# Define un valor predeterminado para LengthChange #}
"pageLength": 50,
"scrollX": true,
{# sDom: 'lrtip', #}
"bLengthChange" : true,
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
},
});
}
function actualizarEquipoResguardo(data) {
$("#table-equipo").dataTable().fnClearTable();
$("#table-equipo").dataTable().fnDestroy();
var edit = "";
var downpdf = "";
var html = "";
$.each(data, function (key, equipo) {
{# Para edición del equipo #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'true' : 'false' }}) {
edit = ' <a href="#editar-equipo" onclick="editarInfoEquipo(\'' + equipo.editar + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
{# Solo para edición de estatus y reguardatario #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'false' : 'true' }}) {
edit = ' <a href="#editar-equiporesguardo" onclick="editarInfoEquipoResguardo(\'' + equipo.editar_resguardo + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
html +=
'<tr id="idEqu' + equipo.idEqu + '">' +
'<td class="marbete">' + equipo.marbete + '</td>' +
'<td class="descripcion">' + equipo.descripcion + '</td>' +
'<td class="marca">' + equipo.marca + '</td>' +
'<td class="modelo">' + equipo.modelo + '</td>' +
'<td class="uso">' + equipo.uso + '</td>' +
'<td class="estatus">' + equipo.estatus + '</td>' +
'<td class="emhv">' + equipo.emhv + '</td>' +
'<td class="unidad">' + equipo.unidad + '</td>' +
'<td class="usuario">' + equipo.usuario + '</td>' +
'<td class="ubicacion">' + equipo.ubicacion + '</td>' +
'<td class="text-right">' +
'<a href="#" onclick="postPdfRequest(' + equipo.idEqu + '); return false;" title="Generar resguardatario">' +
'<i class="fas fa-file-pdf mr-2"></i>' +
'</a>' +
'<a href="javascript: void(0)" data-id="' + equipo.idEqu + '" class="btn-redirect" title="Ver equipo"><i class="fas fa-eye"></i></a>' +
edit +
'</td>' +
'</tr>';
//cambiarEstatus('estatus/' + equipo.idEqu, 'estatus');
});
$("#table-equipo").find($("tbody")).html(html);
$('#table-equipo').DataTable({
"aaSorting": [],
orderCellsTop: true,
{# Define un valor predeterminado para LengthChange #}
"pageLength": 50,
"scrollX": true,
{# sDom: 'lrtip', #}
"bLengthChange" : true,
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
},
});
}
<!-- Actualizar tabla de bitácora -->
function actualizarEquipoRefaccion(data) {
$("#table-equipo").dataTable().fnClearTable();
$("#table-equipo").dataTable().fnDestroy();
var edit = "";
var html = "";
$.each(data, function (key, equipo) {
{# Para edición del equipo #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'true' : 'false' }}) {
edit = ' <a href="#editar-equipo" onclick="editarInfoEquipo(\'' + equipo.editar + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
{# Solo para edición de estatus y reguardatario #}
if (('{{ nivel }}' === '1' || '{{ nivel }}' === '2') && {{ unidadActiva ? 'false' : 'true' }}) {
edit = ' <a href="#editar-equiporesguardo" onclick="editarInfoEquipoResguardo(\'' + equipo.editar_resguardo + '\')" data-toggle="modal" title="Modificar equipo"><i class="fas fa-pen"></i></a>';
}
html +=
'<tr id="idEqu' + equipo.idEqu + '">' +
'<td class="marbete">' + equipo.marbete + '</td>' +
'<td class="descripcion">' + equipo.descripcion + '</td>' +
'<td class="marca">' + equipo.marca + '</td>' +
'<td class="modelo">' + equipo.modelo + '</td>' +
'<td class="uso">' + equipo.uso + '</td>' +
'<td class="estatus">' + equipo.estatus + '</td>' +
'<td class="emhv">' + equipo.emhv + '</td>' +
'<td class="unidad">' + equipo.unidad + '</td>' +
'<td class="usuario">' + equipo.usuario + '</td>' +
'<td class="ubicacion">' + equipo.ubicacion + '</td>' +
'<td class="text-right">' +
'<a href="#" onclick="postPdfRequest(' + equipo.idEqu + '); return false;" title="Generar resguardatario">' +
'<i class="fas fa-file-pdf mr-2"></i>' +
'</a>' +
'<a href="javascript: void(0)" data-id="' + equipo.idEqu + '" class="btn-redirect" title="Ver equipo"><i class="fas fa-eye"></i></a>' +
edit +
'</td>' +
'</tr>';
//cambiarEstatus('estatus/' + equipo.idEqu, 'estatus');
});
$("#table-equipo").find($("tbody")).html(html);
$('#table-equipo').DataTable({
"aaSorting": [],
orderCellsTop: true,
{# Define un valor predeterminado para LengthChange #}
"pageLength": 50,
"scrollX": true,
{# sDom: 'lrtip', #}
"bLengthChange" : true,
language: {
url: 'https://cdn.datatables.net/plug-ins/1.10.22/i18n/Spanish.json'
},
});
}
function cambiarEstatus(url, accion) {
$.ajax({
url: url,
dataType: "json",
cache: false,
contentType: false,
processData: false,
success: function (data) {
let datos = data;
let row = $('#idEqu'+ datos.idEqu);
if (datos.estatus === "En operacion") {
row.find('.estatus').html('<div class="badge bg-gradient-green d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Descompuesto") {
row.find('.estatus').html('<div class="badge bg-gradient-orange d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if (datos.estatus === "Sin instalar") {
row.find('.estatus').html('<div class="badge bg-gradient-primary d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "En proceso de baja") {
row.find('.estatus').html('<div class="badge bg-gradient-yellow d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
if(datos.estatus === "Baja") {
row.find('.estatus').html('<div class="badge bg-gradient-danger d-block" style="width: 8rem;">' + datos.estatus + '</div>');
}
//alertMessage(0, datos.mensaje);
},
error: function (data, text, error) {
alertMessage(1, error);
},
complete: function (data) {
// Se ejecuta al termino de la petición
}
});
}
</script>
<script>
$(function () {
$(document).on('click', '.btn-redirect', function(){
let data = $(this).attr('data-id');
$.redirect("{{ path('app_equipo_show') }}", {idEqu: data}, "POST", "_self");
});
});
</script>
{% endblock %}