templates/solicitud/modal.html.twig line 1

Open in your IDE?
  1. {% block stylesheets %}
  2.     <style>
  3.         fieldset
  4.         {
  5.             border: 1px solid #bbbbbb !important;
  6.             margin: 0;
  7.             min-width: 0;
  8.             padding: 10px;
  9.             position: relative;
  10.             border-radius:4px;
  11.             background-color:#f5f5f5;
  12.         }
  13.         legend
  14.         {
  15.             font-size: 15px;
  16.             font-weight: bold;
  17.             margin-bottom: 0;
  18.             width: 35%;
  19.             border: 1px solid #bbbbbb;
  20.             border-radius: 4px;
  21.             padding: 5px 5px 5px 10px;
  22.             background-color: #cecece;
  23.         }
  24.         label {
  25.             font-size: 14px;
  26.             color: #5C5A5A;
  27.         }
  28.     </style>
  29. {% endblock %}
  30. {# Plantilla de Twig #}
  31. {% form_theme form 'bootstrap_4_layout.html.twig' %}
  32. <!-- Modal with form -->
  33. <!-- div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true" -->
  34. <div class="modal-dialog modal-lg" role="document">
  35.     <div class="modal-content p-4">
  36.         <div class="modal-header">
  37.             <h5 class="modal-title" id="exampleModalLabel"><b>Modificación de Solicitud : </b><b><span class="text-success">{{ solicitud.idSol }}</span></b><small></small></h5>
  38.             <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  39.                 <span aria-hidden="true">&times;</span>
  40.             </button>
  41.         </div>
  42.         <div class="modal-body">
  43.             {# Datos del equipo #}
  44.             <div class="card">
  45.                 <div class="card-header " class=""  style="background: #75BFFF">
  46.                     <h3 class="card-title text-center" >Datos de la solicitud del equipo - {{ solicitud.idSol }}</h3>
  47.                     {# <div class="card-tools">
  48.                         <button type="button" class="btn btn-tool" data-card-widget="collapse" title="Collapse">
  49.                             <i class="fas fa-minus"></i>
  50.                         </button>
  51.                     </div> #}
  52.                 </div>
  53.                 <div class="card-body">
  54.                     <div><strong>Usuario:</strong> {{solicitud.usuario}} {{solicitud.usuario.pApellido}}{{solicitud.usuario.sApellido}} &nbsp;&nbsp;&nbsp;&nbsp;<strong>Correo:</strong> {{solicitud.usuario.correo}} </div>
  55.                     <div class="card-body">
  56.                         {{ form_start(form, {'attr': {'class': 'form-horizontal', 'id': 'form-editar-solicitud'}}) }}
  57.                         {# Datos del equipo #}
  58.                         <input type="hidden" name="_solicitud" value="{{ solicitud.idSol }}">
  59.                         <div class="row">
  60.                             <div class="col-lg">{{ form_row(form.falla, { 'attr': {'readonly': 'false'} }) }}</div>
  61.                         </div>
  62.                         <div class="row">
  63.                             <div class="col-lg">{{ form_row(form.srealizado) }}</div>
  64.                         </div>
  65.                         <div class="row">
  66.                             <div class="col-lg">{{ form_row(form.tipoEquipo, { 'attr': {'readonly': 'false'} } ) }}</div>
  67.                             <div class="col-lg">{{ form_row(form.refacciones ) }}</div>
  68.                             <div class="col-lg">{{ form_row(form.estatus ) }}</div>
  69.                         </div>
  70.                         <div class="row table-refaccion">
  71.                             <div class="col"></div>
  72.                         </div>
  73.                         <span class="mensajeError text-danger" style="display: none"></span>
  74.                         {#<div class="row">
  75.                             <div class="col-lg">{{ form_row(form.tipoMantenimiento ) }}</div>
  76.                             <div class="col-lg">{{ form_row(form.usuario) }}</div>
  77.                         </div>#}
  78.                         {{ form_end(form) }}
  79.                         <br>
  80.                         <div class="row">
  81.                             <div class="col text-center">
  82.                                 <button class="btn btn-outline-success" id="btn_solicitud_guardar">{{ button_label|default('Guardar') }}</button>
  83.                             </div>
  84.                             <div class="col text-center">
  85.                                 <button type="button" class="btn btn-outline-primary" data-dismiss="modal" aria-label="Close">
  86.                                     Cancelar
  87.                                 </button>
  88.                             </div>
  89.                         </div>
  90.                     </div>
  91.                 </div>
  92.             </div>
  93.         </div>
  94.     </div>
  95. </div>
  96. {% block javascripts %}
  97. <script type="text/javascript">
  98.     $(document).ready(function() {
  99.         usoRefacciones();
  100.     });
  101.     function usoRefacciones(){
  102.         const selectElement = document.querySelector('#solicitud_refacciones');
  103.         let formData = new FormData(document.getElementById("form-editar-solicitud"));
  104.         let html = '';
  105.         let body = '';
  106.         $.ajax({
  107.             type: "POST",
  108.             url: '{{ path('app_solicitud_modal') }}',
  109.             dataType: "json",
  110.             cache: false,
  111.             contentType: false,
  112.             processData: false,
  113.             success: function (data){
  114.                 for (let i = 0; i < data.catComponente.length; i++) {
  115.                     body += '<tr>' +
  116.                         '<td>' + (data.catComponente[i]['tipo'] ?? '') + '</td>' +
  117.                         '<td>' + (data.catComponente[i]['marca'] ?? '') + '</td>' +
  118.                         '<td>' + (data.catComponente[i]['modelo'] ?? '') + '</td>' +
  119.                         '<td>' + (data.catComponente[i]['nucleos'] ?? '') + '</td>' +
  120.                         '<td>' + (data.catComponente[i]['velocidad'] ?? '') + '</td>' +
  121.                         '<td>' + (data.catComponente[i]['capacidad_memoria'] ?? '') + '</td>' +
  122.                         '<td><input type="checkbox" class="refaccion-checkbox" name="componente[]" value="' + data.catComponente[i]['id_inventario'] + '" data-id="' + data.catComponente[i]['id_inventario'] + '" data-tipo="' + data.catComponente[i]['tipo'] + '" data-nucleos="' + data.catComponente[i]['nucleos'] + '" data-velocidad="' + data.catComponente[i]['velocidad'] + '" data-capacidad="' + data.catComponente[i]['capacidad_memoria'] + '" data-marca="' + data.catComponente[i]['marca'] + '" data-modelo="' + data.catComponente[i]['modelo'] + '"></td>' +
  123.                         '</tr>';
  124.                 }
  125.             },
  126.             error: function (data, text, error) {
  127.             },
  128.             complete: function () {
  129.                 const valorSeleccionado = selectElement.value;
  130.                 html = '<table id="refacciones-table" class="table">' +
  131.                     '<thead>' +
  132.                     '<tr>' +
  133.                     '<th>Tipo</th>' +
  134.                     '<th>Marca</th>' +
  135.                     '<th>Modelo</th>' +
  136.                     '<th>Núcleos</th>' +
  137.                     '<th>Velocidad</th>' +
  138.                     '<th>Cap_memoria</th>' +
  139.                     '<th>Utilizar</th>' +
  140.                     '</tr>' +
  141.                     '</thead>' +
  142.                     '<tbody>' +
  143.                     body +
  144.                     '</tbody>' +
  145.                     '</table>';
  146.                 if (valorSeleccionado === '1') {
  147.                     $('.table-refaccion').html(html);
  148.                 } else {
  149.                     $('.table-refaccion').html('');
  150.                 }
  151.             }
  152.         });
  153.         selectElement.addEventListener('change', function(event) {
  154.             const selectedOption = this.options[this.selectedIndex];
  155.             if (selectedOption.value === '1') {
  156.                 html = '<table id="refacciones-table" class="table">' +
  157.                     '<thead>' +
  158.                     '<tr>' +
  159.                     '<th>Tipo</th>' +
  160.                     '<th>Marca</th>' +
  161.                     '<th>Modelo</th>' +
  162.                     '<th>Núcleos</th>' +
  163.                     '<th>Velocidad</th>' +
  164.                     '<th>Cap_memoria</th>' +
  165.                     '<th>Utilizar</th>' +
  166.                     '</tr>' +
  167.                     '</thead>' +
  168.                     '<tbody>' +
  169.                     body +
  170.                     '</tbody>' +
  171.                     '</table>';
  172.                 $('.table-refaccion').html(html);
  173.             } else {
  174.                 $('.table-refaccion').html('');
  175.             }
  176.         });
  177.     }
  178. </script>
  179. {% endblock %}