templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <title>{% block title %}Consejo de la Magistratura de Buenos Aires{% endblock %}</title>
  6.         {# Run `composer require symfony/webpack-encore-bundle`
  7.            and uncomment the following Encore helpers to start using Symfony UX #}
  8.         <meta name="viewport" content="width=device-width, initial-scale=1">
  9.         <link rel="icon" href="https://www.cmagistratura.gba.gov.ar/core/misc/favicon.ico">
  10.         {% block stylesheets %}
  11.             {#{{ encore_entry_link_tags('app') }}#}
  12.             <link rel="stylesheet" href="{{ asset('css/vendors.min.css', 'portal') }}" />
  13.             <link rel="stylesheet" href="{{ asset('css/materialize.css', 'portal') }}" />
  14.             <link rel="stylesheet" href="{{ asset('css/style_vertical.css', 'portal') }}" />
  15.             <link rel="stylesheet" href="{{ asset('css/custom.css', 'portal') }}" /> 
  16.             <link rel="stylesheet/less" type="text/css" href="{{ asset('less/app.less', 'portal') }}" />
  17.             <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" >
  18.             <link rel="stylesheet" href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css">
  19.             <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.2.3/css/buttons.dataTables.min.css">
  20.         {% endblock %}
  21.     </head>
  22.     <body class="backcolor">
  23.          <!-- Encabezado -->
  24.         <header class="page-topbar" id="header">
  25.             <div class="navbar navbar-fixed">
  26.                 <nav class="navbar-main navbar-color nav-collapsible sideNav-lock">
  27.                     <div class="nav-wrapper">
  28.                         <div class="titulo hide-on-med-and-down">{{ modulo_nombre }}</div>
  29.                         <ul class="navbar-list right hide-on-small-only">
  30.                             
  31.                             <li> <a class="waves-effect waves-block waves-light" href="{{ path('app_logout') }}">Cerrar sesión</a> </li>
  32.                         </ul>
  33.                     </div>
  34.                 </nav>
  35.             </div>
  36.         </header>
  37.         {% block dialogos_modales %}{% endblock %}
  38.         <div id="modalLaoding" class="modal">
  39.             <div class="modal-content">
  40.                 <h4>Procesando ...</h4>
  41.                 <div class="progress">
  42.                     <div class="indeterminate"></div>
  43.                 </div>
  44.             </div>
  45.         </div>
  46.         <!-- Menú -->
  47.         {% include 'menu.html.twig' %}
  48.     
  49.         <div id="main">
  50.             <div class="wrapper">
  51.                 <section id="content">
  52.                     
  53.                     <div class="container center hide-on-large-only">
  54.                         <h4 class="cyan-text">{{ modulo_nombre }}</h4>
  55.                     </div>
  56.                     <div class="divider mt-2 hide-on-large-only"></div>
  57.                     
  58.                     <!-- Breadcrum -->
  59.                     <div id="breadcrumbs-wrapper" class="hide-on-small-only">
  60.                         <div class="row">
  61.                             <div class="col s12 m6 l7">
  62.                                 {% block breadcrumb %}{% endblock %}
  63.                             </div>
  64.                         </div>
  65.                     </div>
  66.                     <div class="container">
  67.                         <div class="section">
  68.                             <div class="row">
  69.                                 <div class="col s12 l12">
  70.                                     {% block titulo_body %}{% endblock %}
  71.                                 </div>
  72.                             </div>
  73.                             {% block body_actions %}{% endblock %}
  74.                             {% block body %} 
  75.                                 <div class="card">
  76.                                     <div class="card-content">
  77.                                         {% block body_card %} {% endblock %}                              
  78.                                     </div>
  79.                                 </div>
  80.                             {% endblock %} 
  81.                             
  82.                         </div>
  83.                     </div>
  84.                 </section>
  85.             </div>
  86.         </div>
  87.     
  88.         <footer class="page-footer footer footer-static footer-light grey gba">
  89.             <div class="footer-copyright">
  90.                 <div class="container"></div>
  91.             </div>
  92.         </footer> 
  93.         {% block javascripts %}
  94.             {#{{ encore_entry_script_tags('app') }}#}
  95.             <script type="text/javascript" src="{{ asset('js/jquery/jquery-3.5.1.js', 'portal') }}"></script>
  96.             <script type="text/javascript" src="{{ asset('js/less/less.js', 'portal') }}"></script>
  97.             <script type="text/javascript" src="{{ asset('js/materialize.js', 'portal') }}"></script>
  98.             <script type="text/javascript" src="{{ asset('js/perfect-scrollbar.min.js', 'portal') }}"></script>
  99.             <script type="text/javascript" src="{{ asset('js/plugins.js', 'portal') }}"></script>
  100.             <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
  101.             <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
  102.             <script src="https://cdn.datatables.net/buttons/2.2.3/js/dataTables.buttons.min.js"></script>
  103.             <script src="https://cdn.datatables.net/buttons/2.2.3/js/buttons.html5.min.js"></script>
  104.             <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
  105.             <script src="https://cdn.datatables.net/buttons/2.2.3/js/buttons.colVis.min.js"></script>
  106.             <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
  107.             <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
  108.             <script type="text/javascript" src={{ asset('js/init.js', 'portal') }}></script>
  109.             
  110.             {% block javascripts_base %}{% endblock %}
  111.             <script type="text/javascript">
  112.                 /**
  113.                 * Fix the displayed date format when opening the calendar for the 
  114.                 * first time since there's no setting to do it otherwise.
  115.                 */
  116.                 function initDateFormat( datePicker ) {
  117.                     console.debug(datePicker);
  118.                     var selectedDate = ( typeof datePicker.date === 'undefined' || datePicker.date === null ) ? datePicker.options.defaultDate : datePicker.date;
  119.                     var shortWeekdays = datePicker.options.i18n.weekdaysShort; 
  120.                     var shortMonths = datePicker.options.i18n.monthsShort; 
  121.                     var day     = selectedDate.getDate();
  122.                     var weekday = shortWeekdays[ selectedDate.getDay() ];
  123.                     var month   = shortMonths[ selectedDate.getMonth() ];
  124.                     var formattedDate = weekday + ', ' + day + ' ' + month;
  125.                     document.querySelector(".datepicker-date-display .date-text").innerHTML = formattedDate;
  126.                     document.querySelector(".datepicker-date-display .year-text").innerHTML = selectedDate.getFullYear();
  127.                 }
  128.                 function inicializarDatePicker(
  129.                     p_defaultDate,
  130.                     p_yearRange,
  131.                     p_maxDate,
  132.                     p_setDefaultDate
  133.                 )
  134.                 {
  135.                     $('.datepicker').datepicker({
  136.                         autoClose: true,
  137.                         showClearBtn: true,
  138.                         format: 'dd/mm/yyyy',
  139.                         container: 'body',
  140.                         defaultDate: p_defaultDate,
  141.                         yearRange: p_yearRange,
  142.                         maxDate: p_maxDate,
  143.                         setDefaultDate: p_setDefaultDate,
  144.                         onDraw: function (datePicker) { 
  145.                             // materialize select dropdown not proper working on mobile and tablets so we make it browser default select
  146.                             $('.datepicker-container').find('.datepicker-select').addClass('browser-default');
  147.                             $(".datepicker-container .select-dropdown.dropdown-trigger").remove();
  148.                         },
  149.                         onOpen: function (p) {
  150.                             var instance = M.Datepicker.getInstance(this.el);
  151.                             var d = instance.el.value.split(/[^0-9]/);
  152.                             var newDate = new Date(d[2], d[1] - 1, d[0]);
  153.                             instance.setDate(newDate);
  154.                             initDateFormat(instance);
  155.                         },
  156.                         i18n: {
  157.                             cancel:    'Cancelar',
  158.                             clear: 'Limpiar',
  159.                             done: 'Aceptar',
  160.                             weekdays: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
  161.                             weekdaysShort: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
  162.                             weekdaysAbbrev: ["D", "L", "M", "M", "J", "V", "S"],
  163.                             today: 'Hoy',
  164.                             months: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
  165.                             monthsShort: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
  166.                         }
  167.                     });
  168.                 }
  169.                 var activarModalAjax = true;
  170.                 $(document).on({
  171.                     ajaxStart: function(){
  172.                         if(activarModalAjax)
  173.                         {
  174.                             $('#modalLaoding').modal({dismissible: false,});
  175.                             $('#modalLaoding').modal('open');
  176.                             //Procesamiento, para mover el fondo bloqueante, detras del modal
  177.                             acomodarFondo($('#modalLaoding'));
  178.                         }
  179.                     },
  180.                     ajaxStop: function(){ 
  181.                         $('#modalLaoding').modal('close');
  182.                     }    
  183.                 });
  184.                 function acomodarFondo(elemento) {
  185.                     //const zIndex = 1000 + 10 * $('.modal:visible').length;
  186.                     const zIndexViejo = $(elemento).css('z-index');
  187.                     $(elemento).css('z-index', parseInt(zIndexViejo) + 1);
  188.                     setTimeout(() => elemento.next().css('z-index', zIndexViejo));
  189.                 }
  190.             
  191.                 $(document).ready(function(){
  192.                     
  193.                     {# Mensajes flash/alerts #}
  194.                     {% for label, messages in app.flashes %}
  195.                         var texto_alert = '{{ messages|join("<br/>")|raw }}';
  196.                         {% if label == 'notice' %}
  197.                             swal({
  198.                                 title: "Éxito",
  199.                                 content: {
  200.                                     element: 'p',
  201.                                     attributes: {
  202.                                       innerHTML: texto_alert,
  203.                                     },
  204.                                 },
  205.                                 icon: "success"
  206.                             });
  207.                         {% elseif label == 'error' %}
  208.                             swal({
  209.                                 title: "Error",
  210.                                 content: {
  211.                                     element: 'p',
  212.                                     attributes: {
  213.                                       innerHTML: texto_alert,
  214.                                     },
  215.                                 },
  216.                                 icon: "error"
  217.                             });
  218.                         {% elseif label == 'warning' %}
  219.                             swal({
  220.                                 title: "Aviso",
  221.                                 content: {
  222.                                     element: 'p',
  223.                                     attributes: {
  224.                                       innerHTML: texto_alert,
  225.                                     },
  226.                                 },
  227.                                 icon: "warning"
  228.                             });
  229.                         {% endif %}
  230.                     {% endfor %}
  231.                     {% block js_document_ready %}{% endblock %}
  232.                 });
  233.             </script>
  234.         {% endblock %}
  235.     </body>
  236. </html>