templates/base.html.twig line 1

Open in your IDE?
  1. {% apply spaceless %}
  2.     {% set route = app.request.get('_route') %}
  3.     <!DOCTYPE html>
  4.     <html lang="{{ app.request.locale }}">
  5.     <head>
  6.         <meta charset="UTF-8">
  7.         <title>{% block title %}Asvin - Login{% endblock %}</title>
  8.         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  9.         {% block stylesheets %}
  10.             {{ encore_entry_link_tags('admin') }}
  11.         {% endblock %}
  12.         {% block css %}
  13.         {% endblock %}
  14.         <script nonce="{{ csp_nonce('script') }}">
  15.             let translations = {
  16.                 // ...
  17.                 'file_format_msg': "{{ 'msg.file_format' | trans }}",
  18.                 'file_size_msg': "{{ 'msg.file_size' | trans }}",
  19.                 'dropzone_message': "{{ 'file.dropzone_message'|trans }}",
  20.                 'buy_package_error': "{{ 'msg.buy_package_error'|trans }}",
  21.                 'buy_package_quantity_error': "{{ 'msg.buy_package_quantity_error'|trans }}",
  22.                 'delete_team_msg': "{{ 'team.error.bulk_delete_msg' | trans }}",
  23.                 'show_all_customers': "{{ 'list.title.show_all_customers'|trans }}",
  24.                 'show_my_customers': "{{ 'list.title.show_my_customers'|trans }}",
  25.                 'show_all_customers_orders': "{{ 'list.title.show_all_customers_orders'|trans }}",
  26.                 'show_my_customers_orders': "{{ 'list.title.show_my_customers_orders'|trans }}",
  27.                 'date_format': "{{ 'date_format'|trans }}",
  28.                 'js_datetime_format': "{{ 'js_datetime_format'|trans }}",
  29.                 'js_time_format': "{{ 'js_time_format'|trans }}",
  30.                 'price_thousand_delimiter_format': "{{ 'price_thousand_delimiter_format'|trans }}",
  31.                 'price_decimal_delimiter_format': "{{ 'price_decimal_delimiter_format'|trans }}",
  32.                 'submit': "{{ 'buttons.submit'|trans }}",
  33.                 'cancel': "{{ 'buttons.cancel'|trans }}"
  34.                 // ...
  35.             }
  36.         </script>
  37.         {% block base_javascripts %}
  38. {#            {{ encore_entry_script_tags('admin') }}#}
  39.             {% for file in encore_entry_js_files('admin') %}
  40.                 <script src="{{ asset(file) }}" nonce="{{ csp_nonce('script') }}"></script>
  41.             {% endfor %}
  42.         {% endblock %}
  43.         <script src="https://www.google.com/recaptcha/api.js"></script>
  44.         <script type="text/javascript" nonce="{{ csp_nonce('script') }}">
  45.             var google_recaptcha = false;
  46.             var google_recaptcha_url = '{{ path('verify_recaptcha') }}';
  47.             var google_recaptcha_form = 'recaptcha_form'
  48.             {% if google_recaptcha_site_key|length == 40 %}
  49.                 google_recaptcha = true;
  50.             {% endif %}
  51.             function onSubmitRecaptchaForm(token) {
  52.                 if (google_recaptcha) {
  53.                     let xhr = $.ajax({
  54.                         method: "POST",
  55.                         url: google_recaptcha_url,
  56.                         data: {'token': token},
  57.                         success: function (response) {
  58.                             console.log(response['success']);
  59.                             if (response['success']) {
  60.                                 document.getElementById(
  61.                                     google_recaptcha_form
  62.                                 ).submit();
  63.                             } else {
  64.                                 console.log(response['errors']);
  65.                             }
  66.                         },
  67.                         error: function (error) {
  68.                             console.log(error);
  69.                         }
  70.                     });
  71.                 } else {
  72.                     document.getElementById(
  73.                         google_recaptcha_form
  74.                     ).submit();
  75.                 }
  76.             }
  77.             function onSubmitRecaptchaAjaxForm(token) {
  78.                 if (google_recaptcha) {
  79.                     let xhr = $.ajax({
  80.                         method: "POST",
  81.                         url: google_recaptcha_url,
  82.                         data: {'token': token},
  83.                         success: function (response) {
  84.                             console.log(response['success']);
  85.                             if (response['success']) {
  86.                                 let $form = document.getElementById(
  87.                                     google_recaptcha_form
  88.                                 );
  89.                                 $.ajax({
  90.                                     url: $form.action,
  91.                                     type: $form.method,
  92.                                     data: $('#'+google_recaptcha_form).serialize(),
  93.                                     success: function (response) {
  94.                                             $("#asvin-popup-modal").modal('hide');
  95.                                             if (response.data.msg) {
  96.                                                 $('.errorMsg').html('<div class="notification custom-notification success flex-box space-between bottom15">' + response.data.msg + '<span class="close"></span></div>');
  97.                                             }
  98.                                     },
  99.                                     error: function (jqXHR) {
  100.                                         $('#showDiv').empty().append(jqXHR.responseText);
  101.                                         $(".group-items").select2();
  102.                                     }
  103.                                 });
  104.                             } else {
  105.                                 console.log(response['errors']);
  106.                             }
  107.                         },
  108.                         error: function (error) {
  109.                             console.log(error);
  110.                         }
  111.                     });
  112.                 } else {
  113.                     document.getElementById(
  114.                         google_recaptcha_form
  115.                     ).submit();
  116.                 }
  117.             }
  118.         </script>
  119.         {% block javascripts %}
  120.         {% endblock %}
  121.     </head>
  122.     <body class="{{ body|default('home') }}">
  123.     <div id="idle-timer"
  124.          style="display:none; z-index: 999; text-align:center; color: white; background: indianred;
  125.          height: 35px; width:100%; position:absolute; top:45px;left:0;">
  126.         <div id="idle-timer-text" class="inline"
  127.              style="display:inline-block; padding:5px 10px 0 0">{% if is_granted("ROLE_BACKEND_USER")%}{{ session_backend_max_idle_time }}{% else %}{{ session_max_idle_time }}{% endif %}</div>
  128.         <button id="idle-timer-btn" class="inline btn-sm btn-danger"
  129.                 style="display:inline-block; margin-top:-5px;">{{ "idle_logout.button"|trans }}
  130.         </button>
  131.     </div>
  132.     {% block body %}{% endblock %}
  133.     {% if app_env != "panther" %}
  134.         {{ render_esi(path('ch_cookie_consent.show_if_cookie_consent_not_set', { 'locale' : app.request.locale })) }}
  135.     {% endif %}
  136.     <script nonce="{{ csp_nonce('script') }}">
  137.         $(document).on('click', '.scroll-to-top', function () {
  138.             $("html, body").animate({scrollTop: 0}, "slow");
  139.         });
  140.         $(".alert").fadeTo(2000, 500).slideUp(500, function () {
  141.             $(".alert").slideUp(500);
  142.         });
  143.     </script>
  144.     {% if allow_matomo == 1 %}
  145.         <!-- Matomo -->
  146.         <script type="text/javascript" nonce="{{ csp_nonce('script') }}">
  147.             var _paq = window._paq = window._paq || [];
  148.             /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  149.             _paq.push(['trackPageView']);
  150.             _paq.push(['enableLinkTracking']);
  151.             (function() {
  152.                 var u="https://stat.asvin.io/";
  153.                 _paq.push(['setTrackerUrl', u+'matomo.php']);
  154.                 _paq.push(['setSiteId', '1']);
  155.                 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
  156.                 g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  157.             })();
  158.         </script>
  159.         <!-- End Matomo Code -->
  160.     {% endif %}
  161.     </body>
  162.     </html>
  163. {% endapply %}