templates/Frontend/base.html.twig line 41

Open in your IDE?
  1. <!doctype html>
  2. <html lang="en">
  3.     <head>
  4.         <!-- Required meta tags -->
  5.         <meta charset="utf-8">
  6.         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  7.         <meta name="description" content="Tu tienda online fácil y rápido">
  8.         <!--meta name="keywords" content="tienda online, app, ecommerce, website"-->
  9.         <!-- Font -->
  10.         <link rel="dns-prefetch" href="http://fonts.googleapis.com">
  11.         <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700|Playfair+Display:400,700|Poppins:200,300,400,400i,500,700&display=swap" rel="stylesheet">
  12.         <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
  13.         <!-- Bootstrap CSS -->
  14.         <link rel="stylesheet" href="{{ asset('assets_original/css/bootstrap4.min.css') }}">        
  15.         <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css"> 
  16.         <link rel="stylesheet" href="{{ asset('assets_original/bundles/ecommerce/animate/animate.css') }}">
  17.         <link rel="stylesheet" href="{{ asset('assets_original/bundles/dattaAble/assets/css/pages/pnotify.css') }}">
  18.         <link rel="stylesheet" href="{{ asset('assets_original/bundles/ecommerce/css-hamburgers/hamburgers.min.css') }}">        
  19.         <link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet">
  20.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/animsition/css/animsition.min.css') }}">
  21.     <!--===============================================================================================-->
  22.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/select2/select2.min.css') }}">
  23.     <!--===============================================================================================-->    
  24.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/datepicker/bootstrap-datepicker3.min.css') }}">
  25.     <!--===============================================================================================-->
  26.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/slick/slick.css') }}">
  27.     <!--===============================================================================================-->
  28.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/MagnificPopup/magnific-popup.css') }}">
  29.     <!--===============================================================================================-->
  30.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/perfect-scrollbar/perfect-scrollbar.css') }}">
  31.     <!--===============================================================================================-->
  32.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/util.css') }}">    
  33.     <!--===============================================================================================-->    
  34.         <link rel="stylesheet" href="{{ asset('assets_original/bundles/dattaAble/assets/plugins/material-datetimepicker/css/bootstrap-material-datetimepicker.css') }}">    
  35.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/main.css') }}">
  36.         <link rel="stylesheet" type="text/css" href="{{ asset('assets_original/bundles/ecommerce/animate.css') }}">    
  37.         <link href="https://unpkg.com/leaflet@1.0.1/dist/leaflet.css" rel="stylesheet"/>
  38.         
  39.         {{ render(controller('App\\Controller\\Frontend\\MainController::customStylesAction')) }}
  40.         {#{ render(controller("AppBundle:Frontend/Main:customStyles")) }#}
  41.                      
  42.         {% block css %}{% endblock %}
  43.         <title> 
  44.             {{ render(controller('App\\Controller\\Frontend\\MainController::titleAction')) }}
  45.             {#{ render(controller("AppBundle:Frontend/Main:title")) }#}            
  46.         </title>
  47.         {% block extra_head %}{% endblock %}
  48.     </head>
  49.     <body>
  50.         <div id="throbber" style="display:none;color:#fff;">
  51.             <h1><i class='fa fa-spin fa-spinner'></i></h1>
  52.         </div>
  53.     
  54.         {#{ render(controller("AppBundle:Frontend/Main:mainMenu")) }#}
  55.         {{ render(controller('App\\Controller\\Frontend\\MainController::mainMenuAction')) }}
  56.         
  57.         {% block body %}{% endblock %}
  58.       
  59.         {#{ render(controller("AppBundle:Frontend/Footer:footer")) }#}
  60.         {{ render(controller('App\\Controller\\Frontend\\FooterController::footerAction')) }}
  61.         
  62.         
  63.     <!-- Back to top -->
  64.     <div class="btn-back-to-top" id="myBtn">
  65.         <span class="symbol-btn-back-to-top">
  66.             <i class="zmdi zmdi-chevron-up"></i>
  67.         </span>
  68.     </div>
  69.         
  70.     
  71.         <style>
  72.             .inactive{
  73.                 color: #666666 !important;
  74.             }
  75.             .inactive:hover{
  76.                 color:rgb(0,86,179) !important;
  77.             }
  78.             .active{
  79.                 color: #007bff !important;
  80.             }
  81.            .dataTables_wrapper .dataTables_filter input {
  82.               
  83.                 border: 1px solid #ccc;
  84.             }
  85.           
  86.             /*set a border on the images to prevent shifting*/
  87.             #gallery_01 img{border:2px solid white;}
  88.             /*Change the colour*/
  89.             .elevatezoom-gallery active{border:2px solid #333 !important;}
  90.             .image-gallery{
  91.                 margin-bottom: 6px !important;
  92.                 border: 1px solid #eee !important;               
  93.                 width: 70px;
  94.                 height: 70px;
  95.             }
  96.             .image-gallery:hover{
  97.                 background-color: #eee;
  98.             }    
  99.             .clearfix {
  100.                 display: block;
  101.                 width: 100%;
  102.                 float: left;
  103.             }
  104.             
  105.             .image1{
  106.                 position: relative !important;
  107.                 border: 1px solid #eee;
  108.                 min-width: 100%;
  109.                 display:block;
  110.                 max-width: 100%;
  111.                 height: auto;
  112.             }
  113.         </style>
  114. <!--===============================================================================================-->    
  115.     <script src="{{ asset('assets_original/bundles/ecommerce/jquery/jquery-3.2.1.min.js') }}"></script>    
  116. <!--===============================================================================================-->
  117.     <script src="{{ asset('assets_original/bundles/ecommerce/animsition/js/animsition.min.js') }}"></script>
  118. <!--===============================================================================================-->
  119.     <script src="{{ asset('assets_original/bundles/ecommerce/bootstrap/js/popper.js') }}"></script>
  120.     <script src="{{ asset('assets_original/bundles/ecommerce/bootstrap/js/bootstrap.min.js') }}"></script>
  121. <!--===============================================================================================-->
  122.     <script src="{{ asset('assets_original/bundles/ecommerce/select2/select2.min.js') }}"></script>
  123.         <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
  124.     <script>
  125.         $(".js-select2").each(function(){
  126.             $(this).select2({
  127.                 minimumResultsForSearch: 20,
  128.                 dropdownParent: $(this).next('.dropDownSelect2')
  129.             });
  130.         })
  131.     </script>
  132. <!--===============================================================================================-->
  133.     <script src="{{ asset('assets_original/bundles/ecommerce/daterangepicker/moment.min.js') }}"></script>
  134.     <!--script src="vendor/daterangepicker/daterangepicker.js"></script-->
  135.     <script src="{{ asset('assets_original/bundles/ecommerce/datepicker/bootstrap-datepicker.min.js') }}"></script>
  136.     <script src="{{ asset('assets_original/bundles/ecommerce/datepicker/bootstrap-datepicker.es.min.js') }}"></script>
  137. <!--===============================================================================================-->
  138.     {#<script src="{{ asset('assets_original/bundles/ecommerce/slick/slick.js') }}"></script>
  139.     <script src="{{ asset('assets_original/bundles/ecommerce/slick-custom.js') }}"></script>#}
  140. <!--===============================================================================================-->
  141.     <script src="{{ asset('assets_original/bundles/ecommerce/parallax100/parallax100.js') }}"></script>
  142.     <script>
  143.         $('.parallax100').parallax100();
  144.     </script>
  145. <!--===============================================================================================-->
  146.     <script src="{{ asset('assets_original/bundles/ecommerce/MagnificPopup/jquery.magnific-popup.min.js') }}"></script>
  147.     <script>
  148.         function startMagnific()
  149.         {
  150.             $('.gallery-lb').each(function() { // the containers for all your galleries
  151.                 $(this).magnificPopup({
  152.                     delegate: 'a', // the selector for gallery item
  153.                     type: 'image',
  154.                     gallery: {
  155.                         enabled:true
  156.                     },
  157.                     mainClass: 'mfp-fade'
  158.                 });
  159.             });
  160.         }
  161.     </script>
  162. <!--===============================================================================================-->
  163.     <script src="{{ asset('assets_original/bundles/ecommerce/isotope/isotope.pkgd.min.js') }}"></script>
  164. <!--===============================================================================================-->
  165.     <script src="{{ asset('assets_original/bundles/ecommerce/jquery/jquery.elevatezoom.min.js') }}"></script>    
  166.     
  167.     <script src="{{ asset('assets_original/bundles/ecommerce/sweetalert/sweetalert.min.js') }}"></script>    
  168.     <script src="https://unpkg.com/leaflet@1.0.1/dist/leaflet.js"></script>
  169.     <script src="{{ asset('assets_original/bundles/ecommerce/Control.OSMGeocoder.js') }}"></script>
  170.     <script src="{{ asset('assets_original/bundles/ecommerce/OSMLocationPicker.js') }}"></script>
  171.     <script src="{{ asset('assets_original/bundles/ecommerce/parsley.min.js') }}"></script>    
  172.     <script src="{{ asset('assets_original/bundles/ecommerce/parsley.es.js') }}"></script>    
  173.     <script src="{{ asset('assets_original/bundles/ecommerce/cleave.min.js') }}"></script>
  174.     <script src="{{ asset('assets_original/bundles/ecommerce/jquery.confetti.js') }}"></script>    
  175.         <script src="{{ asset('assets_original/bundles/ecommerce/jquery.validate.min.js') }}"></script>
  176.         <script src="{{ asset('assets_original/bundles/dattaAble/assets/plugins/pnotify/js/pnotify.custom.min.js') }}"></script>
  177.     <script src="{{ asset('assets_original/bundles/dattaAble/assets/plugins/material-datetimepicker/js/bootstrap-material-datetimepicker.js') }}"></script>    
  178.     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.blockUI/2.70/jquery.blockUI.min.js"></script>
  179.     <!--script src="https://s3.amazonaws.com/documentacionpagalo/archivos/cybs_devicefingerprint.js"></script-->    
  180. <!--===============================================================================================-->
  181.     <script src="{{ asset('assets_original/bundles/ecommerce/perfect-scrollbar/perfect-scrollbar.min.js') }}"></script>
  182.     <script>
  183.         $('.js-pscroll').each(function(){
  184.             $(this).css('position','relative');
  185.             $(this).css('overflow','hidden');
  186.             var ps = new PerfectScrollbar(this, {
  187.                 wheelSpeed: 1,
  188.                 scrollingThreshold: 1000,
  189.                 wheelPropagation: false,
  190.             });
  191.             $(window).on('resize', function(){
  192.                 ps.update();
  193.             })
  194.         });
  195.     </script>
  196.     <script src="{{ asset('assets_original/bundles/ecommerce/main.js') }}"></script>
  197.         <script type="text/javascript">
  198.         $(function () {
  199.             if ($(".dataTable").length > 0) {
  200.                 var table = $('.dataTable').DataTable({
  201.                     "language": {
  202.                         "sProcessing": "Procesando...",
  203.                         "sLengthMenu": "Mostrar _MENU_ registros",
  204.                         "sZeroRecords": "No se encontraron resultados",
  205.                         "sEmptyTable": "Ningún dato disponible en esta tabla",
  206.                         "sInfo": "Mostrando del _START_ al _END_ de _TOTAL_ registros",
  207.                         "sInfoEmpty": "Mostrando del 0 al 0 de total de 0 registros",
  208.                         "sInfoFiltered": "(filtrado de _MAX_ registros)",
  209.                         "sInfoPostFix": "",
  210.                         "sSearch": "Buscar:",
  211.                         "sUrl": "",
  212.                         "sInfoThousands": ",",
  213.                         "sLoadingRecords": "Cargando...",
  214.                         "oPaginate": {
  215.                             "sFirst": "Primero",
  216.                             "sLast": "Último",
  217.                             "sNext": "Siguiente",
  218.                             "sPrevious": "Anterior"
  219.                         },
  220.                         "oAria": {
  221.                             "sSortAscending": ": Activar para ordenar la columna de manera ascendente",
  222.                             "sSortDescending": ": Activar para ordenar la columna de manera descendente"
  223.                         }
  224.                     }
  225.                 });
  226.             }         
  227.         });
  228.         var idioma_español = {
  229.             "sProcessing": "Procesando...",
  230.             "sLengthMenu": "Mostrar _MENU_ registros",
  231.             "sZeroRecords": "No se encontraron resultados",
  232.             "sEmptyTable": "Ningún dato disponible en esta tabla",
  233.             "sInfo": "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
  234.             "sInfoEmpty": "Mostrando registros del 0 al 0 de un total de 0 registros",
  235.             "sInfoFiltered": "(filtrado de un total de _MAX_ registros)",
  236.             "sInfoPostFix": "",
  237.             "sSearch": "Buscar:",
  238.             "sUrl": "",
  239.             "sInfoThousands": ",",
  240.             "sLoadingRecords": "Cargando...",
  241.             "oPaginate": {
  242.                 "sFirst": "Primero",
  243.                 "sLast": "Último",
  244.                 "sNext": "Siguiente",
  245.                 "sPrevious": "Anterior"
  246.             },
  247.             "oAria": {
  248.                 "sSortAscending": ": Activar para ordenar la columna de manera ascendente",
  249.                 "sSortDescending": ": Activar para ordenar la columna de manera descendente"
  250.             }
  251.         };
  252.         $("input[type='search']").css("border", "1px solid #ccc");
  253.     </script>
  254.     <script>
  255.     
  256.         function register()
  257.         {
  258.             var password  = $('#password').val();
  259.             var passwordc = $('#confirm_password').val();
  260.             var email     = $('#email').val();
  261.             var name      = $('#name').val();
  262.             var regex     = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  263.             
  264.                 $('#email_incorrect').hide();
  265.                 if(name == '' || password == '' || passwordc == '' || email == '' || name == '')
  266.             {
  267.                $('#form_incorrect').show(); 
  268.                return false;
  269.             }else if(! regex.test(email)){
  270.                    $('#form_incorrect').hide(); 
  271.                    $('#email_incorrect').show();
  272.                    return false;
  273.                 }
  274.             
  275.             $('#form_incorrect').hide(); 
  276.             
  277.             var saveButton = document.getElementById("btn-register");      
  278.             saveButton.setAttribute("disabled", true);
  279.             saveButton.innerHTML = "<span class='fa fa-spinner fa-spin' role='status'></span> Cargando...";
  280.             
  281.             if(password != passwordc){
  282.                 $('#password_incorrect').show();
  283.                 return false;
  284.             }
  285.             
  286.             //validamos cuenta
  287.             
  288.             validarEmail(email);
  289.             
  290.             
  291.            
  292.         }
  293.         
  294.         function validarPassword(){
  295.             var password = $('#password').val();
  296.             var passwordc = $('#confirm_password').val();
  297.             if(password != passwordc){
  298.                 $('#password_incorrect').show();
  299.             }else{
  300.                 $('#password_incorrect').hide();
  301.             }
  302.         }
  303.         
  304.       
  305.         
  306.         function validarEmail(email)
  307.         {
  308.             
  309.             var url  = "{{path('frontend_register_validate', {slug:slug})}}";
  310.     
  311.             var data = {
  312.                  email: email
  313.             };
  314.             
  315.             var saveButton = document.getElementById("btn-register");              
  316.             
  317.             $.ajax({
  318.                 type:'POST',
  319.                 url: url,
  320.                 data: data,
  321.                 success:function(data){
  322.                     if(data['resp'] == 'error'){
  323.                          $('#email_exist').show();
  324.                            saveButton.removeAttribute("disabled");
  325.                            saveButton.innerHTML = "Guardar";
  326.                          return false;
  327.                     }else{
  328.                           //saveButton.removeAttribute("disabled");
  329.                           //saveButton.innerHTML = "Guardar";
  330.                          $('#email_exist').hide();
  331.                          saveAccount();
  332.                          //return true;
  333.                     }
  334.                   
  335.                   
  336.                 },
  337.                 error: function(data){
  338.                     console.log(data);
  339.                 }
  340.             }); 
  341.             
  342.         }
  343.         
  344.         function saveAccount()
  345.         {
  346.         
  347.             var url  = "{{path('frontend_register_customer', {slug:slug})}}";
  348.             
  349.             var password = $('#password').val();        
  350.             var email = $('#email').val();
  351.             var name = $('#name').val();
  352.             var autologin = true;//$('#autologin').val();
  353.             var saveButton = document.getElementById("btn-register");              
  354.             var data = {
  355.                 _username: email,
  356.                 _password: password,
  357.                 _name: name,
  358.                 _autologin: autologin
  359.             };
  360.                     
  361.             $.ajax({
  362.                 type:'POST',
  363.                 url: url,
  364.                 data: data,
  365.                 success:function(data){
  366.                    
  367.                     if(data['resp'] == 'exito')
  368.                     {
  369.                        //$('#success_alert').show();
  370.                        
  371.                            if(autologin == true)
  372.                            {                              
  373.                                autoLogin(email, password);
  374.                            }else{                              
  375.                                window.location.href = window.location.href;
  376.                            }
  377.                     }else{
  378.                         saveButton.removeAttribute("disabled");
  379.                         saveButton.innerHTML = "Guardar";
  380.                         $('#danger_alert').show();
  381.                     }
  382.                     
  383.                 },
  384.                 error: function(data){
  385.                     console.log(data);
  386.                 }
  387.             }); 
  388.         }
  389.             
  390.             function autoLogin(email, password)
  391.             {
  392.                 $('#_xEmail').val(email);
  393.                 $('#_xData').val(password);
  394.                 $('#loginForm').submit();
  395.                 /*var url  = "{{path('frontend_customer_login', {slug:slug})}}";
  396.                       
  397.                 var data = {
  398.                     _username: email,
  399.                     _password: password,
  400.                     autologin: true                        
  401.                 };
  402.                 $.ajax({
  403.                 type:'POST',
  404.                 url: url,
  405.                 data: data,
  406.                 success:function(data){                      
  407.                         window.location.href = window.location.href;                        
  408.                     },
  409.                     error: function(data){
  410.                         console.log(data);
  411.                     }
  412.                 }); */
  413.             }
  414.     </script>
  415.     
  416.     <script>
  417.     
  418.     //Refrescar la carretilla en cuanto se abra la pagina     
  419.     var data = {};
  420.     var url = "{{ path('frontend_store_product', {slug:slug}) }}";
  421.     $.ajax({ type: "POST",   
  422.          url: url,   
  423.          async: false,
  424.          data: data,
  425.          success : function(data)
  426.          {  
  427.              $('.cart_container').html(data.html);    
  428.          }
  429.     });
  430.     function hideModal1()
  431.     {
  432.         $('.js-hide-modal1').on('click',function()
  433.         {
  434.             $('.wrap-modal1').removeClass("show-modal1");
  435.         });
  436.     }
  437.     
  438.     function closeModal()
  439.     {
  440.         $('.wrap-modal1').removeClass("show-modal1");
  441.     }
  442.     
  443.     
  444.     {% if productCategory != "" %}
  445.         //loadCategory(1,"{{productCategory}}","{{pager_limit}}");        
  446.         loadCategory(1,"{{productCategory}}","10");        
  447.     {% else %}
  448.             {%if brand != '' and category !='' %}
  449.                 //loadCategory(5,'{{brand}}',"{{pager_limit}}","{{globalSearch}}", "{{category}}");
  450.                 loadCategory(5,'{{brand}}',"10","{{globalSearch}}", "{{category}}");
  451.             {% else %}
  452.                 {% if category != '' %}
  453.                     //loadCategory(3,"{{category}}","{{pager_limit}}","{{globalSearch}}");
  454.                     loadCategory(3,"{{category}}","10","{{globalSearch}}");
  455.                 {% elseif category == '' and brand == '' %}
  456.                     //loadCategory(0,'',"{{pager_limit}}","{{globalSearch}}");
  457.                     loadCategory(0,'',"10","{{globalSearch}}");
  458.                 {% endif %}
  459.                 
  460.                 {% if brand != '' %}
  461.                     //loadCategory(4,'{{brand}}',"{{pager_limit}}","{{globalSearch}}");
  462.                     loadCategory(4,'{{brand}}',"10","{{globalSearch}}");
  463.                 {% endif %}
  464.             {% endif %}    
  465.     {% endif %}
  466.     
  467.     $(document).on('show.bs.modal', '.modal', function()
  468.     {
  469.         
  470.         var zIndex = 10000 + (10 * $('.modal:visible').length);
  471.         $(this).css('z-index', zIndex);
  472.         setTimeout(function() {
  473.             $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
  474.         }, 0);
  475.         
  476.     });
  477.     
  478.     function loadCategory(type,token,limit = false,search="", token2 = "")
  479.     {
  480.               
  481.         
  482.         var url = "{{ path('frontend_get_product', {slug:slug}) }}";
  483.         
  484.         var data = {
  485.             type: type,
  486.             token: token,
  487.             token2: token2,
  488.             limit: limit,
  489.             first: true,
  490.             search:search,
  491.             isMore: 0
  492.         };
  493.                 
  494.         $('#pager_label').html("<h1><i class='fa fa-spin fa-spinner'></i></h1>");
  495.         
  496.         $('#dynamic_loader').load(url,data,function(a,b)
  497.         {
  498.             
  499.             $('#search_field_loader_1').html("");        
  500.             if(a == "")
  501.             {
  502.                 $('#pager_control').hide();
  503.                 $('#pager_label').html("<h1 style='font-size:100px;margin:0px;'><i class='fa fa-search'></i></h1><h4>No se encontraron resultados...</h4><p>Agregamos productos a nuestro inventario muy frecuentemente.<br>El producto que buscaste podría estar disponible pronto.</p>");
  504.                 
  505.             } else {
  506.                 $('#pager_control').show();
  507.                 var total = $('#total_current_list').val();
  508.                 var total_filtered = $('#count_current_list').val();
  509.                 
  510.                 if(parseInt(limit,10) > parseInt(total,10))
  511.                 {
  512.                     
  513.                     $('#pager_label').html("Mostrando "+total_filtered+" de "+total+"<br><p style='text-align:center;color:#ccc;'>~ No hay más que cargar ~</p>");
  514.                     $('#pager_control').hide();
  515.                 } else {
  516.                     $('#pager_label').html("Mostrando "+limit+" de "+total);
  517.                     $('#pager_control').show();    
  518.                 }
  519.                 
  520.                 $('#dynamic_loader').addClass('isotope-grid');
  521.                 $('#pager_control').attr('data-type',type);
  522.                 $('#pager_control').attr('data-token',token);
  523.                 $('#pager_control').attr('data-limit',limit);
  524.                 
  525.                 //startSlick();    
  526.                 startMagnific();
  527.                 hideModal1();
  528.             }
  529.         });
  530.     }    
  531.     function loadMore()
  532.     {
  533.            
  534.         //var newLimit = parseInt($('#pager_control').attr('data-limit'))+{{pager_limit}};
  535.         var newLimit = parseInt($('#pager_control').attr('data-limit'))+10;
  536.         $('#pager_control a').html("<i class='fa fa-spin fa-spinner'></i>");
  537.         $('#pager_control a').prop("disabled",true);
  538.         
  539.         var url = "{{ path('frontend_get_product', {slug:slug}) }}";
  540.                 var category = '{{category}}';
  541.         var data = {
  542.             type: $('#pager_control').attr('data-type'),
  543.             token: $('#pager_control').attr('data-token'),
  544.             token2: category,
  545.             //limit: $('#pager_control').attr('data-limit')+','+'{{pager_limit}}',
  546.             limit: $('#pager_control').attr('data-limit')+','+'10',
  547.             first: false,
  548.             isMore: 1        
  549.         };
  550.         
  551.         var response;
  552.         $.ajax({ type: "POST",   
  553.              url: url,   
  554.              async: false,
  555.              data: data,
  556.              success : function(text)
  557.              {  
  558.                  
  559.                   if(text == '')
  560.                   {
  561.                       $('#pager_control').html("<p style='text-align:center;color:#ccc;'>~ No hay más que cargar ~</p>");
  562.                   } else {
  563.                      response = text;
  564.                      var total = $('#total_current_list').val();
  565.                      if(newLimit > total)
  566.                      {
  567.                          $('#pager_control').html("<p style='text-align:center;color:#ccc;'>~ No hay más que cargar ~</p>");
  568.                          $('#pager_label').html("Mostrando "+total+" de "+total);
  569.                      } else {
  570.                         $('#pager_label').html("Mostrando "+newLimit+" de "+total);                         
  571.                      }
  572.                      $('#pager_control').attr('data-limit',newLimit);
  573.                      $('#pager_control a').prop("disabled",false);
  574.                      $('#pager_control a').html("Cargar más");
  575.                      
  576.                      $('#dynamic_loader').append(response);
  577.                      
  578.                      //startSlick();
  579.                       startMagnific();
  580.                       hideModal1();
  581.                 }
  582.              }
  583.         });
  584.         
  585.         
  586.                 
  587.     }    
  588.     
  589.     
  590.     
  591.     $('#search_field_1').on('submit',function(e)
  592.     {
  593.         e.preventDefault();
  594.         $('#search_field_loader_1').html("<i class='fa fa-spin fa-spinner'></i> Buscando...");
  595.         var value = $('#search-product-1').val();        
  596.         //loadCategory(false,false,{{pager_limit}},value);
  597.         loadCategory(false,false,10,value);
  598.     });
  599.     
  600.     
  601.     $('#global_search').on('submit',function(e)
  602.     {
  603.         e.preventDefault();
  604.         
  605.         var value      = $('#search').val();
  606.         var encoded    = encodeURIComponent(value).replace(/%20/g,'+');
  607.         var string_url = "{{path('frontend_product', {'search':'_ENCODED_', slug:slug})}}";
  608.         var location   = string_url.replace("_ENCODED_",encoded);
  609.         
  610.         window.location.href = location;
  611.     });
  612.         
  613.     
  614.     function refreshPreview()
  615.     {
  616.         
  617.         var url = "_cart_preview.php";
  618.         var data = {};
  619.         $('#cart_preview').html("<div class='row'><div class='col-md-12 text-center'><h1><i class='fa fa-spin fa-spinner'></i></h1></div></div>");
  620.         $.ajax({
  621.           type: "POST",
  622.           url: url,
  623.           data: data,
  624.           success: function(html)
  625.           {
  626.                 console.log("refreshPreviewSuccess");
  627.               $('#cart_preview').html(html);                                
  628.           }
  629.         });
  630.     }
  631.     
  632.     
  633.     function refreshSideCart()
  634.     {
  635.         
  636.         $('.js-panel-cart').addClass('show-header-cart');
  637.         refreshPreview();
  638.     }
  639.     
  640.     function validateStockDirect(stock)
  641.     {
  642.             
  643.         var msg = "";
  644.         if(stock == ''){ 
  645.             stock = 0;
  646.             msg = "El producto no se encuentra disponible";
  647.         }else{ 
  648.             stock = parseInt(stock,10);
  649.             msg= "Hay "+stock+" unidades disponibles de este producto";
  650.             if(stock == 1){
  651.                     msg= "Hay 1 unidad disponible de este producto";
  652.             }
  653.         }
  654.         
  655.         if(stock < 1){
  656.             swal("Oops", msg);
  657.             return false;
  658.         }else{
  659.             $(".containerToggle").toggle()
  660.         }
  661.     }
  662.     function increaseInput(pid,oid,stock,preview,checkout = false)
  663.     {       
  664.         if(stock != 'not_stock')
  665.         {
  666.             
  667.             var cant = $('.cartInput'+pid).val();
  668.             var new_cant = parseInt(cant,10)+1;
  669.             console.log(new_cant);
  670.             console.log(stock);
  671.             var msg = "";
  672.             if(stock == '')
  673.             { 
  674.                 stock = 0;
  675.                 msg = "El producto no se encuentra disponible";
  676.             } else { 
  677.                 stock = parseInt(stock,10);
  678.                 msg= "Hay "+stock+" unidades disponibles de este producto";
  679.             
  680.                 if(stock == 1)
  681.                 {
  682.                     msg= "Hay 1 unidad disponible de este producto";
  683.                 }
  684.             }
  685.             if(new_cant > stock)
  686.             {
  687.                 swal("Oops", msg);
  688.                 return false;
  689.             }
  690.         }
  691.         if($('#main_cart_container').next('div.popover:visible').length == 0)
  692.         {
  693.             //Ocultar popover para mobiles
  694.             if(window.innerWidth <= 800)
  695.             {
  696.             
  697.             } else {
  698.                 
  699.                 setTimeout(function()
  700.                 {
  701.                     
  702.                     var imgSrc = $('#cart_picture_for_'+pid).attr('src');
  703.                     var name   = $('#cart_picture_for_'+pid).attr('alt');
  704.                     var imgTag = "<img style='height:150px;margin:0 auto;' src='"+imgSrc+"'>";
  705.                     
  706.                     $('#main_cart_container').popover({
  707.                         html:true,
  708.                         container: 'body',                      
  709.                         title: '<i class="fa fa-checkmark"></i> Producto agregado',
  710.                         content:'<div class="row"><div class="col-md-12 text-center">'+imgTag+'</div><div class="col-md-12 text-center">'+name+'</div></div>',
  711.                         placement: 'bottom'
  712.                     });
  713.                     
  714.                     $('#main_cart_container').popover('show');    
  715.                     
  716.                     setTimeout(function()
  717.                     {
  718.                         $('#main_cart_container').popover('dispose');
  719.                     }, 1000);
  720.                   
  721.                 },1000);
  722.             }
  723.         }
  724.           
  725.         
  726.         
  727.         var val = $('#cartInput'+pid).val();
  728.         var new_val =  parseInt(val)+1;        
  729.         
  730.         $('.cartInput'+pid).val(new_val);
  731.         $('#cartInput'+pid).val(new_val);
  732.         
  733.         addToCart(pid,oid,preview,checkout);
  734.         
  735.         $('#cart_counter_for_'+pid).show();
  736.         $('#cart_starter_for_'+pid).hide();
  737.         $('#cart2_counter_for_'+pid).show();
  738.         $('#cart2_starter_for_'+pid).hide();
  739.         $('#cart3_counter_for_'+pid).show();
  740.         $('#cart3_starter_for_'+pid).hide();
  741.         
  742.     }
  743.     
  744.     function decreaseInput(pid,oid,preview,checkout = false)
  745.     {
  746.         
  747.         var val = $('#cartInput'+pid).val();
  748.         if(val > 0)
  749.         {
  750.             var new_val = parseInt(val)-1;
  751.             
  752.             $('.cartInput'+pid).val(new_val);
  753.             $('#cartInput'+pid).val(new_val);
  754.             
  755.             if(new_val < 1)
  756.             {
  757.                 $('#cart_counter_for_'+pid).hide();
  758.                 $('#cart_starter_for_'+pid).show();
  759.                 $('#cart2_counter_for_'+pid).hide();
  760.                 $('#cart2_starter_for_'+pid).show();
  761.                 $('#cart3_counter_for_'+pid).hide();
  762.                 $('#cart3_starter_for_'+pid).show();
  763.             }
  764.             
  765.             addToCart(pid,oid,preview,checkout);                        
  766.         }    
  767.     }
  768.     
  769.     
  770.     function addToCart(pid,oid,preview,checkout = false)
  771.     {
  772.         
  773.         var url = "{{ path('frontend_store_product', {slug: slug}) }}";
  774.         $('.cart_container').removeClass("animated bounceInRight");        
  775.           
  776.         var data = {
  777.             cart: true,
  778.             oid: oid,
  779.             pid: pid,
  780.             quantity: $('#cartInput'+pid).val()
  781.         };        
  782.         
  783.         $('.cart_container').html("<h1><i class='fa fa-spin fa-spinner'></i></h1>");
  784.         
  785.         $.ajax({
  786.           type: "POST",
  787.           url: url,
  788.           data: data,
  789.           success: function(data)
  790.           {
  791.               
  792.               var html = data.html;
  793.                 $('.cart_container').html(html);
  794.                 
  795.                 
  796.               $('.cart_container').addClass("animated bounceInDown");
  797.               closeModal();
  798.               //refreshSideCart();
  799.               if($('#cartInput'+pid).val() < 1)
  800.               {                   
  801.                    $('#cart_item_'+pid).remove();
  802.                    $('#session_quantity_'+pid).html("");
  803.                    $('#session2_quantity_'+pid).html("");
  804.                    $('#session3_quantity_'+pid).html("");
  805.               } else {
  806.                   $('#session_quantity_'+pid).html("<div class='quantity_ghost card-2 animated bounceIn'>"+$('#cartInput'+pid).val()+"</div>");
  807.                   $('#session2_quantity_'+pid).html("<div class='quantity_ghost card-2 animated bounceIn'>"+$('#cartInput'+pid).val()+"</div>");
  808.                   $('#session3_quantity_'+pid).html("<div class='quantity_ghost card-2 animated bounceIn'>"+$('#cartInput'+pid).val()+"</div>");
  809.               }    
  810.              
  811.               if(preview)
  812.               {
  813.                   refreshPreview();
  814.                   {#
  815.                   <?php if($thisPage == 55): ?>
  816.                     refreshCheckoutTable();                                                                
  817.                  <?php endif; ?>
  818.                  #}
  819.               }    
  820.               
  821.               if(checkout)
  822.               {
  823.                    refreshCheckoutTable();                   
  824.               }    
  825.               
  826.           }
  827.         });
  828.         
  829.     }    
  830.         
  831.         
  832.     function removeItemFromCart(key,pid)
  833.     {
  834.         var url = "{{ path('frontend_store_product', {slug:slug}) }}";
  835.         var data = {
  836.             remove:true,
  837.             key:key
  838.         };
  839.         
  840.         
  841.         $.ajax({
  842.           type: "POST",
  843.           url: url,
  844.           data: data,
  845.           success: function(html)
  846.           {
  847.                $('.cart_container').html(html);
  848.                $('#cart_item_'+pid).remove();
  849.              //refreshSideCart();
  850.              refreshPreview();
  851.              $('#session_quantity_'+pid).html("");
  852.              $('#session2_quantity_'+pid).html("");
  853.              $('#session3_quantity_'+pid).html("");
  854.              {#
  855.              <?php if($thisPage == 55): ?>
  856.                 refreshCheckoutTable();                                                                
  857.              <?php endif; ?>    
  858.              #}
  859.           }
  860.         });
  861.         
  862.     }    
  863.     
  864.     
  865.     
  866.     function startFields(cid,type,label,pid)
  867.     {                        
  868.         var url = "API_____fields.php";        
  869.         var data = {
  870.             client_id: cid,
  871.             is_web:true,
  872.             data: {
  873.                 dynamic: type,
  874.                 pid:pid                
  875.             }
  876.         };
  877.         
  878.         if(type == 'direct')
  879.         {
  880.             $('#start_direct_'+pid).html("<i class='fa fa-spin fa-spinner'></i>");
  881.             $('#start_direct_'+pid).prop("disabled",true);
  882.         }
  883.         
  884.         
  885.         
  886.         $.ajax({ type: "POST",   
  887.              url: url,   
  888.              crossDomain: true,
  889.              async: false,
  890.              data: JSON.stringify(data),
  891.              dataType: "json",
  892.              success : function(response)
  893.              {          
  894.                  //$('#start_direct_'+pid).html(label);         
  895.                 //$('#start_direct_'+pid).prop("disabled",false);
  896.                   var url = "_fields_convert.php"
  897.                   
  898.                   if(type =='cart')
  899.                   {                      
  900.                       $('.fields_cart').load(url,response,function(a)
  901.                       {                                                        
  902.                         $('#direct_panel_'+pid).show("fast");
  903.                       });
  904.                   }
  905.                   
  906.                   if(type == 'direct')
  907.                  {
  908.                      $('#start_direct_'+pid).html("<i class='fa fa-spin fa-spinner'></i>");
  909.                     $('#start_direct_'+pid).prop("disabled",true);
  910.                      $('.fields_'+pid).load(url,response,function(a)
  911.                      {
  912.                           $('#direct_start_btn_'+pid).hide();
  913.                         $('#direct_panel_'+pid).show("fast");
  914.                      });                    
  915.                  }
  916.                  
  917.                  if(type == 'contact')
  918.                  {
  919.                      $('#contact_form_holder_'+label).load(url,response,function(a)
  920.                      {
  921.                           
  922.                      });
  923.                  }
  924.                 
  925.              }
  926.         });
  927.         
  928.         
  929.     }
  930.     
  931.     
  932.     
  933.     function submitDirect(pid)
  934.     {
  935.                 
  936.         if(!$('#direct_form_'+pid).parsley().validate())
  937.         {
  938.             swal("Campos requeridos", "Nombre y teléfono son campos requeridos", "error");
  939.         } else {
  940.             $('#direct_panel_cnf_btn_'+pid).prop("disabled",false);
  941.             $('#direct_panel_cnf_btn_'+pid).html("<h1><i class='fa fa-spin fa-spinner'></i></h1>");                
  942.             var url = "_direct_control.php";    
  943.             
  944.             $.ajax({
  945.             url: url,
  946.             type: 'post',
  947.             dataType: 'json',
  948.             data: $('form#direct_form_'+pid).serialize(),
  949.             success: function(data) {                
  950.                 if(data.status == "success")
  951.                 {    
  952.                     $('#direct_panel_'+pid).hide();    
  953.                     $('#direct_success_'+pid).show();
  954.                     
  955.                 } else {
  956.                     $('#direct_panel_cnf_btn_'+pid).prop("disabled",true);
  957.                     $('#direct_panel_cnf_btn_'+pid).html("Intentar de nuevo");
  958.                     swal("Oops", "No se pudo entregar tu mensaje, por favor intenta más tarde.", "error");
  959.                 }       
  960.              },
  961.              error: function(data)
  962.              {
  963.                  $('#direct_panel_cnf_btn_'+pid).prop("disabled",true);
  964.                 $('#direct_panel_cnf_btn_'+pid).html("Intentar de nuevo");
  965.                 swal("Oops", "No se pudo entregar tu mensaje, por favor intenta más tarde.", "error");
  966.              }
  967.             });
  968.         }
  969.     }
  970.     
  971.     
  972.     
  973.     function closeModal(id){
  974.             
  975.             $('#'+id).modal('hide');
  976.         }
  977.     
  978.     $('#contact_form').on('submit',function(e)
  979.     {
  980.         e.preventDefault();
  981.         
  982.         $('#contact_btn').prop("disabled",true);
  983.         $('#contact_btn').html("<h1><i class='fa fa-spin fa-spinner'></i></h1>");
  984.         var url = "_contact_form.php";    
  985.             
  986.         $.ajax({
  987.             url: url,
  988.             type: 'post',
  989.             dataType: 'json',
  990.             data: $('form#contact_form').serialize(),
  991.             success: function(data) {                
  992.                 if(data.status == "success")
  993.                 {    
  994.                             
  995.                     $('#contact_btn_container').html("<br><h1 style='text-align:center;'><i class='fa fa-check' style='color:green'></i></h1><h3 style='text-align:center;'>¡Gracias!<br>Hemos recibido el mensaje correctamente. Responderemos muy pronto.</h3>");
  996.                     
  997.                 } else {
  998.                     $('#contact_btn').prop("disabled",false);
  999.                     $('#contact_btn').html("Intentar de nuevo"); 
  1000.                     swal("Oops", "No se pudo entregar tu mensaje, por favor intenta más tarde.", "error");
  1001.                 }       
  1002.              }
  1003.         });
  1004.         
  1005.     });              
  1006.     
  1007.     </script>
  1008.         
  1009.     
  1010.     {% block script %}
  1011.     
  1012.     {% endblock %}
  1013.      
  1014.     <!-- CHAT WIDGET -->
  1015.     {#{ render(controller("AppBundle:Frontend/Main:chatWidget")) }#}
  1016.     {{ render(controller('App\\Controller\\Frontend\\MainController::chatWidgetAction')) }}
  1017.     
  1018.     <!-- WHATSAPP WIDGET -->
  1019.     {#{ render(controller("AppBundle:Frontend/Main:whatsappWidget")) }#}
  1020.     {{ render(controller('App\\Controller\\Frontend\\MainController::whatsappWidgetAction')) }}
  1021.     
  1022. </body>